Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Taste Backspace in Memofeld deaktivieren


c4 - Fr 16.05.03 16:43
Titel: Taste Backspace in Memofeld deaktivieren
Moin,

ich wollte - wenn gewünscht - die Entfernen- und Backspace-Tasten deaktivieren. Ich dachte mir das so:

Delphi-Quelltext
1:
2:
if (checkbox1.checked=true) and ((key=8or (key=46)) then
 key:=0;

Die Tastencodes sind 100%ig korrekt! Entfernen kann man nun auch drücken, wie will man und es passiert nichts. Backspace hingegen hat noch immer seine/ihre(?) volle Funktionalität.
Wie verbiete ich diese Taste denn nun?
Mit den virtuellen Tastencodes (vk_...) zu arbeiten hat's übrigens auch nicht gebracht.

MfG


Christian S. - Fr 16.05.03 19:43

So funktioniert es:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Ord(key) = vk_back) then key:=#0;
end;

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_delete then key:=0;
end;


MfG,
Peter


c4 - Fr 16.05.03 21:04

Wenn ich das jetzt so sehe, dann ist mir auch klar, warum das geht. Naja, passiert.

Besten Dank.