Bei Tab-Drücken Zeile einrücken

Ich versuch mir gerade eine Art Notepad zu erarbeiten,momentan hänge ich an dem Problem,dass wenn ich die Tabulator-Taste drücke,dass der Cursor dann 4 Zeichen einrückt oder etwas in der Art.
Ich hab bereits nach OnKeyPress und KeyPress gesucht (wo besteht da eigentlich der Unterschied?),aber ich hab im Bezug auf die Tabulator-Taste keine Konstante gefunden. Ich hab aber was von einem ASCII Code gelesen,womit jede Taste erkannt werden soll,nur leider hab ich keine Auflistung gefunden.

Wie also bekomm ich das am besten hin? :)
 
Da die Tab-Taste eine besondere Taste ist,

kommst Du mit OnKeyPress nicht weiter (btw. Du kannst Dir vorstellen, dass OnKeyPress das Ereignis ist, welches intern in der Methode KeyPress verarbeitet wird)

Verwende stattdessen OnKeyDown

vop
 
Ok,mit OnKeyDown hab ich was anfangen können.Leider funktioniert dort aber die Tab-Taste nicht...

Code:
procedure TBlockMain.RichEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_Tab			then
  Close;
end;

Es tut sich leider nix.Mit "VK_Escape" geht es aber beispielsweise, da wird das Programm beendet. :suspekt:
 
Stimmt:
Tab hat ja Seuerungsfunktion (Fokus-wechsel)

Im Buch von Doberenz/Kowalski : Delphi-Buch , Titel weiß ich nicht mehr genau wurde die Lösung beschrieben. Habs gerade nicht da.

Vielleicht weiß ja noch jemand anderes das aus dem Kopf?

vop
 
Versuchs mal im OnKeyUp mit dem ASCII-Code #9. Also "key=9" sollte die Abfragebedingung sein. Theoretisch müsste es dann funktionieren, zumindest beim Edit klappt das. #9 ist der Horizontaltabulator. Übrigens könntest du das auch ganz leicht selbtst rausfinden, indem du in den Ereignissen anzeigen lässt, wie du die taste ansprechen kannst. Also im onKeyUp z.B. showmessage(inttostr(key));

lg Hellie
 

Neue Beiträge

Zurück