Registriert seit: 6. Jan 2005
664 Beiträge
|
AW: TApplicationevents.onmessage
6. Mai 2016, 16:12
Hallo,
ich hätte schon ein Beispiel, aber das ist einfach zu viel.
Das Problem beim Thread ist:
Die Berechnung soll bei jeder "MausButtonAktion" abgebrochen werden.
Wo immer ich sie auf dem Formular ausführe.
Das hieße aber, dass ich für jede noch so vage Möglichkeit eine Click-Methode bauen müsste, die oft nichts weiter tut, als den Thread abzubrechen und auf seine Beendigung zu warten.
(Manchmal müsste er nämlich sofort mit anderen Daten neu gestartet werden!)
Also, vielleicht auch für jedes Panel-Click, Label-Click usw.
Im Grunde läuft es darauf hinaus, ein "MousePreview" des Formulars zu haben.
Meines Wissens gibt es da nur zwei sinnvolle Varianten:
Mousehook und eben Applicationeventsmessage (aem).
Die Hookkanone finde ich für den Berechnungsspatzen zu groß.
Bleibt aem.
Momentan sehe ich als günstigste Variante den Thread, der in der aem abgebrochen wird an.
Schaun mer mal...
So, mit dem Focus, wie ich es zuerst wollte, scheint es nicht zu gehen. Ich müsste das Control, das ich angeclickt habe, in aem rauskriegen und es dann setzen. (So, wie vorher mit WM_MouseWheel gemacht ist, aber das scheint bei WM_LMouseDown und WM_LMouseup nicht zu funktionieren, jedenfalls kriege ich da immer nur das Hauptformular - FHaupt.)
Sooo oft brauche ich da kein Application.processmessages. Ich berechne die Gesamtgröße des Dir, also die Summe der Größen aller - auch in den Unterverzeichnissen - enthaltenen Dateien ohne Rekursion. Geht sehr schnell, kann aber auch ziemlich lange dauern, z.B. bei einer ganzen Partition (C:\).
Gruß
Mattze
|