Thema: Delphi Reaktion auf Pfeiltasten

Einzelnen Beitrag anzeigen

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