Delphi Tip of the Day – OnShow SetFocus or Form1.ActiveControl
I'm creating a simple database program to explore how SQLite works within Delphi. I want to be able to switch between three databases: Album, Test, and World. So I added a TComboBox and populated the Items property with three values; Album, Test, World. I also set TextHint := 'Choose Database...';
When I ran the program the TextHint for the ComboBox did not display:
That is not what I was expecting. The Combox was the active control which negates being able to see the TextHint "Choose database..."
So I added a little piece of code to the form's onShow event.
Now when I run the program right from the get-go the StatusBar componet has the focus and the ComboBox displays as intended.
Sometimes it's the small things that make all the difference!
An alternative to using the OnShow event was suggested in the comments.
Enjoy!
Semper Fi
Gunny Mike
object ComboBox1: TComboBox
Left = 8
Top = 8
Width = 121
Height = 21
ParentShowHint = False
ShowHint = False
TabOrder = 0
TextHint = 'Choose database...'
Items.Strings = (
'Album'
'Test'
'World')
When I ran the program the TextHint for the ComboBox did not display:
![]() |
That is not what I was expecting. The Combox was the active control which negates being able to see the TextHint "Choose database..."
So I added a little piece of code to the form's onShow event.
procedure TForm1.FormShow(Sender: TObject);
begin
StatusBar1.SetFocus;
end;
Now when I run the program right from the get-go the StatusBar componet has the focus and the ComboBox displays as intended.
Sometimes it's the small things that make all the difference!
An alternative to using the OnShow event was suggested in the comments.
Form1.ActiveControl := StatusBar1
I love Delphi!
Enjoy!
Semper Fi
Gunny Mike