Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TForm innerhalb eines TThread-Objektes

  Alt 16. Okt 2007, 09:57
Danke Dir!
Aber: Nee, alles im Thread. Der Mainthread hat nahezu nix zu tun. Ist nur ein Formular mit 3 Buttons drauf (ServerThread starten, Clientthread starten und Programm beenden). Das torpediert zwar die Idee von Threads, aber es ist wie gesagt nur ein "Experiment". Einfach mal zum Testen und Rumspielen mit WinApi-Sockets. (Ist jetzt zum Testen von VCL-Forms innerhalb Threads mutiert )
Vielleicht kann ja jemand noch ein eindeutiges Statement abgeben wie "Forms in einem Thread gehen niemals", oder andersrum: "Mach ich doch immer so".

Ich hab mal nen Screenshot angehängt. (Ich kann auch das Programm anhängen.)

Ich habe noch gesehen, dass beim Einrichten der WndProc-Funktion auf globale Variablen zugegriffen wird (von MakeObjectInstance über TWinControls). Und dann dieses "Screen.add", dass sieht auch etwas globaler aus. Vielleicht hab ich bisher auch nur Glück gehabt, dass es nicht noch woanders geknallt hat?


Edit:
Delphi-Quellcode:
procedure TclientThread.aktshape;
begin
  if clientsocket=0 then clientform.Shape.Brush.Color:=clred
                    else clientform.Shape.Brush.Color:=clgreen;

end;
Edit2: Ich hba grad noch ein bisschen gespielt - noch zwei weitere kleine Sachen treten auf.
Manchmal ist das Fenster auch winzig klein. Man schließt es halt einfach und dann kommt der "normale Fehler" wie gehabt, also Fenster ist ein wenig zu groß. Und das Fesnter war auch schon mal richtig angezeigt wurden. Schließen und neu öffnen bringt den selben Fehler wieder.
Und dann habe ich noch ein array-Fehler (Listen-Index überschreitet Maximum) drinn. Aber der kann von mir sein.
Miniaturansicht angehängter Grafiken
psocket_143.jpg  
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat