Hey Mavarik: Messages hab ich total vergessen. Sehr schöne Möglichkeit, speziell mit 'PostMessage' (asynchron)
Was mir daran als Pattern nicht so sehr gefällt ist die etwas problematische Übergabe komplexerer Informationen. Denn die müssen im Thread instantiiert und im Messagehandler (beim Postmessage) wieder freigegeben werden. Geht, ist sauber, aber
imho nicht so schön (reine Geschmackssache)
Was mir daran allerdings gefällt, ist der äußerst niedrige Footprint zum Erzeugen von asynchronen Updatemöglichkeiten.
Wie muss das in der Form1 dann aussehen (komplette Deklaration)
Delphi-Quellcode:
Type
TForm1 = class (TForm)
...
Procedure UpdateProgressBar (Sender : TObject); // Das ist die Signatur eines TNotifyEvent
...
Procedure TForm1.Button1Click(Sender : TObject);
Begin
FMyThread := TMyThread.Create;
FMyThread.OnUpdateProgressBar := UpdateProgressbar; // Zuweisung des Eventhandlers an das Event
...
Zitat:
...(ich denke hier z.B. an die Umstellung des Währungsformats, der Nachkommastellen, ....
Dafür gibt es fertige Messages, die von Windows versandt werden. (siehe Mavariks Ansatz). Googel mal danach.