Autor Beitrag
obbba
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win XP
Delphi 5, C mit Dev-C++, PureBasic
BeitragVerfasst: Mo 18.06.07 17:12 
Folgendes:
Ich hab eine Funktion/Procedur über einen Button gestartet, die z.B. Pi, oder ne Wurzel per Annäherungsverfahren rausfinden soll. Über einen 2. Knopf, sollte man die Funktion stoppen.
Geht das?
Eigentlich wollte ich das für ein Spiel machen, in dem der Computer auch beim Zug des Gegners weiterrechnet, alse quasi immer in dieser Funktion in einer Schleife rechnet und immer mal wieder, wenn er dran ist den Zug macht, den er bis dahin als am besten erachtet.

Ein paar Schlagwörter fallen mir dazu ein: Threads, Front-end/Back-end, "ereignisgesteuerte Programmierung".
Ich weiß nur so ungefähr was sich dahinter verbirgt.

Hat das was mit meinem Problem zu tun? Es geht mir vor allem um das Spiel (4 gewinnt -> der soll mir dann so 'nen Baum machen).

Falls ich das mit dem Front-end/Back-end mache (soweit ich weiß, heißt das, dass da 2 Programme zusammen arbeiten): Wie starte ich ein zweites Programm vom ersten aus?
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Mo 18.06.07 17:36 
Wenns möglichst einfach sein soll, machs so:
Vor deiner Rechenroutine setzt du ein Flag auf true. Innerhalb der Rechenroutine musst du regelmäßig Application.ProcessMessages aufrufen. Beim Klick auf den Beenden-Button wird dein Flag auf false gesetzt. Jetzt musst du nur noch in der Berechnung regelmäßig prüfen, ob das Flag false ist, und wenn ja, aus der Schleife rausgehen.
user profile iconobbba hat folgendes geschrieben:
Falls ich das mit dem Front-end/Back-end mache (soweit ich weiß, heißt das, dass da 2 Programme zusammen arbeiten): Wie starte ich ein zweites Programm vom ersten aus?

Bitte nur eine Frage pro Thread. Dazu gibts übrigens genügend Threads die das erklären.. einfach mal suchen.
obbba Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win XP
Delphi 5, C mit Dev-C++, PureBasic
BeitragVerfasst: Mo 18.06.07 17:44 
Danke! Genau was ich gebraucht hab!! :)
Clemens L.
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 158

Win Xp SP3
D6 Enterprise, Turbo Delphi Explorer
BeitragVerfasst: Mo 18.06.07 18:23 
Oder du lässt die Rechnung in einem seperaten Thread laufen, da brauchst du kein Application.ProcessMessages.

Beim Klick auf den Stopschalter wird der Thread dann abgebrochen. :wink:

Ist ein wenig komplizierter, aber auch machbar. Letzens hatte ich gemerkt das wenn in einer Schleife Application.ProcessMessages aufgerufen wird, die Schleife anhält wenn man beispielsweise das Fenster verschiebt. (Danach geht die dann aber normal weiter)
obbba Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win XP
Delphi 5, C mit Dev-C++, PureBasic
BeitragVerfasst: Di 19.06.07 19:41 
Wie würde ich denn von einem Programm aus ein anderes starten? geht das?
alá runProgram('P2.exe');
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Di 19.06.07 19:42 
Hat das noch etwas mit dem Thema zu tun? Bitte nur eine Frage pro Thread! ;-)
Ansonsten such mal nach Suche in der Entwickler-Ecke SHELLEXECUTE. ;)
grüße