![]() |
Texteingaben sowie leerstellen ausschliessen
hi ich bin komplett neu in delphi und ich hoffe man verzeiht es mir sollte ich die frage in einen falschen thread geshrieben haben
also ich habeine art rechner gemacht der mit kommastellen arbeitet dieser funktioniertauch soweit jetzt will ich dass er aber Texteingaben und wenn das edit feld leer ist oder wenn eine null darin steht mit einer fehler meldung beantwortet bis jetzt hab ich das etwa so geschrieben if (n=0) or ... then messagedlg('Eingabe fehlt!',mtInformation,[mbOK],0) so bei ... müsste dass mit texteingabe und nullfeld stehen ach ja kann ich eigentlich auch mehrere variablen gleichzeitig den test durchlaufen lassen etwa so? if (n,z,l,k=0) or ... then messagedlg('Eingabe fehlt!',mtInformation,[mbOK],0) erwartete sehnsüchtig eure hilfe |
AW: Texteingaben sowie leerstellen ausschliessen
es gibt verschieden Möglichkeiten, ich würde die erste bevorzugen.
Delphi-Quellcode:
oder auch
var
f:Double; begin If not TryStrToFloat(Edit1.text,f) or (f=0) then Raise Exception.Create('Fehler'); end;
Delphi-Quellcode:
if (length(Trim(Edit1.Text)) = 0) or (Trim(Edit1.Text)='0') then ....
|
AW: Texteingaben sowie leerstellen ausschliessen
oder die Eingabe im Ereignis KeyPress abfangen:
Delphi-Quellcode:
procedure TTaschenrechner.Edit1KeyPress(Sender: TObject; var Key: Char);
begin IF key =#13 Then Key:=#0 else if not (Key in [#8,#44..#46,#48..#57]) then Key:= #0 end; |
AW: Texteingaben sowie leerstellen ausschliessen
ok ich habs bisher erstmal soweit geschafft dass er es mir anzeigt wenn ich keine zahl eingeb durch folgenden befehl
procedure TForm1.Edit1Change(Sender: TObject); begin try (strtofloat(Edit1.Text)) except On EConvertError do messagedlg('Dies ist keine Zahl!',mtInformation,[mbOK],0); end; end; leider crasht mir der debugger trotzdem wenn ich keine zahl eingebe auch wenn er mit danach noch die msg zeigt. ich weiss das man das mit dem debugger umstellen kann will ich aber nicht machen deswegen die frage ob ich diesen crash und das rauswerfen aus dem programm verhindern kann? |
AW: Texteingaben sowie leerstellen ausschliessen
Das passiert nur innerhalb der Delphi-IDE beim Debuggen. Wenn Du das Programm alleine startest, funktioniert es wie geplant.
Um das zu umgehen (ohne sinnvolle Debugger-Funktionalität zu verbergen) müsstest Du TryStrToFloat verwenden, wie es Bummi vorgeschlagen hat. (Leider verheimlichst Du Deine Delphi Version, obwohl es dafür einen schönen Profileintrag gibt. TryStrToFloat gibt es so ungefähr ab Delphi 7) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 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