Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Kleiner als oder Größer als

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.02.2004, 10:43 Uhr
Puschel
Dr. med. Dipl. Prof. Virus


Moin ,moin

also folgednes Problem.
Ich möchte in mein programm etwas einbauen sodas ich in das eingabefeld keine Werte eineben kann die kleiner eins sind oder größer 10 und bei nem anderen Feld nicht kleiner 5 und nicht größer als 35 sind. Das möcht ich o haben das es kontrolliert wird bei der eingabe.

C++:
z.B.: sieht das so aus
Edit1Change(...)


Dort steht bei mir schon was drinne


C++:
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if(IsNumber(Edit1->Text.c_str()));
   else
     {
     Edit1->Text="";
     }
}


hier möchte ich nun das mit der anderen Abfrage einbauen das der User garnicht erst andere Zahlen eingeben kann sondern nur Werte zwischen 1 und 10
oder zwischen 5 und 35(bei einen andern Feld)

Danke
--
Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.02.2004, 10:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ich vermute mal das Edit1Change immer dann aufgerufen wird wenn du was ins Feld eingibst und nicht nur dann wenn das den Fokus verliert...
Da du nur Zahlen zwischen 5 und 35 erlauben willst kannst du es relativ leicht abchecken ob es eine valide eingabe ist...

wenn die eingabe nicht valide ist einfach ne MessageBox ausschmeissen und das Feld löschen

wenn der String in dem feld nur 1 zeichen lang ist muss es eine 1,2,3,5,6,7,8 oder 9 sein....
wenn der String 2 zeichen lang ist muss gelten das er halt grösser als 9 und kleiner 36 ist...
wenn der String länger als 2 Zeichen ist ist was falsch gelaufen und den User wieder auf einen Fehler hinweisen und das Feld zurücksetzten...

Falls das Feld den Fokus verliert muss du noch abchecken ob falls nur ein zeichen drin steht diese grösser 4 ist
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 09.02.2004 um 10:53 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.02.2004, 11:23 Uhr
Puschel
Dr. med. Dipl. Prof. Virus


HHab das jetzt mal so gemacht

C++:
void __fastcall TForm1::Wasser_Pfl1Change(TObject *Sender)
{
if(Wasser_Pfl1->Text<1)
  {
  ShowMessage("Falscher Eingabewert");
  Wasser_Pfl1->Text="";
  }
  else
    {
    if(Wasser_Pfl1->Text>10)
     {
     ShowMessage("Falscher Eingabewert");
     Wasser_Pfl1->Text="";
     }
     else
       {
       if(IsNumber(Wasser_Pfl1->Text.c_str()));
         else
           {
           Wasser_Pfl1->Text="";
           }
       }
    }
}


nun gibt er mir jedesmal wenn ich das Programm starte kommt dann die meldung falscher Eingabewert. wenn ich ne 1 oder ne 10 eingebe macht er nichts8keine Meldung. Aber wenn ich ne 2,3,4 usw eingebe bekomme ich wieder die meldung
--
Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.02.2004, 12:06 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja die einfachere alternative nach meiner meinung ist das nicht bei der eingabe zu checken sondern erst bei ausführung...
also der user wird ja bevor dein proggie(algorithmus) startet irgendwas machen (startbutton klicken oder sowas) dann liest du dir ja die werte aus dem Textfeld ein...
wenn du es an der stelle checkst musst du ja nur einmal gucken ob das was er einliest eine zahl ist und ob diese zahl grösser als 4 oder kleiner als 36 ist und wenn nicht ne entsprechende Fehlermeldung ausschmeissen... Ist wesentlich einfacher so und erfüllt den gleichen zweck...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 09.02.2004 um 12:06 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.02.2004, 12:47 Uhr
Puschel
Dr. med. Dipl. Prof. Virus


Ja und was mach ich damit er die 5 oder so annimmt?
Das Progi nimmt ja nur ne 1 oder 10 an mehr nicht!!
und hab das mit der Abfrage im Prinzip jetzt nur vor dem Algo gesetzt wenn ich auf Start drücke.
--
Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.02.2004, 12:52 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja einfach checken ob die zahl zwischen 5 und 35 ist....


C++:
//Buttonmehtode

if(atoi(Edit1->Text.c_str())>4 && atoi(Edit1->Text.c_str())<36){
//algo aufrufen

}else{
//MessageBox ausschmeissen oder was auch immer für ne Fehlerbehandlung
}



--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.02.2004, 09:15 Uhr
Puschel
Dr. med. Dipl. Prof. Virus


Also ich hab das jetzt mal so gemacht wie du @Windalf das geschrieben hast.

Da ich aber mehrere Editfelder hab 11 an der Zahl.
hab ich das dann so geschrieben:

C++:
if(atoi(Wasser_Pfl1->Text.c_str())>1 && atoi(Wasser_Pfl1->Text.c_str())<11)
  {
  if(atoi(Duenger_Pfl1->Text.c_str())>1 && atoi(Duenger_Pfl1->Text.c_str())<11)
   {
   if(atoi(Licht_Pfl1->Text.c_str())>1 && atoi(Licht_Pfl1->Text.c_str())<11)
    {
    if(atoi(Temp_Pfl1->Text.c_str())>4 && atoi(Temp_Pfl1->Text.c_str())<36)
     {
     if(atoi(Wasser_Pfl2->Text.c_str())>1 && atoi(Wasser_Pfl2->Text.c_str())<11)
      {
      if(atoi(Duenger_Pfl2->Text.c_str())>1 && atoi(Duenger_Pfl2->Text.c_str())<11)
       {
       if(atoi(Licht_Pfl2->Text.c_str())>1 && atoi(Licht_Pfl2->Text.c_str())<11)
        {
        if(atoi(Temp_Pfl2->Text.c_str())>4 && atoi(Temp_Pfl2->Text.c_str())<36)
         {
         if(atoi(Tage->Text.c_str())>0 && atoi(Tage->Text.c_str())<201)
          {
Aufruf der Funktion
          }
         }
        }
    }
   }
  }
   }
   }
   }
   }
   else
   {
   ShowMessage("blabla");
   }



Dabei ist das ganz schön blöd, weil ich dann wenn ich das geändert habe aber irgendwo noch ein Fehler drin is er die meldung nicht nochmal anzeigt.
Aber ein gutes ist es doch er startet das Programm dann erst wenn die Werte alle richtig sind.
--
Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: