![]() |
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
TTabControl lässt sich allerdings nicht in eine Horizontale zwängen, weswegen die Button-Lösung die richtige ist ;-p
|
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
Komisch, sowohl TabControl als auch PageControl lassen sich bei mir umschalten. Dabei wird die Schrift auch noch vertikal geschrieben.
|
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
Huch, die Eigenschaft TabPosition hab ich gar nicht gesehen. Allerdings ist eine vertikale Schrift alles andere als der Übersichtlichkeit dienlich. Darum ist meine Lösung doch die richtige, solange es keine Lösung gibt, die meine Buttons (o.ä.) in einer vertikalen Anordnung aber mit horizontaler Schrift bietet.
|
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
Das würde mich jetzt aber doch interessieren.
Kann man irgend wie erzwingen, die Nachrichten VK_DOWN und VK_UP vor den Buttons zu erhalten. Auch wenn es, wie es scheint, gegen das Windowsstandardverhalten ist. In bestimmten Dialogen möchte ich nicht, das mit den Pfeiltasten zwischen den Buttons herumgesprungen wird, sondern eine andere Aktion durchgeführt wird. Und das klappt eben nicht, wenn die Buttons gerade den Fokus haben. Dann kommen die Events nicht mehr durch. |
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
Erzwingen kann man das schon (ein Memo oder Edit machen das ja), aber man verliert dabei die Navigation zwischen den Buttons.
|
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
Zitat:
|
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
|
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
Zitat:
man könnte die Schrift jedoch selber zeichnen,
Delphi-Quellcode:
ob das ein zufriedenstellendes Ergebnis ist, ist natürlich Ansichtssache.
procedure TForm1.FormCreate(Sender: TObject);
begin TabControl1.OwnerDraw := true; TabControl1.TabPosition := tpLeft; TabControl1.TabWidth := 25; TabControl1.TabHeight := 75; end; procedure TForm1.TabControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin if Control is TTabControl then TTabControl(Control).Canvas.TextOut((Rect.Right - Rect.Left - TTabControl(Control).Canvas.TextWidth(TTabControl(Control).Tabs[TabIndex])) div 2, Rect.Top + (Rect.Bottom- Rect.Top - TTabControl(Control).Canvas.TextHeight(TTabControl(Control).Tabs[TabIndex])) div 2, TTabControl(Control).Tabs[TabIndex]); end; EDIT: Der Fehler wurde behoben, dass alle Taps die selbe Caption haben. |
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
Das sieht doch schonmal sehr nett aus, aber die Tabs haben jetzt alle die selbe Caption :-/
|
Re: Button überspringt OnKeyDown bei VK_Up / VK_Down
Den Code habe ich jetzt abgeändert, es lag wohl an
Delphi-Quellcode:
jetzt müsste es eigentlich funktionieren.
with TTabControl(Control) do
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz