Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi if then (https://www.delphipraxis.net/47354-if-then.html)

coolchatter 9. Jun 2005 21:29


if then
 
Hi,

ich habe ein problem. Und zwar:

Delphi-Quellcode:
if (Edit1.Text > '0') and (Edit1.Text <= '4') then Edit2.Text := '<= 4';
if (Edit1.Text > '4') and (Edit1.Text <= '9') then Edit2.Text := '<= 9';
if (Edit1.Text > '9') and (Edit1.Text <= '13') then Edit2.Text := '<= 13';
dann müsste, wenn ich in Edit1 z.B. 10 eingebe in Edit2 <= 13 angezeigt werden. Das passiert aber nicht. Sondern es steht <= 4 da.

Ich suche schon seit Tagen den Fehler, finde ihn aber nicht.

Dax 9. Jun 2005 21:30

Re: if then
 
Du musst deine Strings in den Edit erst mit Delphi-Referenz durchsuchenStrToInt umwandeln, bevor du sie wirklich vergleichen kannst ;)

s.h.a.r.k 9. Jun 2005 21:36

Re: if then
 
Nein... Der Code passt schon - du hast aber eine Null vergessen! Und zwar wenn du das so machst klappt es:
Delphi-Quellcode:
if (Edit1.Text > '0') and (Edit1.Text <= '4') then Edit2.Text := '<= 4';
if (Edit1.Text > '4') and (Edit1.Text <= '9') then Edit2.Text := '<= 9';
if (Edit1.Text > '09') and (Edit1.Text <= '13') then Edit2.Text := '<= 13';

coolchatter 9. Jun 2005 21:38

Re: if then
 
Danke

Wegen einer Null :-(

hab ich was dazugelernt, danke.

s.h.a.r.k 9. Jun 2005 21:40

Re: if then
 
mit meinem Code klappt das auch! habs grad mal getestet! bei 10,9 spuckt er "<= 13" aus

[EDIT] Hab ich auch nicht gewusst - einfach mal ausprobiert :mrgreen: Die dumm ham halt s glück *g*[/EDIT]

nailor 9. Jun 2005 21:42

Re: if then
 
wandel es wie Dax gesagt hat in numerische variablen um. also mit strtoint oder strtofloat.

Dax 9. Jun 2005 21:44

Re: if then
 
Ich hab den Code auch ausprobiert.

Ergebnisse:
Code:
45: <= 9
1: <= 13
14: <= 4
54: <= 9
Wenn das mal kein Nichtfunktionalitätsbeweis ist :roll:

[edit]*reinlins* Roter Kasten? putt putt putt, komm her Roter Kasten...

malo 9. Jun 2005 21:49

Re: if then
 
Zitat:

Zitat von Dax
Ich hab den Code auch ausprobiert.

Ergebnisse:
Code:
45: <= 9
1: <= 13
14: <= 4
54: <= 9
Wenn das mal kein Nichtfunktionalitätsbeweis ist :roll:

Der Grund ist einfach der, dass Bei Stringvergleichen immer Zeichen für Zeichen überprüft wird, ob der ASCII-Wert kleiner, gleich oder größer ist. Es ist eine ähnliche Frage, wie die Frage "Was ist mir: eins komma elf oder eins komma zwei" (in Worten ausgedrückt). 1,11 ist natürlich weniger als 1,2. Wer aber nicht nachdenkt, sagt, 1,2 ist weniger ;)

coolchatter 9. Jun 2005 21:56

Re: if then
 
Das ging jetzt, aber ich hab ein neues Problem :-) und zwar:

Delphi-Quellcode:
if (Edit7.Text > '0')      and (Edit7.Text <= '0900,42') then Label9.Caption := '<= 900,42';
if (Edit7.Text > '0900,42') and (Edit7.Text <= '2099,33') then Label9.Caption := '<= 2099,33';
if (Edit7.Text > '2099,33') and (Edit7.Text <= '4266,00') then Label9.Caption := '<= 4266,00';
if (Edit7.Text > '4266,00')                               then Label9.Caption := 'größer';
Ich kann z.B. keine 4 eingeben und bekomme <= 900,42 heraus.

Dax 9. Jun 2005 21:59

Re: if then
 
Meine Güte, hör mit den Stringvergleichen auf! :twisted:

Wandel dir das Gesocks mit StrToFloat um und Vergleiche das. Das funktioniert wenigstens.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 Uhr.
Seite 1 von 2  1 2      

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