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.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.