![]() |
Zahleneingabe erzwingen
Hi,
ich schreibe ein Programm bei der ich eine Temperatureingabe benötige. Diese TempEingabe soll vom Benutzer in einem Edit Feld eingegeben werden. Dabei soll der Zahlenbereich jedoch nur von -90.0 bis +180.0 variieren, Werte außerhalb des Berreichs sollen ignoriert werden. Wenn man z.b. 180 eingibt, soll ein Wert im Format von 0180.0 an eine Variable weitergegeben werden, da ich einen 4 stelligen Code benötige. |
Re: Zahleneingabe erzwingen
|
Re: Zahleneingabe erzwingen
Ok, das geht mit Spin Edit, aber wie mache ich das denn wenn ich kein SpinEdit benutzen will.
Also eine Zahlengrenze von -90 bis +180 einzuhalten? |
Re: Zahleneingabe erzwingen
Code:
if zahl im bereich dann weiter sonst neue eingabe
|
Re: Zahleneingabe erzwingen
..Und das ganze z.B. ins OnExit des Editfelds:
Delphi-Quellcode:
oder ähnlich.. nur so als Denkanstoß :)
IF Edit1.Text='' THEN Edit1.Text := '0';
IF StrToInt(Edit1.Text) < UntereGrenze THEN Edit1.Text := IntToStr(UntereGrenze); IF StrToInt(Edit1.Text) > ObereGrenze THEN Edit1.Text := IntToStr(ObereGrenze); Oder andere Eingabe erzwingen statt obere Grenze automatisch setzen... (vgl. ibp's Posting & ![]() Gruß Stephan :dance: |
Re: Zahleneingabe erzwingen
ich würde aber besser trystrtotint benutzen, da hier gleich eine fehlerabfrage implementiert ist!
|
Re: Zahleneingabe erzwingen
Zitat:
also ich hab das mal für nene taschenrechner so gemacht
Delphi-Quellcode:
Rechenfeld ist ein EDitfeld und Rechenfeldtext(ohne punkt) eine string variable(ich weiß, dass dieser name die lesbarkeit erschwert)
const real = ['0'..'9',',','.'];
begin i:=0; Rechenfeld.PasteFromClipboard; RechenfeldText := Rechenfeld.Text; Rechenfeld.Text := ''; while i <= length(RechenfeldText) do begin while not (RechenfeldText[i] in real) do inc(i); if RechenfeldText[i] = '.' then RechenfeldText[i] := ','; Rechenfeld.Text := Rechenfeld.Text + RechenfeldText[i]; inc(i); end; end; das editfeld kann bei mir nicht frei editiert werden (nur über buttons), aber es ging darum auch einfügen aus der zwischenablage zu ermöglichen. das dingen da oben filtert halt alle zahlen aus einem string raus du brauchst dann nach einem system dieser art den string nur noch in einen integer oder float oder so wert umzuwandeln und dann überprüfst du einfach, ob der wert deine grenzen über- oder unterschreitet und setzt ihn dann automatisch auf den grenzwert oder gibts dem user eine fehlermeldung raus [EDIT] mir fällt grad auf, dass man für die umschließende while schleife auch locker ne for-schleife nehmen und mit continue arbeiten kann bzw vielleicht wäre das sogar besser.[/EDIT] |
Re: Zahleneingabe erzwingen
Hat soweit geklappt, DANKE euch.
Schließe hiermit den thread |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 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