Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Von einem thread aus auf bestimmtes Objekt zugreifen....
g1o2k4 - Fr 16.11.07 15:59
Titel: Von einem thread aus auf bestimmtes Objekt zugreifen....
hi
ich habe mehrere threads die parallel laufen. jeder thread soll in der mainform ne fortschrittsleiste ändern....für jeden threads gibt es eine fortschrittsleiste !
grob siehts so aus:
Delphi-Quelltext
1: 2: 3: 4:
| im thread begin TForm1.GaugeX.Progress := TForm1.GaugeX.Progress + 1; end; |
ich brauche jetzt für GaugeX (Fortschrittsleiste) nen platzhalter. mit nem string in dem die nummer der leiste steht klappt es nicht....
also
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| X: String; X := Gauge1;
X wird an den thread übergeben...
thread begin TForm1.X.Progress := TForm1.GaugeX.Progress + 1; end; |
wie sorge ich dafür, dass verschiedene leisten von ein und dem selben thread gerüst angesprochen werden ?
Gausi - Fr 16.11.07 16:08
Das muss man generell andersrum machen ;-).
Der Thread muss der Form sagen, welche Gauge sie neu zeichnen soll. Der Thread selbst darf auf der Form nicht rummalen, das gibt nur Probleme. Stichwort ist Synchronize.
D.h. du gibst dem Thread eine Nummer mit, und der Thread gibt diese Nummer wieder zurück an die Form und lässt die Anzeige neu zeichnen. Im Übrigen suchst du wahscheinlich FindComponent.
g1o2k4 - Fr 16.11.07 16:15
ich brauch halt nur
einen platzhalter
für Gauge1-GaugeX
so dass es den dann statt Gauge in den befehl schreiben kann
TForm1.Platzhalter.Progress := TForm1.Platzhalter.Progress + 1;
Gausi - Fr 16.11.07 16:18
Du brauchst nicht nur einen Platzhalter, du musst dein System überdenken. Ein anderer Thread darf nicht auf VCL-Komponenten zugreifen.
Ansonsten: Meine Antwort von oben lesen, und unbekanntes Delphi-Gedöns in der Hilfe nachgucken, oder im Forum suchen ;-).
g1o2k4 - Fr 16.11.07 16:33
ich weiß dass man das nicht darf, aber ich will das programm auch an niemanden verkaufen !
ich bin ja selbst schuld wenn ich falsche werte bekomme.
Gausi - Fr 16.11.07 18:09
Nein, du bist selbst schuld, wenn das Programm zwischendurch einfach so abstürzt. Ich will mein Auto auch nicht verkaufen, trotzdem wechsel ich nicht bei Tempo 100 die Reifen...
delfiphan - Fr 16.11.07 19:40
Kommunikation via PostMessage. Blockiert nicht und ist einfach in der Anwendung.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!