Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Edit-Felder nur eingebe von Zahlen möglich (https://www.delphipraxis.net/5554-edit-felder-nur-eingebe-von-zahlen-moeglich.html)

TimmA 11. Jun 2003 07:19


Edit-Felder nur eingebe von Zahlen möglich
 
Hallo,

ich würde gerne mal wissen wie ich es einfach machen kann, dass ich in ein Edit-Feld nur Zahlen schreiben darf. Also ich hab das jetzt so mit if gemacht wenn z.b. A im Feld ist, dass eine Meldung kommt und das Feld wieder "leergemacht" wird und das gleiche mit B usw. ist eben seeeehr aufwendig und viel Code :oops:

Wie mach ich das mit If not die Zahlt 0 oder 1 oder 2 usw. geht das ?






danke im Voraus !

Stanlay Hanks 11. Jun 2003 07:25

Es gibt aber auch tolle Sachen hier im Forum....Wie heißt das doch gleich....ahhh! Suche :wink:

Eingabe beschränken
Buchstaben verhindern

Man liest sich, Stanlay :wink:

subw00fer 11. Jun 2003 09:14

Servus!

Versuche es einmal mit TMaskEdit! Mache einen DoppelKlick aud EditMask unter den Eigenschaften und schreibe vollgendes hinein: z.B.: für max. dreistellige Nummer 999;1 bzw. vierstellige 9999;1 ....

Hoffe ich konnte dir helfen...
...subw00fer

TimmA 17. Jun 2003 08:15

Hallo,

ok danke ich habe es mit einem normalem Edit hinbekommen die Sache mit den TMaskEdit's gefällt mir allerdings nicht so :oops:

flow 17. Jun 2003 08:34

Hallo,

falls es noch hilft, ich habe das so gelöst. Auch wenns nicht die schönste Version ist, es funktioniert!

Delphi-Quellcode:
procedure TGotoForm.edGotoChange(Sender: TObject);
var s, sOrd : String;
begin
 s := edGoto.Text;
 If s = '' Then exit;

 sOrd := Copy(s,Length(s),1);
 Case Ord(sOrd[1]) of
   48..57: Exit;
 else
   Delete(s,Length(s),1);
   If s = '' Then s := '0';
   edGoto.Text := s;
   SendMessage(edGoto.Handle,EM_SETSEL ,length(s),length(s));
 end;
end;
Bei mir ist das ein Eingabe Fenster mit einer TEdit wo man angeben kann in welche Zeile man im Text springen kann. Ich check allerdings nur den letzten Eintrag, den ganzen String check ich nicht durch.

FLOW

Motzi 17. Jun 2003 09:53

@flow: und was passiert wenn der Inhalt länger als ein Zeichen ist und ich das erste Zeichen änder?!? :roll:

Am einfachsten ist es im OnKeyPress-Ereignis zu testen ob:
Delphi-Quellcode:
char in ['0'..'9', #8]
ist (#8 ist Backspace) und wenn nicht wird Char auf #0 gesetzt (dann passiert einfach nix).

flow 17. Jun 2003 11:51

Ja stimmt, ist einfacher!

FLOW

Tpercon 17. Jun 2003 13:14

Daher, wie oben auch beschrieben!, mal wieder
Delphi-Quellcode:
If not(key in [#48..#57,#8])
then key := #0;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz