Hallo,
ich habe es wieder einmal mit den Threads:
Ich möchte aus einem Thread eine Form zur Laufzeit erstellen,
aber irgendwo ist der Wurm drinnen...
In Hauptformular erzeuge ich den Thread:
Delphi-Quellcode:
PROCEDURE TfMain.Button1Click(Sender: TObject);
BEGIN
Thread1 := TBaseThread.Create('Form 1');
Thread1.MainFormClass := Self;
Thread1.FormCaption := 'Form 1';
Thread1.FreeOnTerminate := True;
Thread1.OnTerminate := ThreadEnde;
Thread1.Resume;
END;
in der ThreadUnit möchte ich das Form erzeugen:
Delphi-Quellcode:
USES
Forms, // Application
uThreadWindow, // TfThreadWindow
Classes;
...
PROCEDURE TBaseThread.Execute;
VAR
fThreadWindow : TfThreadWindow;
BEGIN
fThreadWindow := TfThreadWindow.Create(FMainFormClass); // <-- Crash
TRY // TfThreadWindow.Create(Application) ist der gleiche Fehler
fThreadWindow.Caption := FaFormTitle;
fThreadWindow.ShowModal;
FINALLY
fThreadWindow.Free;
fThreadWindow := NIL;
END;
END;
Nach dem Create gibt es einen EInvalid Operation... Leinwand/Bild erlaubt kein Zeichen... Fehler
Was mache ich da Falsch?