Autor Beitrag
delphisual
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89

WIN 2000
D5 Prof
BeitragVerfasst: Do 30.11.06 13:09 
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

_________________
(Wer ein Problem definiert, hat es schon halb gelöst.)
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: 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:

ausblenden 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

_________________
Zier dich nich so, ich krieg dich schon....