Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
Delphi 2007 Professional
|
erkennen wenn anderes Control ausgewält wird
16. Aug 2007, 16:40
Hi,
ich möchte in einem Control erkennen, wenn der Focus auf ein anderes Control wechselt. Dazu benutze ich die vererbten Methoden DoEnter und DoExit. Funzt auch super. Nun ist es aber so, dass eins meiner Controls (Panel) den Container für andere Controls darstellt. Der Focus wechselt aber nur, wenn ein Control in einem anderen Container den Focus enthält. Clicke ich auf meinen Container, so verliert das darin enthaltene Element jedoch nicht den Focus; zumindest wird nicht OnExit (DoExit) aufgerufen. Da ich dies aber zum selektieren meiner Controls benutze, hab ich hier ein Problem.
Bei meinem Beispiel im anhang soll also folgendes passieren:
- Klicke ich mein Panel an, so soll das Panel selectiert sein und das Label nicht.
- Klicke ich mein Label an, so soll mein Label selektiert sein und mein Panel nicht.
Im MouseDown meiner Controls wird self.SetFocus aufgerufen.
Das ganze klappt nur, wenn ich z.B. zwichen zwei Panels hin und her clicke (steht so auch korrekt in der Hilfe). Also es macht schon das richtige. Das ist aber nicht das was ich will.
Kennt hier jemand eine andere Lösung?
42
|