Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Thread soll die richtige LForm finden. (https://www.delphipraxis.net/189142-thread-soll-die-richtige-lform-finden.html)

ScharfeMietze 10. Mai 2016 00:17

AW: Thread soll die richtige LForm finden.
 
Thread
Delphi-Quellcode:
constructor TThread.Create(aList: TStringList; aFormxyz: TFormxyz );
begin
 inherited Create (false) ;
  FreeOnTerminate:= True;
  FResultstringlist:= TStringList.Create;
  FList:= TStringList.Create;
  FList.Assign(aList);
  FFormxyz:= aFormxyz;
 
end;

procedure TThread.ResultThread;
begin
 FFormxyz.SetThreadResult(FResultstringlist);
end;
In der per Button erzeugten Form
Delphi-Quellcode:
LThread:= TThread.Create(LList,Formxyz);
und es wird wie vorher die falsche Form angesprochen...........



@SirRufo

Die FormXYZ wird ja x Fach erzeugt als LFormxyz mit unterschiedlichen Parametern.
und bleibt erhalten, bis die Ergebnisse des/der Threads ausgewertet sind.
Allerdings schreibt der Thread nicht das Ergebnis in LFormxyz(x) (die den Tread gestartet hat ) sondern in die "Grund-Formxyz"

Zacherl 10. Mai 2016 02:30

AW: Thread soll die richtige LForm finden.
 
Kannst du mal mehr Code zeigen? In der Threadklasse sieht soweit alles gut aus. Ich nehme an, dass du beim Erstellen der Forms irgendwas falsch machst. Eventuell weist du alle Instanzen der selben Variable zu?

jaenicke 10. Mai 2016 03:56

AW: Thread soll die richtige LForm finden.
 
Zitat:

Zitat von ScharfeMietze (Beitrag 1337848)
In der per Button erzeugten Form
Delphi-Quellcode:
LThread:= TThread.Create(LList,Formxyz);
und es wird wie vorher die falsche Form angesprochen...........

Die gibst du ja in der Zeile auch an. Du meinst wohl eher Self.
Delphi-Quellcode:
LThread := TThread.Create(LList, Self);
// Self ist das Formular, in dessen Methode du dich gerade befindest
Sobald du mehrere Instanzen eines FormuLars verwendest solltest du wirklich wie schon vorgeschlagen die globale Variable Formxyz löschen um Verwechslungen zu vermeiden.

ScharfeMietze 10. Mai 2016 08:34

AW: Thread soll die richtige LForm finden.
 
Tadaaaaaaaa :):):)
Nun seh ich auch den Wald vor lauter Bäumen. Das "self" war die Lösung. Auch der Knoten ist geplatzt mit der "Globalen Variable"
Ich danke für das fehlende Puzzleteil!

Lieben Gruß und vielen vielen Dank
SM;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz