Registriert seit: 28. Mär 2005
Ort: Hamburg
850 Beiträge
Delphi 11 Alexandria
|
AW: Properties haben nach Zuweisung falsche Werte
29. Okt 2014, 15:21
Es ist nie eine gute Idee in Methoden auf globale Variablen zuzugreifen.
Delphi-Quellcode:
function TForm1.GetReAdr: TAdresse;
begin
Result.Vorname := 'a';
Result.Name := 'b';
end;
Sein Code war schon fast richtig, denn er "wollte" die Instanz zurückgeben, welche er in TForm1 deklatiert/erstellt hat.
Aber er hat nicht auf seinen Compiler gehört, welcher ihm bestimmt was vonwegen "Result ist nicht initialisiert" um die Ohren wirft!
[edit] War das Result := Adresse;
vorhin auch schon in Post #1 ?
Nja, dein Code war zumindestens falsch, denn Result wurde nicht initialisiert.
Delphi-Quellcode:
function TForm1.GetReAdr: TAdresse;
begin
Result := Adresse;
Result.Vorname := 'a';
Result.Name := 'b';
end;
// oder
function TForm1.GetReAdr: TAdresse;
begin
Adresse.Vorname := 'a';
Adresse.Name := 'b';
Result := Adresse;
end;
Result := Adresse; war schon immer in Post #1. Dein Lösungsvorschlag 2 steht genau so im Post #1.
|