das ganze mal ordentlich:
Delphi-Quellcode:
procedure TForm1.Edt_Change(Sender: TObject);
var
i,
lLen : integer;
lDst,
lSrc : String;
begin
lLen := 0;
lSrc := Edt_.Text;
SetLength(lDst, Length(lSrc));
for i := 1 to Length(lSrc) do
begin
if (lSrc[i] in [' ', '.', '-']) then
begin
inc(lLen);
lDst[lLen] := lSrc[i];
end;
end;
if (lLen <> Length(lSrc)) then
begin
ShowMessage('Ungültige(s) Zeichen in der Eingabe!');
Edt_.Text := copy(lDst, 1, lLen);
end;
end;
@Marabu: Natürlich hast du recht. Aber auch OnChange sollte man nicht außer acht lassen da per Strg + V oder Context-Menü und einfügen aus der Zwischenablage ungewollte Zeichen eingefügt werden können.