Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 16:02
Lösche doch einfach alles Unerwünschte raus?


Filtere sowas besser schon in OnKeyPress raus, denn dieses macht die Bediehung viel einfacher.
OnChange ist nur noch für Fälle, wie das Kopieren/Einfügen, welche OnKeyPress nicht abdeckt.
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var s: String;
  i: Integer;
begin
  s := TEdit(Sender).Text;
  for i := Length(s) downto 1 do
    if s[i] in ['0'..'9'] then
      Delete(s, i, 1);
  if s <> 'then
    s[1] := AnsiUpperCase(s)[1];
//if TEdit(Sender).Text <> s then {das sollte in .Text schon drin sein}
    TEdit(Sender).Text := s;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if TEdit(Sender).SelStart = 0 then
    Key := AnsiUpperCase(Key)[1];
  if Key in ['0'..'9'] then
    Key := #0;
end;
Versuche so mal mitten in dem Text zu schreiben.
Bei dir wird ja der Cursor jedesmal auf das Textende gesetzt.
$2B or not $2B
  Mit Zitat antworten Zitat