Zitat von
BAMatze:
Kann es sein dass ich mein Delphi vieleicht mal reparieren oder neu installieren sollte?
NEIN!
Aus Erfahrung meiner jahrelangen "stümperhaften" Programmierung weis ich, das es zu 99% am Code (also am Programmierer) liegt, nicht an der
IDE... was sich bei dem
BDS nicht geändert haben sollte.
KeyDown, KeyUp, KeyPress ist ja nur um den Wert von Key zu ändern. Die Anzeige wird durch die Ereignisse ja nicht gemacht.
Genauer:
Setze mal zum Testen alle Keys auf #0, ob die Änderung überhaupt bei FEditEingabe aus TLabEdit ankommt:
Delphi-Quellcode:
procedure TLabZahlEdit.FEdKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
[...]
inherited FEdKeyDown(Sender, Key, Shift);
Key := 0;
end;
Ich glaube die "neue" Ereignis-Methode könnte u.U. gar nicht bis zum ursprünglichen TEdit durchgereicht werden (bzw. der neue Wert von Key), also CharCode im TEdit nicht auf 0 gesetzt, weshalb die Zeichen ausgegeben werden.
Also im Prinzip die neue Methode in der neuen Klasse nochmal mit dem Ereignis verbinden
Delphi-Quellcode:
constructor TLabZahlEdit.Create(AOwner: TComponent);
begin
inherited create(AOwner);
// default-Wert setzen:
FZahlart := Gleitkommazahl;
EdEingabe.OnKeyDown := FEdKeyDown; // FEdEingabe durch ein property sichbar machen
end;
TLabEdit...
property EdEingabe : TEdit Read FEdEingabe;