Guten Morgen Matthias,
Zitat von
Mattze:
... Ist das nun Bug oder Feature, dass OnClick auf Tasten reagiert? ...
das ist definitiv ein Feature - siehe Online-Help unter TControl.OnClick().
Zitat von
Mattze:
... Kann man prinzipiell (nicht nur OnClick und spezielle Tasten) überprüfen, ob das Ereignis von der Tastatur oder der Maus ausgelöst wurde? ...
Du könntest folgendes machen:
Delphi-Quellcode:
type
TDemoForm = class(TForm)
// ...
private
MouseIsDown: Boolean;
ListBoxKey: Char;
end;
procedure TDemoForm.ListBoxMouseUpDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MouseIsDown := not MouseIsDown;
end;
procedure TDemoForm.ListBoxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ListBoxKey := #0;
end;
procedure TDemoForm.ListBoxKeyPress(Sender: TObject; var Key: Char);
begin
ListBoxKey := Key;
Key := #0; // roll your own hotkey
end;
procedure TDemoForm.ListBoxClick(Sender: TObject);
begin
if not MouseIsDown then
case ListBoxKey of
// ...
end
else ShowMessage('mouse click');
ListBoxKey := #0;
end;
Deine beiden anderen Fragen kann man zusammenfassen:
Zitat von
Mattze:
... Welchen Font nimmt eigentlich ein Untermenü? ...
Dieser Font ist eine systemweite Einstellung. Du erreichst sie z.B. über die
Eigenschaften im Kontextmenü des Desktops. Wenn du unter
Erweiterte Darstellung das Element
Menü auswählst, dann kannst du die Höhe der Menüleiste und die verwendete Schrift samt Größe festlegen.
Zitat von
Mattze:
... Wenn man den Font vom Formular ändert, dann ändert sich die Schrift im horizontalen Hauptmenü. In den aufklappenden Untermenüs bleibt sie aber. ...
Nicht wenn du mit dem Systemmenü (TMainMenu) arbeitest.
Freundliche Grüße