Das KeyDown Ereignis bringt das gewünschte Ziel.
Und das klappt bei Dir?
Bei mir funktioniert folgender Code nicht:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Edit1: TEdit;
procedure FormKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
Case Key
Of
54 :
If (ssShift
in Shift)
Then Key:=0;
// '&' einfach ignorieren
End;
Caption:=IntToStr(Key);
end;
end.
Zwar wird - wenn ich das '&' (Shift + 6) drücke - Key auf 0 gesetzt in meinem Edit1 erscheint dennoch das unliebsame '&'. Den Umweg über OnKeyPress(); wollte ich nicht gehen, weil ich in meinem Programm bereits eine sehr umfangreiche Procedure für OnKeyDown habe und es spätestens in ein paar Jahren sehr umständlich in der Wartung wird.
Wo liegt der Fehler bei mir?
Sollte es am Compiler von TurboDelphi liegen?
Ich wollte kein neues Thema aufmachen, weil schon die Frage wie die sprichwörtliche Faust aufs Auge passt und ich es daher sinnlos fand, genau dasselbe Thema erneut aufzumachen...
Gruß, Alex