Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Zahleneingabe in Edit verhindern ?

  Alt 26. Jan 2010, 15: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat