Wie kann ich einem Frame den Focus geben?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Wie kann ich einem Frame den Focus geben?

Beitrag von Ally »

Hallo zusammen,

anbei ein kleines Beispiel das aus einem Form und zwei Frames besteht.
Auf Form1 liegt ein Notebook mit zwei Seiten. Auf jeder Seite liegt ein Frame.
Die Seiten des Notebooks lassen sich über Buttons anwählen.
Das Ganze funktioniert auch, bis auf eine "Kleinigkeit".
Beim Programmstart erhält der Frame der sichtbaren Seite den Focus und FrameEnter wird ausgeführt.
Wechselt man zur Seite 2, wird Frame2 nicht aktiviert und auch FrameEnter wird nicht ausgeführt.
Springt man mit der Tab-Taste zum Frame, wird FrameEnter allerdings ausgeführt.

Wie kann ich jetzt in ButtonClick den Focus auf den entsprechenden Frame setzen?
Dateianhänge
FrameTest.zip
(6.86 KiB) 49-mal heruntergeladen

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: Wie kann ich einem Frame den Focus geben?

Beitrag von Ally »

Problem gelöst!

ActiveControl := FrameXXX; heißt der "Zauberbefehl". :)
Der Frame wird aktiviert und somit FrameEnter ausgeführt.
In FrameEnter kann man dann noch den Focus auf die gewünscht Komponente legen, Fertig! :)
Dateianhänge
FrameTest.zip
(6.91 KiB) 49-mal heruntergeladen

Antworten