type
TSpieler = record
Name : string;
Konto,Position : integer;
Reihe : boolean;
Panel : TPanel;
end;
var
PL1, PL2, PL3, PL4, PL5 : TSpieler;
function getPlayer;
begin
Result := PL1;
end;
procedure FeldKaufen;
var
TestPlayer: TSpieler;
begin
TestPlayer := getPlayer; {PL2,PL3,PL4,PL5}
inc(TestPlayer.Konto); {does not save}
{inc(PL1.Konto);} {works just fine with every Player}
end;
Wie kann ich speichern PL1
Werte nach ihnen zu geben und bearbeiten sie von TestPlayer
?Warum muss ich den Namen meines Typs verwenden, um ihn zu bedienen? [Delphi/Lazarus]
Das Problem ist, ich bekomme den Namen des Players durch diese getPlayer
Funktion, und es ist gut, weil es den ganzen Code ein wenig sauberer macht.
Aufzeichnungen sind Werttypen. Zuerst kopierst du den Inhalt von 'PL1' in' TestPlayer'. Dann werden neue Werte zu "TestPlayer" hinzugefügt. Um diese Werte beizubehalten, müssen Sie sie nach Beendigung des Vorgangs in 'PL1' zurückkopieren. –
Aber es gibt ein Problem mit der Getplayer-Funktion, ich habe keine Ahnung, wie man eine Alternative programmiert, weil ich TestPlayer: = getPlayer in ein paar mehr Verfahren verwende, um den Code einfach zu halten. – Neubauer
'GetPlayer' wird Ihnen eine Kopie von' PL1' geben. Um die Änderungen beizubehalten, können Sie stattdessen den Zeiger auf "PL1" übergeben. –