Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - ListBox Keypress Steuertasten


Moonbiker - Do 03.04.08 13:14
Titel: ListBox Keypress Steuertasten
Hi,

war lange nicht mehr hier unterwegs - also erstmal einen Gruß an Alle!

Ich verwende seit kurzen das TMS Unicode Pack, welches ursprünglich von TNT stammt. Die daraus entstammende Listbox sollte bez. meiner Frage allerdings der std-Listbox gleich sein.

Ich möchte ein markiertes Element mit der ENTF-Taste löschen. Dazu habe ich

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TMainForm.SourceFilesKeyPress(Sender: TObject; var Key: Char);
begin
  case key of
    Chr(VK_ESCAPE): MainForm.Close;
    Chr(VK_DELETE): SourceFilesDeleteItem;
    else showmessage('Taste: '+key); //zum debuggen
  end;
end;

angelegt. Meine Frage ist nun, wie ich nun Tasten wie ENTF (Einf-Taste o.Ä. geht auch nicht) behandeln kann.
Dazu habe ich bereits diesen Topic [http://www.delphi-forum.de/viewtopic.php?t=69388] gelesen, der mir allerdings nicht recht weitergeholfen hat.

Über eure Hilfe würde ich mich sehr freuen,
Gruß
Michael


Xion - Fr 04.04.08 14:15

Hi, dass ist etwas, was ich zwar nicht verstehe, aber weiß, wie ich es behandeln muss :roll:

Manche Tasten lösen KEIN KeyPress aus, vermutlich, vielleicht weil sie nur 1x ausgelöst werden, anders als bei Buchstaben (T > TTTTT). Du musst dafür einfach das OnKeyDown verwenden, damit gehts.

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.LabeledEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
ShowMessage(inttostr(Key));
end;


Moonbiker - Fr 04.04.08 18:23

Danke für deine Antwort. Ich habe die ENTF und EINF Tasten nun durch +/- ersetzt und verzichte nun darauf.