Hoi, in so kurzer Zeit so viele Antworten. Corona machts möglich
Bisher bin ich auch davon ausgegangen, dass bei keiner Angabe automatisch von TObject abgeleitet wird. Der explizite Hinweis in der Hilfe hat mich dann aber verunsichert. Wie könnte man denn dann eine Klasse erstellen, die nicht von TObject abgeleitet ist?
Hier mein vereinfachtes Konstrukt
Delphi-Quellcode:
unit uTestClass;
interface
type
TTestClass=
class
private
public
constructor Create;
destructor Destroy;
override;
end;
var
TestClass: TTestClass;
implementation
...
end.
unit Test;
interface
type
TTestForm =
class(TForm);
published
procedure FormCreate(Sender: TObject);
private
public
constructor Create;
destructor Destroy;
override;
procedure TuWas;
end;
var
TestClass: TTestClass;
implementation
procedure TTestForm.TuWas;
// Wird bei bestimmtem ProzessStand von Timer immer wieder aufgerufen
begin
...
if not TestForm.TestClassReady
then // Wenn noch nicht gestartet oder noch nicht fertig
begin
if TestClass =
nil then
TestClass := TTestClass.Create;
if not TestClass.TuWasAnderesReady
then
begin
TestClass.TuWasAnderes;
Exit;
end
else
begin
TestForm.TestClassReady := true;
FreeAndNil(TestClass);
end;
end;
...
end.
Ich hoffe das stellt das Konstrukt verständlich da
Wenn ich nun TTestForm beende und für einen zweiten Lauf TTestForm.Create neu erzeuge ist beim zweiten Durchlauf TestClass.TuWasAnderesReady = True
Das wird bei TTestClass.Create auf false gesetzt
Beim zweiten Aufruf wird TTestClass.Create aber gar nbicht aufgerufen weil nicht Nil
Ich prüfe aber noch mal, ob der Fehler sich anderst einschleicht