Thoresus
Hallo,
Ich habe eine Frage zu
WinBinder (Damit kann man Windows-GUI Programme mit PHP schreiben). Ich habe ein Programm geschrieben und will eine Funktion in bestimmten Abständen immer wieder wiederholen. Ich habe das Problem jetzt so gelöst:
| php: |
1:
2:
3:
4:
5:
6:
7:
|
<?php define("WHILE_TIME", 1800);
$check = true;
while($check){
//Führe Aktionen aus.....
//...
sleep(WHILE_TIME);
} ?> |
|
Jetzt habe ich einfach das Problem, das das Programm "keine Rückmeldung" mehr gibt, d.h. ich kann keine andere Aktion mehr machen. Die Aktionen in der while()-Schleife werden aber korrekt ausgeführt. Was gibt es für andere lösungen? Auf ner Internetseite hätt ich jetzt nen Cron programmiert, aber so viel ich weiss geht das auf nem PC nich...
Vielen Dank für eure Hilfe,
Thoresus
Chris Hunter
Dazu ein Auszug aus dem WinBinder Manual
wb_create_timer
bool wb_create_timer (int window, int id, int interval)
Creates a timer in the specified window. The timer must be given an integer id that must be unique to all timers and controls. interval specifies the time-out value in milliseconds. Timer events are passed to and processed by the window callback function. A call to wb_destroy_timer() destroys the timer.
Example
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
<?php // A very simple digital clock
define("ID_APP_TIMER", 201);
$mainwin = wb_create_window(NULL, PopupWindow, date("h:i:s A"), 120, 0);
wb_set_handler($mainwin, "process_main");
wb_create_timer($mainwin, ID_APP_TIMER, 1000); // One second interval
wb_main_loop();
function process_main($window, $id)
{
switch($id) {
case ID_APP_TIMER:
// Show the current time in hours, minutes and seconds
wb_set_text($window, date("h:i:s A"));
break;
case IDCLOSE:
wb_destroy_window($window);
break;
}
} ?> |
|
See also
wb_destroy_timer
System functions
Callback functions and window handlers
Thoresus
Ich hab jetzt wb_create_timer versucht einzusetzen, aber das Programm stürtzt nun immer beim Aufruf von diesem Timer ab... Ich glaube, das liegt daran, dass er bevor der funktion wb_set_handler aufgerufen werden muss. Ich will den Timer aber erst ab einer bestimmten Aktion starten.
Chris Hunter
nö das liegt an was anderem . der handler muss bereits gesetzt sein wen du den timer startest. was sagts error log...
Thoresus
Nicht viel nützliches, nur das was auf ner zeile von winbinder nicht funktioniert... Ich habs jetzt auf einem anderen weg hinbekommen: Ich hab die funktion vor dem handler in ne eigene funktion gesteckt und siehe da, es funktioniert.. ka wieso
Chris Hunter
na das kann ja nicht sinn und zweck sein....
was war denn die fehlermeldung und welche zeile...
Thoresus
Haha, jetzt funktionierts... sobald ich die dateien nicht mehr .phpw sondern .php speichere... wahrscheinlich hatte ich vorher einen tippfehler, denn das kann ja nich sein. Egal, solangs funktioniert.
bluescreen
kaum is ma ma ned da... schon gehts hier mit dem posten los... xD
will auch mitmachn *beleidigtergesichtsausdruck*
Thoresus
was bist denn du? :-)
Chris Hunter
S-MOD hr hr hr
chrigu99
und profispammer?
gell, wir haben zusammen geübt?
Chris Hunter
joa klar - immer noch in alter form sehe ich :-)
chrigu99
Wie denn sonst
Chris Hunter
ich hoffe ja immer noch das du irgendwann in die tage kommst, und nicht mehr so schnell tippen kannst wie ich... aber n smilie reicht ja auch... für n fingerzucken langts immer, gell - hahahaha
chrigu99
ich kann jedes jahr schneller tippen - immer wie mehr übung
chrigu99
ich hab eher das gefühl du wirst langsamer, immer wie mehr?
Chris Hunter
neeee ich grübel nur über diese "immer wie mehr" nach ... lernt man das in der schweitz so?
chrigu99
was, du willst lernen zu schwitzen?