Thema: Delphi Formulare und Threads

Einzelnen Beitrag anzeigen

MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#1

Formulare und Threads

  Alt 5. Jan 2006, 12:54
Hi @all,

ich habe ein Problem mit Formularen und anderen Threads als dem Hauptthread. Ist es so, dass man Formulare nicht aus anderen Threads heraus erzeugen bzw. anzeigen kann?
Ich habe eine Multi-Monitor-Anwendung geschrieben, in der man für jeden verfügbaren Bildschirm bestimmen kann, ob auf diesem etwas angezeigt wird und was angezeigt wird. Dazu baue verwende ich ein dynamisches Array aus Formularen.

Hier mal etwas Code:

Delphi-Quellcode:
var TVForms : array of TForm;

//...

procedure FreeForms;
var x : integer;
begin
     for x := 0 to High(TVForms) do
         TVForms[x].Free;

     SetLength(TVForms, 0);
end;

procedure TFormThread.Execute;
var x : integer;
begin
     while not(terminated) do
     begin
          //Falls bereits vorhanden, evtl. "alte" Formulare zerstören (ab dem 2. Schleifendurchlauf)
          FreeForms;
          SetLength(TVForms, {les ich aus ner Konfiguration aus, kann jederzeit geändert werden});
          for x := 0 to High(TVForms) do
          begin
               // Hier geht's nicht weiter!
               TVForms[x] := TForm.create(nil);

               //... Mache irgendwas damit
          end;
          Sleep(15000);
     end;
end;
Dass ich die Formulare jedesmal neu aufbaue, hängt damit zusammen, dass das Programm im Hintergrund laufen soll, bedient wird es über Konfigurationsdateien und Netzwerkbefehle. D.h. die Anzahl der Formulare kann zur Laufzeit geändert werden.
Ich hoffe, ihr versteht, was ich meine. Danke schonmal.

Gruß
Michael
  Mit Zitat antworten Zitat