AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ONEnter -nur bei TAB?

Ein Thema von d.adams · begonnen am 21. Apr 2023 · letzter Beitrag vom 22. Apr 2023
Antwort Antwort
d.adams

Registriert seit: 2. Apr 2023
19 Beiträge
 
#1

ONEnter -nur bei TAB?

  Alt 21. Apr 2023, 16:40
Hallo,

vielleicht kann mir einer etwas erklären und helfen mein Problem zu lösen.

Ich möchte den Namen von Komponenten auswerten - bspw. TDBEdit-Felder. Testweise habe ich im ONENTER und ONEXIT Ereignis folgenden Code eingefügt:

Code:
showmessage('ENTER/EXIT: '+ActiveControl.Name)
In ActiveControl.Name steht auch der Name der Komponente wenn ich mit TAB in das Feld springe, nicht aber wenn ich mit der Maus reinklicke...

Wie bekomme ich den Namen der Komponente für beide Möglichkeiten in das Feld zu gelangen?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ONEnter -nur bei TAB?

  Alt 21. Apr 2023, 17:36
Nicht ActiveControl, sondern den Sender benutzen?
ActiveControl kann/wird beim Exit bereits das neue aktive Control sein.
ShowMessage('ENTER/EXIT: ' + (Sender as TControl).Name);

Wenn es beim OnExit funktioniert und der Fokus zu Keinem anderen Control geht, also NIL wird, dann viel Spaß, mit ActiveControl.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (21. Apr 2023 um 17:39 Uhr)
  Mit Zitat antworten Zitat
d.adams

Registriert seit: 2. Apr 2023
19 Beiträge
 
#3

AW: ONEnter -nur bei TAB?

  Alt 21. Apr 2023, 18:39
Nicht ActiveControl, sondern den Sender benutzen?
ActiveControl kann/wird beim Exit bereits das neue aktive Control sein.
ShowMessage('ENTER/EXIT: ' + (Sender as TControl).Name);

Wenn es beim OnExit funktioniert und der Fokus zu Keinem anderen Control geht, also NIL wird, dann viel Spaß, mit ActiveControl.
Danke, damit komme ich klar. Ich frage mich allerdings, warum das "ActiveControl" nicht greift wenn ich mit der Mau in ein Feld klicke..
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.349 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ONEnter -nur bei TAB?

  Alt 21. Apr 2023, 19:18
Dafür kannst du einen Datenhaltepunkt auf ActiveControl setzen und schauen, wo das wann geändert wird, wenn du klickst oder Tab drückst.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Aliquis

Registriert seit: 26. Jun 2011
Ort: Grafschaft Bentheim
18 Beiträge
 
Delphi 12 Athens
 
#5

AW: ONEnter -nur bei TAB?

  Alt 21. Apr 2023, 19:26
Hallo, kann es sein, dass du mit Tab in das Feld wechselst - Meldung erscheint - und dann mit der Maus in das Feld klickst? Dann erscheint natürlich keine Meldung, weil das Feld ja schom den Fokus hat und OnEnter nicht aktiv wird. Nur eine Vermutung...
Georg
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: ONEnter -nur bei TAB?

  Alt 22. Apr 2023, 14:33
Hallo,

vielleicht kann mir einer etwas erklären und helfen mein Problem zu lösen.

Ich möchte den Namen von Komponenten auswerten - bspw. TDBEdit-Felder. Testweise habe ich im ONENTER und ONEXIT Ereignis folgenden Code eingefügt:

Code:
showmessage('ENTER/EXIT: '+ActiveControl.Name)
In ActiveControl.Name steht auch der Name der Komponente wenn ich mit TAB in das Feld springe, nicht aber wenn ich mit der Maus reinklicke...

Wie bekomme ich den Namen der Komponente für beide Möglichkeiten in das Feld zu gelangen?
In einem Event, der durch einen Fokuswechsel ausgelöst wird oder zumindest damit im Zusammenhang steht einen Dialog anzuzeigen ist eine extrem schlechte Idee, denn das führt ja direkt zu einem weiteren Fokuswechsel und bringt damit alles durcheinander.

Um aus einem Event zu loggen schreib besser in eine Datei oder benutze OutputDebugString (landet im IDE Event log unten) oder zeig den Text in einem Control an.
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ONEnter -nur bei TAB?

  Alt 22. Apr 2023, 16:51
Gut, der Name wird noch vor dem neuen Fokuswechel ausgelesen.

Man könnte aber auch einfach einen Haltepunkt setzen und es im Debugger auslesen.
ABER zum Debugger und zurück wechselt ebenfalls den Fokus. Zwar nicht ActiveControl innerhalb der VCL (Form/Komonente), aber aus der Form/Application raus.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:20 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