Hallo und guten Tag an alle
DP´ler,
Ich sitze noch immer an einem Problem, was ich einfach nicht gelöst bekommen auch wenn ich glaube der Fehler ist eigentlich recht simpel. Ich hänge auch eine vorbereitetes Projekt einmal an, damit ihr dies testen könnt. Hier werde ich natürlich die entsprechenden Textstellen zeigen, bei denen ich nicht weiter komme.
Folgendes Problem ergibt sich bei mir ich leite das onKeydown-Event einer meiner Komponenten ab und möchte dort die Eingabe auf bestimmte Zahlensysteme (Ganze Zahlen, Reele Zahlen, ...) einschränken.
Hier mal der Quellcode dafür:
Delphi-Quellcode:
procedure TLabZahlEdit.FEdKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
//* Laut dem Debugger wird das Ändern des Key auf Null ausgeführt und im inherited
//* auch so übergeben. Leider ist noch nicht bekannt, warum der die Keys doch im
//* Edit und im Label angezeigt werden. Die Funktion der
case FZahlart of
Ganzzahl: if Key in [0..7,9..12,14..26,28..44,46..47,58..255] then Key := 0;
posGanzzahl: if Key in [0..7,9..12,14..26,28..47,58..255] then Key := 0;
Gleitkommazahl: if Key in [0..7,9..12,14..26,28..43,46..47,58..255] then Key := 0;
posGleitkommazahl: if Key in [0..7,9..12,14..26,28..43,45..47,58..255] then Key := 0;
end;
inherited FEdKeyDown(Sender, Key, Shift);
end;
Laut dem Debugger wird Key auf 0 gesetzt, so wie ich das möchte. Wenn ich weiterhin in der UrsprungsKomponente (LabEdit) den Key weiter verfolge, ist der Key immer noch 0 trotzdem wird im Edit jegleicher Buchstaben gezeigt, den ich auf der Tastatur drücke, egal ob er erlaubt ist oder nicht.
Ich hatte die Frage in ähnlicher Weise schonmal
hier gestellt, leider aber kam dann keine weitere Antwort. Hoffe mit der Aufarbeitung in einem lauffähigen Projekt ist es einfacher mein Problem nach zu vollziehen.
Vielen Dank
BAMatze
2. Account Sero