Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Überprüfen auf Zahl (https://www.delphipraxis.net/57092-ueberpruefen-auf-zahl.html)

ByStones2 15. Nov 2005 19:17


Überprüfen auf Zahl
 
Hi,

wie kann ich überprüfen ob die eingabe in Edit1 eine Zahl ist ???

ByStones2

Sharky 15. Nov 2005 19:19

Re: Überprüfen auf Zahl
 
Zitat:

Zitat von ByStones2
...wie kann ich überprüfen ob die eingabe in Edit1 eine Zahl ist ....

Hai ByStones2,

schaue Dir einmal die Procedure Delphi-Referenz durchsuchenVal an.

Wenn Du aber das Edit nur für Zahlen brauchst solltest Du bei der Eingabe einfach verhindern das etwas falsches in dem Edit stehen kann.

ByStones2 15. Nov 2005 19:21

Re: Überprüfen auf Zahl
 
????????????????
Sorry, aber damit kann ich leider nichts anfangen :?: :?: :?:

ByStones2 15. Nov 2005 19:21

Re: Überprüfen auf Zahl
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von ByStones2
...wie kann ich überprüfen ob die eingabe in Edit1 eine Zahl ist ....

Hai ByStones2,

schaue Dir einmal die Procedure Delphi-Referenz durchsuchenVal an.

Wenn Du aber das Edit nur für Zahlen brauchst solltest Du bei der Eingabe einfach verhindern das etwas falsches in dem Edit stehen kann.

Wie geht das ???????????

ByStones2 15. Nov 2005 19:25

Re: Überprüfen auf Zahl
 
Ich hab ne Lösung gefunden !!!!!!!!!!!!
Danke :thumb: :thumb: :thumb:

Christian S. 15. Nov 2005 19:26

Re: Überprüfen auf Zahl
 
Du?

Sharky 15. Nov 2005 19:27

Re: Überprüfen auf Zahl
 
Hier mal ein kleines Beispiel:
[code=delphi]
procedure TForm1.btn_TestClick(Sender: TObject);
var
s: string;
zahl: real;
code: integer;
begin
s := edt_Edit1.Text;
Val(s, zahl, code);
if (code > 0) then
begin
ShowMessageFmt('An Position %d des Strings ' + #10 +
'ist ein Fehler beim konvertieren aufgetreten',
Code:
);
  end;
end;

Helmi 15. Nov 2005 19:28

Re: Überprüfen auf Zahl
 
Hallo

schau dir dochh mal das TMaskEdit an

und bei dem die Property EditMask

dort kannst du angeben was eingegeben werden soll - z. B. nur Zahlen

juergen 15. Nov 2005 19:36

Re: Überprüfen auf Zahl
 
Hallo ByStones2,
wenn du eine Fehleingabe verhindern willst, würde ich folgendes empfehlen:
Delphi-Quellcode:
procedure TMyProg.InputAKeyPress(Sender: TObject;
  var Key: Char);
var
  string1: string;
begin
  string1:=Edit1.text;
if key in [',','.',':'] then key := DecimalSeparator;
 
  if not (key in[#8,#13,#45,#44,#48..#57]) then key:=#0; {allgemeine Sperrung von allen Zeichen ausser
                                                          backspace, Enter, (-) , (,) , (.) , (:) und alle Zahlen } 
 
if (Edit1.selstart <> 0) and( key=#45) then key:=#0;    // das Minus darf nur am Anfang benutzt werden

  if (pos(#44,string1)>0) and (key=#44) then key:=#0;   // nur ein Komma

  if (Edit1.SelStart=0) and (key= #44) then key:=#0;   // kein Komma am Anfang

  if (Edit1.selstart=1) and                            // Kein Minus und anschließend ein Komma
     (string1[1]='-')  and
     (key=#44) then
     key:=#0;
       if not (key in[#8,#13,#45,#44,#48..#57]) then begin
       Key:=#0;
       Windows.Beep(2500,80) ;                       // anstelle einer Fehlermeldung ein kurzer Beep?????
       end;
  end;
Das ganze dann dem OnKeyPress Ereignis zuordnen->fertig.
Fehlermeldungen können ganz schön nerven :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 Uhr.

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