AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

OnClick wird nicht ausgeführt

Ein Thema von Bonni · begonnen am 13. Apr 2012 · letzter Beitrag vom 13. Apr 2012
Antwort Antwort
Bonni

Registriert seit: 13. Apr 2012
3 Beiträge
 
#1

OnClick wird nicht ausgeführt

  Alt 13. Apr 2012, 18:17
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
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: OnClick wird nicht ausgeführt

  Alt 13. Apr 2012, 18:25
klingt als ob Du OnEnter und OnExit verwenden solltest ..
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Bonni

Registriert seit: 13. Apr 2012
3 Beiträge
 
#3

AW: OnClick wird nicht ausgeführt

  Alt 13. Apr 2012, 18:40
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".
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: OnClick wird nicht ausgeführt

  Alt 13. Apr 2012, 18:54
Das kann ich bestätigen. Schnell zusammengeschusterter Workaround:
Delphi-Quellcode:
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;
Hth
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bonni

Registriert seit: 13. Apr 2012
3 Beiträge
 
#5

AW: OnClick wird nicht ausgeführt

  Alt 13. Apr 2012, 19:10
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 ! ! ! !
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#6

AW: OnClick wird nicht ausgeführt

  Alt 13. Apr 2012, 20:17
Zitat:
Delphi-Quellcode:
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
Wenn ich mir anseh WO du hincklickst, dann wundert es mich nicht, daß dort, wo du es erwartest, kein Klick ankommt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz