Forum
Öffentliche Foren |
FORUM: Spiele & Computer THEMA: C++ User Click abwarten | |
AUTOR | BEITRAG |
Sexsklave
RANG Skill Captain |
#1 - 26.04 09:11 Hi,ich versuche mich gerade daran ein C-Programm in klicki bunti umzuschreiben, hab sowas aber noch nie gemacht und hänge jetzt an folgendem Problem: Button1 startet neuesSpiel() neuesSpiel() muss irgendwann auf eine Eingabe und ButtonClick des Benutzers warten, bevor es weitergeht. Wie macht man das? Habe es bisher nur mit ner while Schleife versucht, die läuft, so lange der Benutzer noch nichts eingegeben hat, aber dann hab ich das Problem, dass ich nichts mehr in meinem Fenster anklicken kann, da das ja durch die while Schleife geblockt ist. Das ganze ist eine Win Forms Application oder so. Ich benutze dafür den Borland C++ Builder. |
vaest´ark // patrick *circle of confusion*
RANG Master of Clanintern |
#2 - 26.04 09:48 normalerweise hängt man sich mit einem event-handler an die message-queue an. dieser event-handler wird dann getriggert, sobald windows (resp. jedes andere betriebssystem) einen mausklick in dieser applikation feststellt und diesen in die mq legt. |
Sexsklave
RANG Skill Captain |
#3 - 26.04 09:56 danke, dann werd ich mir das mal anschauen |
Sexsklave
RANG Skill Captain |
#4 - 27.04 20:07 Ok irgendwie raff ichs nicht so ganz^^Also Event-Handler sind doch die button_Click() Sachen, die mir Visual Studio automatisch erstellt oder? Die hab ich auch schön alle mit Code gefüllt. Wenn ich jetzt in meinem Fall den buttonNewGame klicke, wird auch das ausgeführt was ich will. Nach ein paar Berechnungen muss ich aber warten, bis der Benutzer ein paar andere Buttons klickt und schlißlich den buttonOK. Dann kann meine Berechnung erst weiter gehen. Wie löst man das am besten. Ich hab im Moment ne maga ugly Lösung die halbwegs funkioniert, aber Schrott ist: code: do { Application::DoEvents(); } while(abbruch!=1); abbruch wird mit buttonOK auf 1 gesetzt. Dass das nicht gut ist weiß ich, aber wie macht man es richtig? ich benutze C++/CLI mit .NET |
SirLant
RANG Sucker |
#5 - 27.05 11:18 Hast du da überhaupt noch ne Endlosschleife? Gibts da nicht eine vorgefertigte run() Methode die du in der main() aufrufst und die sich dann um alles kümmert und einfach deine Ereignis-Handler aufruft?Wenn nicht ist das eigentlich schon eine legitime Methode, das ist einfach Polling im Gegensatz zu einer Benachrichtigung (wie deine Event-Handler, oder z.B. Interrupts - eigentlich auch nichts anderes als Event-Handler). |