AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zahleneingabe erzwingen

Ein Thema von skaven · begonnen am 20. Okt 2004 · letzter Beitrag vom 20. Okt 2004
Antwort Antwort
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#1

Zahleneingabe erzwingen

  Alt 20. Okt 2004, 09:29
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.
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#2

Re: Zahleneingabe erzwingen

  Alt 20. Okt 2004, 09:34
Hi,

zum Thema Zahleneingabe erzwingen haste ja schonmal in Deinem anderen Thread ne Antwort bekommen..
Und zum Formatieren von Variablen schau Dir mal die Funktion Delphi-Referenz durchsuchenFormat() an

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#3

Re: Zahleneingabe erzwingen

  Alt 20. Okt 2004, 10:47
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?
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#4

Re: Zahleneingabe erzwingen

  Alt 20. Okt 2004, 10:54
Code:
if zahl im bereich dann weiter sonst neue eingabe
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#5

Re: Zahleneingabe erzwingen

  Alt 20. Okt 2004, 10:57
..Und das ganze z.B. ins OnExit des Editfelds:
Delphi-Quellcode:
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 ähnlich.. nur so als Denkanstoß
Oder andere Eingabe erzwingen statt obere Grenze automatisch setzen... (vgl. ibp's Posting & Delphi-Referenz durchsuchenSetFocus)

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#6

Re: Zahleneingabe erzwingen

  Alt 20. Okt 2004, 11:01
ich würde aber besser trystrtotint benutzen, da hier gleich eine fehlerabfrage implementiert ist!
  Mit Zitat antworten Zitat
bmg4ever

Registriert seit: 16. Sep 2004
12 Beiträge
 
#7

Re: Zahleneingabe erzwingen

  Alt 20. Okt 2004, 11:05
Zitat von ibp:
Code:
if zahl im bereich dann weiter sonst neue eingabe
hmmm.... läuft nicht

also ich hab das mal für nene taschenrechner so gemacht

Delphi-Quellcode:
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;
Rechenfeld ist ein EDitfeld und Rechenfeldtext(ohne punkt) eine string variable(ich weiß, dass dieser name die lesbarkeit erschwert)
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]
  Mit Zitat antworten Zitat
skaven

Registriert seit: 13. Okt 2004
87 Beiträge
 
#8

Re: Zahleneingabe erzwingen

  Alt 20. Okt 2004, 12:06
Hat soweit geklappt, DANKE euch.

Schließe hiermit den thread
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 Uhr.
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