Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Editmask hilfe


delphisual - Do 30.11.06 13:09
Titel: Editmask hilfe
Kennt sich jemand mit der Eigenschaft Editmask aus? Ich möchte über diese Eigenschaft nur die Zahlen, Kommas und %-Zeichen zulassen. Mein Problem ist eigentlich, dass meine Datenbank keine Sonderzeichen zulässt, da das Feld einen Datentyp float hat. Ich möchte aber das zumindest in das Eingabefeld ein %-Zeichen zugelassen wird.
Kann wer bitte helfen?
MfG
delphisual


oldmax - Fr 01.12.06 07:12

Hi
Also, ich hatte mal ähnliche Probleme und habe mich von TEditMask ganz schnell verabschiedet. Es ist wesenlich einfacher, ein normales TEdit entsprechend einzurichten .z.B.
Hier meine Lösung:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Procedure TEdit.OnKeyPressReal( ..... ); // ableiten vom Orginal und umbenennen
Begin 
  If (Key=','and (Pos(',',(Sender as TEdit)>0then Key:=Chr(0)
  else
  begin
    If (Key<>',')  {or (Key<>'%')} then // geschweift für weitere zugelassene Zeichen
    Begin
      If (Key<>Chr(8)) {or (Key<>'%')} then // geschweift für weitere zugel. Zeichen
      Begin
        If (Key<'0'or (Key>'9'then Key:=Chr(0);// Eingabe verwerfen...
      end;
    end;
  end;
end;

ähnlicher Aufbau gilt für Integer, da entfällt die Kommaprüfung.
Diese Procedure kannst du deinen Editfeldern in dem OnKeyPress-Ereignis zuweisen und dein Problem ist gelöst. Ok, evtl. mußt du das ein oder andere Steuerzeichen noch zulassen.
(Backspace, Tab, Enter, etc...)
Gruß oldmax