![]() |
Überprüfen auf Zahl
Hi,
wie kann ich überprüfen ob die eingabe in Edit1 eine Zahl ist ??? ByStones2 |
Re: Überprüfen auf Zahl
Zitat:
schaue Dir einmal die Procedure ![]() 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. |
Re: Überprüfen auf Zahl
????????????????
Sorry, aber damit kann ich leider nichts anfangen :?: :?: :?: |
Re: Überprüfen auf Zahl
Zitat:
|
Re: Überprüfen auf Zahl
Ich hab ne Lösung gefunden !!!!!!!!!!!!
Danke :thumb: :thumb: :thumb: |
Re: Überprüfen auf Zahl
|
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; |
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 |
Re: Überprüfen auf Zahl
Hallo ByStones2,
wenn du eine Fehleingabe verhindern willst, würde ich folgendes empfehlen:
Delphi-Quellcode:
Das ganze dann dem OnKeyPress Ereignis zuordnen->fertig.
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; 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