![]() |
OnClick wird nicht ausgeführt
Hallo beisammen !
Habe mir schon die Finger wund gesucht, aber leider noch keine Hilfe gefunden, deswegen mein Versuch, hier von Euch Antwort zu bekommen. Ich habe ein Programm geschrieben, welches beim Eintritt in ein Editfeld prüft, ob das, was drinnen steht, sinnig ist, beim Verlassen wird ebenfalls eine (andere) Prüfung durchgeführt. Mit Tastatur getestet gab es keine Probleme, allerdings bei Klick mit der Maus in die Felder treten seltsame Phänomene auf. Caret wird, obwohl keine Taste gehalten wird, mit der Maus im Eingabefeld bewegt. Je nachdem um was (normales Edit, MaskEdit, SpinEdit) essich handelt auch der Text entsprechend der Mausbewegung markiert. Habe jetzt herausgefunden, dass, wenn ich verschiedene Sachen bei OnEnter durchführe (Anzeige eine Meldung, längere Berechnung, teilweise auch ein Delay) die OnClick-Meldung unterschlagen wird -> und erst diese platziert den Caret fest im Eingabefeld. Habe es mit mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); versucht, auch mit Post- und SendMessages aber das OnClick läßt sich nicht simulieren. Kann mir jemand helfen? Besten Dank im voraus |
AW: OnClick wird nicht ausgeführt
klingt als ob Du OnEnter und OnExit verwenden solltest ..
|
AW: OnClick wird nicht ausgeführt
Das mache ich ja. OnClick habe ich noch nie benutzt.
Probier es aus: Wenn Du ein Editfeld hast und bei OnEnter eine ShowMessage absetzt, dann bleibt der Caret mehr oder weniger "in der Luft hängen" und wandert, je nach Mausbewegung, mit. Erst bei einem erneuten reinklicken verhält sich das Editfeld wieder "normal". |
AW: OnClick wird nicht ausgeführt
Das kann ich bestätigen. Schnell zusammengeschusterter Workaround:
Delphi-Quellcode:
Hth
const PM_MSG = WM_USER + 42;
type TForm1 = class(TForm) ... private { Private-Deklarationen } procedure PMMsg(var Message: TMessage); message PM_MSG; ... end; ... procedure TForm1.Edit1Enter(Sender: TObject); begin PostMessage(Handle, PM_MSG, 0, 0); end; procedure TForm1.PMMsg(var Message: TMessage); begin ShowMessage('Enter'); end; |
AW: OnClick wird nicht ausgeführt
Suuuper ! Vielen Dank - funktioniert in meinem Testprojekt.
Werde es übers Wochenende in das richtige einbauen. Arbeite auch mit den LMD-Tools (LMDSpinedit und LMDMaskedit) -> die sind da hartnäckiger. Da klappt es immer noch nicht. Sieht auch aus, als ob da beim reinklicken noch irgend ein Drag-Modus automatisch aktiviert wird (Cursor ändert sich entsprechend). Werde sie wohl ersetzen müssen ... Nochmals besten Dank ! ! ! ! |
AW: OnClick wird nicht ausgeführt
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr. |
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-2025 by Thomas Breitkreuz