Einzelnen Beitrag anzeigen

Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#1

Aus TThread ein Form zur Laufzeit erstellen

  Alt 25. Sep 2003, 17:08
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?
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat