Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Textfeld auf Zahl prüfen (https://www.delphipraxis.net/182639-textfeld-auf-zahl-pruefen.html)

AblukaAlarm 6. Nov 2014 13:15

Textfeld auf Zahl prüfen
 
Hallo zusammen,

habe das Problem ein Eingabefeld (sollte nur für Zahlen sein, sonst keine Berechnung möglich) auf Zahlen zu prüfen.
Der Anfang des Programms sieht so aus:
Delphi-Quellcode:
type

  { TForm1MSP }

   TForm1MSP = class(TForm)
    ...
    Edit1Masse: TEdit;
....(die anderen Felder)

  procedure Edit1MasseChange(Sender: TObject);
....(die anderen Felder)
Nun in dem Feld wo die Zahl rein kommen soll:
Delphi-Quellcode:
procedure TForm1MSP.Edit1MasseChange(Sender: TObject);

....
hiernach habe ich alles mögliche versucht, aber habe immer Fehlermeldungen bekommen.

Mein Ziel ist es, einfach dieses Feld auf Zahlen (mit Komma oder ohne ist egal) zu prüfen und falls dort eine Buchstabe eingegeben wird soll showmessage('Bitte geben Sie eine Zahl ein') rauskommen
Konnte das Problem nicht lösen und bitte um Hilfe
Vielen Dank :thumb:

mkinzler 6. Nov 2014 13:18

AW: Textfeld auf Zahl prüfen
 
Z.B. mit TryStrToFloat()

AblukaAlarm 6. Nov 2014 13:36

Delphi-Quellcode:
VAR
zahl:string
Delphi-Quellcode:
try
zahl :=TryStrToFloat(Edit1Masse.text);
except
 showmessage('Geben Sie bitte eine Zahl ein');
end;
habe das hier mal versucht aber das programm starten dann nicht

mkinzler 6. Nov 2014 13:38

AW: Textfeld auf Zahl prüfen
 
Delphi-Quellcode:
if not TryStrToFloat(Edit1Masse.text, zahl) then ...

himitsu 6. Nov 2014 13:39

AW: Textfeld auf Zahl prüfen
 
Zitat:

Zitat von AblukaAlarm (Beitrag 1278928)
aber das programm starten dann nicht

Wie bitte?
PS: Die Fehlermeldung kann man kopieren (Strg+C) oder notfals halbwegs abschreiben.

Und jetzt schau mal bitte in die OH (Delphi-Referenz durchsuchenTryStrToFloat) und prüfe was du falsch gemacht hast.

Ach ja, TryStrTo... lösen keine Exceptions aus.

Chemiker 6. Nov 2014 13:42

AW: Textfeld auf Zahl prüfen
 
Hallo,

oder mit KeyPress-Event nur Zahlen zulassen.

Delphi-Quellcode:
if not (Key in [#48..#57] then Key:=0;


Bis bald Chemiker

DeddyH 6. Nov 2014 13:44

AW: Textfeld auf Zahl prüfen
 
Dann kriegst Du aber auch kein Komma rein. Nimmst Du das mit in die Menge auf, kann es mehrfach oder an unsinniger Stelle vorkommen.

AblukaAlarm 6. Nov 2014 13:53

AW: Textfeld auf Zahl prüfen
 
Delphi-Quellcode:
procedure TForm1MSP.RadioGroup1Click(Sender: TObject);
begin

end;


Var
zahl:string;

procedure TForm1MSP.Edit1MasseChange(Sender: TObject);
 begin
    if not TryStrToFloat(Edit1Masse.text, zahl)
       then showmessage('FEHLER')
 end;

nun siehts so aus und so kommt die Fehlermeldung:
unit1.pas(127,47) Error: Call by var for arg no. 2 has to match exactly: Got "AnsiString" expected "Extended"

Chemiker 6. Nov 2014 13:55

AW: Textfeld auf Zahl prüfen
 
Hallo DeddyH,

Zitat:

Zitat von AblukaAlarm
(mit Komma oder ohne ist egal)

Bis bald Chemiker

Sir Rufo 6. Nov 2014 13:55

AW: Textfeld auf Zahl prüfen
 
Na dann schau dich mal was
Delphi-Quellcode:
zahl
für einen Typen hat und welcher Typ wohl erwartet wird?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 Uhr.
Seite 1 von 3  1 23      

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