ich verstehe da was nicht: ich habe zwei set of char, in einem möchte ich den Punkt haben, in dem anderem nicht. Er ist aber in beiden sets, und noch besser, wenn ich ihn mit '.' eingebe, dann bekomme ich eine Fehlermeldung. Obwohl der Punkt im set InputIntChars nicht enthalten ist kann er im tEdit eingegeben werden - warum?
Code: Alles auswählen
const
InputFloatChars: set of char = [',', '+', '-', 'e', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', char(vk_Back), char(vk_Delete) ];
//InputFloatChars: set of char = ['.', ',', '-', 'e', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', char(vk_Back), char(vk_Delete) ];
InputIntChars: set of char = ['+', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', char(vk_Back), char(vk_Delete)];
//InputIntChars: set of char = ['.', '+', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', char(vk_Back), char(vk_Delete)];
{$R *.lfm}
{ TMainForm }
procedure TMainForm.IntInput(Sender: TObject; var Key: char);
begin
if not ( Key in InputIntChars ) then Key := #0;
//if Key = '.' then Key := #0;
if Sender is tLabeledEdit then
begin
Ich bekomme zwar hin, was ich haben will, aber ich habe die Angst, dass da was nicht stimmt ...
Weiß jemand mehr?
Herzlichen Gruß
Harald
P.S.: Lazarus 2.2 unter Windows 10 auf diversen Rechnern