(Borland C++...) For-schleife nach Erfolg verlassen
-
Hi
nehmen wir an wir haben diese forschleife
for(int i=1; i<=10; i++) { if(Test[i] == 7 ) { Application->MessageBox("Hat geklappt", "Info", MB_OK); } }
Immer wenn der Erfolg bei mir eintritt, also Test[7]==7 kommt die Messagebox aber leider nicht nur einmal, sondern andauernd. Wie kann ich das verhinden? break funktioniert nicht
-
Andauernd? Die MessageBox da sollte immer dann kommen, wenn Test[i]==7 ist. Nicht mehr oder weniger.
Ansonsten kannst du mit break; rausspringen. Oder besser, packs in eine Funktion und mach return.
-
entweder
for(int i=1; i<=10; i++) { if(Test[i] == 7 ) { Application->MessageBox("Hat geklappt", "Info", MB_OK); break; } }
oder
int i=0; do { i++; if(Test[i] == 7 ) { Application->MessageBox("Hat geklappt", "Info", MB_OK); } } while(i<10&&Test[i]!=7);
-
Ok habs in eine Funktion gepackt.
Andere Frage:Wie kann ich in die Messagebox ein Integerwert ausgeben?
Application->MessageBox("Haus Nr"+IntToStr(Nummer)+" ist bewohnt", "Info", MB_OK);
Geht nicht?
-
Montier Dir Deinen Mesage- String vorher in ner Var zusammen!
PS: sieht nach BCB aus ???
[ Dann: Application->MessageBox(AnsiString("Haus Nr")+IntToStr(Nummer)+" ist bewohnt", "Info", MB_OK);//probieren]
-
Original erstellt von DerAltenburger:
**Montier Dir Deinen Mesage- String vorher in ner Var zusammen!PS: sieht nach BCB aus ???
[ Dann: Application->MessageBox(AnsiString("Haus Nr")+IntToStr(Nummer)+" ist bewohnt", "Info", MB_OK);//probieren]**Da kommt das gleiche heraus. er hatte schon recht mit Application->MessageBox("Haus Nr. "+IntToStr(Nummer)+" ist bewohnt","Info", MB_OK);
-
Original erstellt von Spieleprogrammierer:
**
Da kommt das gleiche heraus. er hatte schon recht mit Application->MessageBox("Haus Nr. "+IntToStr(Nummer)+" ist bewohnt","Info", MB_OK);**Ok!
Dann:Application->MessageBox(("Haus Nr")+IntToStr(Nummer)+" ist bewohnt").c_str(), "Info", MB_OK);
So geht's beim BCB 4
-
Original erstellt von DerAltenburger:
**Ok!
Dann:Application->MessageBox(("Haus Nr")+IntToStr(Nummer)+" ist bewohnt").c_str(), "Info", MB_OK);
So geht's beim BCB 4**
lol, da kommt ebenfallsdas gleiche heraus
-
"Haus Nr." dürfte kein operator + auf Ansistring haben. Daher wäre
AnsiString("Haus Nummer") + IntToStr(x) angebracht.
-
Original erstellt von Knuddlbaer:
"Haus Nr." dürfte kein operator + auf Ansistring haben. Daher wäre
AnsiString("Haus Nummer") + IntToStr(x) angebracht.Wieso nicht?
-
1. kein standard
2. was liefert IntToString zurueck? wenn es char* ist, wie soll dann der compiler wissen, dass du gern _beide_ operanden gecastet haben willst? Wenn es AnsiString ist, ist dessen + einfach nur schlecht implementiert.
-
VCL Pur.
@<Gast> hör auf Altenburgers Rat und bastel dir den String in eine Extravariabel zusammen. Anschliessend schaust du mal in die VCL-FAQ zum Thema AnsiString oder schaust dir einfach die Methoden von AnsiString etwas exakter an.
@Spieleprogrammierer Klar kommt das Selbe raus, egal ob da nun eine Variable dazwischen geknallt wird oder nicht. Vielleicht solltest du dir mal den Funktionsprototypen von TApplication::MessageBox an, dann sollte dir ein Lichtchen aufgehen.
Bei Altenburgers zweiten Beispiel hats eine KLammer zuviel drin. Da kommt nicht das Selbe raus sondern eine ganz andere Compiler-Fehlermeldung, Spieleprogrammierer. Hätte sich Altenburger nicht verschrieben, wärs korrekt, wenn auch Stilitisch unter jeder Sau.
-junix
-
VCL Pur.
Na dann. Auf ins Land der Borländer