![]() |
Schlaumeyer
Warum reagiert das Panel dann auf "Entf","Bild auf","Bild ab" Tasten etc. und auf normale Buchstaben etc. sind das etwa keine Tastaturereignisse?
|
Das wird dir wohl keiner beantworten können, der nicht die von dir erstellte Komponente hat. Weil, wei gesagt, ein normales TPanel keine OnKeydown oder up oder wie auch immer Ereignisse hat.
Ein Panel ist ja normal auch etwas, was ein Programm optisch besser aussehen lässt oder als Leinwand für den Mediaplayer dient. |
Source
Delphi-Quellcode:
type
TQuelltextBox = class(TPanel) protected { Protected-Deklarationen } procedure KeyPress(Sender: TObject; var Key: Char); virtual; procedure KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); virtual; Projekt : TProjekt; public { Public-Deklarationen } property OnKeyPress; property OnKeyDown; constructor create(AOwner: TComponent); override; destructor destroy; override; end; ... constructor TQuelltextBox.Create(AOwner: TComponent); begin inherited create(AOwner); OnKeyPress := KeyPress; OnKeyDown := KeyDown; end; destructor TQuelltextBox.Destroy; begin inherited destroy; end; procedure TQuelltextBox.KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case key of VK_DELETE : Projekt.AktuelleDatei.Quelltext.DeleteZeichen(1); VK_HOME : Projekt.AktuelleDatei.Quelltext.CursorAnZeilenanfang; VK_END : Projekt.AktuelleDatei.Quelltext.CursorAnsZeilenende; 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; procedure TQuelltextBox.KeyPress(Sender: TObject; var Key: Char); begin case ord(key) of VK_BACK : Projekt.AktuelleDatei.Quelltext.DeleteZeichen(-1); VK_RETURN : Projekt.AktuelleDatei.Quelltext.ZeilenumbruchEinfuegen; else Projekt.AktuelleDatei.Quelltext.InsertString(key); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 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