![]() |
Reaktion auf Pfeiltasten
Hallo,
Warum reagiert die Procedur auf Tataur Ereignisse der "Einfg","Entf","Pos1","Ende" etc. Tasten aber warum wird sie nicht aufgerufen, wenn ich die Pfeiltasten betätige?
Delphi-Quellcode:
procedure TQuelltextBox.KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin case key of VK_DELETE : Projekt.AktuelleDatei.Quelltext.DeleteZeichen(1); VK_LEFT : Projekt.AktuelleDatei.Quelltext.CursorBewegen(-1, 0); VK_RIGHT : Projekt.AktuelleDatei.Quelltext.CursorBewegen( 1, 0); VK_UP : Projekt.AktuelleDatei.Quelltext.CursorBewegen( 0,-1); VK_DOWN : Projekt.AktuelleDatei.Quelltext.CursorBewegen( 0, 1); end; end; |
setze mal "KeyPreview" der Form auf true.
|
KeyPreview
Hilft leider gar nichts :(
|
Tatsturereignisse
Hallo,
ich habe gerade im Zusammenhang mit KeyPreview diesen Satz in der Hilfe gefunden "Die Einstellung bezieht sich nicht auf Navigationstasten (TAB, Pfeiltasten usw.), da diese keine Tastaturereignisse auslösen." Wie reagiert man den dann auf Pfeiltasten? |
Gute Frage. Die müssen ja irgendeine Nachricht an Windows senden, damit man z.B. in einem Memo navigieren kann.
|
Also wenn TQuelltextBox ein Form ist, versteh ich nicht, dass das nicht geht.
Ich hab
Delphi-Quellcode:
eingegeben und alles lief wie gewünscht.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin Case Key of VK_Up : ShowMessage('Nach oben Taste wurde gedrückt'); VK_DOWN:ShowMessage('Nach unten Taste wurde gedrückt'); end; end; Man liest sich. Stanlay 8) |
Nein
TQuelltextBox ist kein Form sondern eine von TPanel abgeleitete Komponenete in einem Form.
|
Hier habe ich einfach zwei Buttons. Drücke ich einen Deiner Pfeiltasten, dann springt der Cursor jeweils zu dem anderen Button.
Delphi-Quellcode:
[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Button1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case key of VK_DELETE, VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN : Button1.SetFocus; end; end; procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case key of VK_DELETE, VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN : Button2.SetFocus; end; end; end. |
Ws lese ich da :?: Von Panel abgeleitet ? Kannst Deine Arbeiten getrost einstellen, siehe Navigator. Ein Panel löst genauso wenig ein Tataturereignis aus wie der Navigator. Da haste die A....-Karte gezogen. :mrgreen:
|
Also bei mir hat ein TPanel gar kein OnKey usw. Hast du das hinzugefügt als du die Komponente abgeleitet hast?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 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