Ist wahrscheinlich einfach nur zu spät für mich, aber ich kann sonst nicht einschlafen.
Folgende Klasse:
Delphi-Quellcode:
TStatic = class
private
class var FInt: integer;
class var FStr: string;
class constructor Create;
class destructor Destroy;
public
class procedure ShowMe;
end;
Und folgende Anwendung mit einem TButton auf dem Formular:
Delphi-Quellcode:
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
TStatic.ShowMe; // Ausgabe: "7Hallo" - GUT!
end;
{ TStatic }
class constructor TStatic.Create;
begin
FStr := 'Hallo';
FInt := 7;
TStatic.ShowMe; // Ausgabe: "7Hallo" - GUT!
end;
class destructor TStatic.Destroy;
begin
TStatic.ShowMe; // Ausgabe: "7 " - WARUM?
end;
class procedure TStatic.ShowMe;
begin
ShowMessage(IntToStr(FInt) + FStr);
end;
Es kompiliert und gibt keine Warnungen, aber warum kennt der Destruktor meinen String nicht mehr und wie kann ich korrekt auf ihn zugreifen?