AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Reaktion auf Pfeiltasten

Ein Thema von Leo · begonnen am 8. Mai 2003 · letzter Beitrag vom 9. Mai 2003
Antwort Antwort
Seite 2 von 2     12   
Leo

Registriert seit: 10. Apr 2003
Ort: Berlin
32 Beiträge
 
#11

Schlaumeyer

  Alt 9. Mai 2003, 14:07
Warum reagiert das Panel dann auf "Entf","Bild auf","Bild ab" Tasten etc. und auf normale Buchstaben etc. sind das etwa keine Tastaturereignisse?
Manchmal ist die Sicherheitskopie der einzige trost.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#12
  Alt 9. Mai 2003, 14:08
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.
  Mit Zitat antworten Zitat
Leo

Registriert seit: 10. Apr 2003
Ort: Berlin
32 Beiträge
 
#13

Source

  Alt 9. Mai 2003, 14:09
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;
Manchmal ist die Sicherheitskopie der einzige trost.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz