Autor Beitrag
Koyotee
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 13.06.22 19:51 
Guten Tag,
"Ich hab da ein Problem..." (frei nach Bodo Bach, Komiker) hört ihr bestimmt mehrfach in der Woche und "ich bin kein Profi" noch viel öfters.
So auch bei mir. Ich habe zwar schon das Eine oder Andere in Delphi programmiert aber immer nur aus Beispielen die ich geändert oder erweitert habe (mit anderen Beispielen) aber nun komme ich nicht weiter. Mit booleschen.... und Integer... hab ich wahrhaftig noch nichts gemacht (glaub ich zumindest).

Das Problem:
(Die Suchfunktion habe ich schon beansprucht aber nur das gefunden was, nach meinem Verständnis, das Problem nicht löst: Probleme bei > (größer als) < (kleiner als))

In meinem Formular wird ein Wert (ergebnis.text) angegeben den ich mit >= und <= reduzieren möchte, als Beispiel:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Button1Click(Sender: TObject);
if ergebnis.text:>='31' and ergebnis.text: <='35' then Edit1.text = '30';

// oder
if ergebnis.text: >= '36' and ergebnis.text: <= '40' then edit1.text = '40';
// usw.

ob mit : oder ohne, ob mit '' oder ohne bekomme ich Fehlermeldungen (z.B. ...Operator...nicht anwendbar...) und das liegt wohl an dem "and"

Wie muss der code lauten bzw. wie läst sich das Problem lösen.

Schon mal herzlichen Dank
Harald

Moderiert von user profile iconTh69: URL-Titel hinzugefügt.
Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt
Moderiert von user profile iconTh69: Topic aus WinForms verschoben am Mo 13.06.2022 um 20:34
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 917
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Mo 13.06.22 20:07 
Nabend :-)

Hast du schon mal versucht, Klammern zu setzen?

Also so in etwa: if (ergebnis.text >= '36'and (...
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 753
Erhaltene Danke: 121



BeitragVerfasst: Mo 13.06.22 20:30 
Mal eine prinzipielle Bemerkung zum Konzept: Du vergleichst hier Zahlen, die aber als String dargestellt werden; es ist also ein alphabetischer Vergleich. Es gilt also z.B. '10'<'9'.
Eventuell solltest Du doch besser die Zahlen selbst vergleichen.

ub60
Koyotee Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 13.06.22 21:27 
@jfheins
ja:
ausblenden Delphi-Quelltext
1:
if (ergebnis.text >='31'and (ergebnis.text<='35'then Edit1.text:= '30' ;					

funktioniert, werde ich weiter versuchen und melde mich wieder wenn es noch Probleme geben sollte.
Danke schon mal.

@ub60
OK aber wie sieht der Code dann aus?

VG
Harald

P.S. sollten noch weitere Vorschläge bestehen dann bitte melden.

Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4621
Erhaltene Danke: 1013

Win10
C#, C++ (VS 2015/17/19)
BeitragVerfasst: Mo 13.06.22 22:05 
Hallo und :welcome:

Koyotee hat folgendes geschrieben:
OK aber wie sieht der Code dann aus?

Das steht doch in dem von dir verlinkten Thema, also mittels StrToInt(...).

Und wenn du nur Zahlenwerte zulassen möchtest, dann kannst du stattdessen auch TNumberBox benutzen.