@object GenTriggerClass Start = {
GI_visMoniker = 'S', "Start";
GTI_actionMsg = MSG_STARTE_UHR;
GTI_destination = process;
HINT_SEEK_MENU_BAR;
}
@object GenTriggerClass Bild1 = {
GI_visMoniker = '1', "Bild1";
GTI_actionMsg = MSG_BITMAP1_DRAW_TO_DYNAMIC_BITMAP;
GTI_destination = process;
HINT_SEEK_MENU_BAR;
}
@object GenTriggerClass Bild2 = {
GI_visMoniker = '2', "Bild2";
GTI_actionMsg = MSG_BITMAP2_DRAW_TO_DYNAMIC_BITMAP;
GTI_destination = process;
HINT_SEEK_MENU_BAR;
}
@method BitmapProcessClass, MSG_STARTE_UHR
{
@call self::MSG_BITMAP1_DRAW_TO_DYNAMIC_BITMAP();
TimerSleep(100);
@call self::MSG_BITMAP2_DRAW_TO_DYNAMIC_BITMAP();
}
@method BitmapProcessClass, MSG_BITMAP1_DRAW_TO_DYNAMIC_BITMAP
{
VMFileHandle vmfBitmap;
VMBlockHandle vmbBitmap;
GStateHandle gsBitmap;
Bitmap *ptrDoggyBmp;
@call Doggy::MSG_DOGGY_GET_HUGE_BITMAP_INFO(&vmfBitmap, &vmbBitmap, &gsBitmap);
MemLock(OptrToHandle(@doggyBmp));
ptrDoggyBmp = LMemDeref(@doggyBmp);
GrClearBitmap(gsBitmap); //Ki
GrDrawBitmap(gsBitmap, 5, 5, ptrDoggyBmp, 0);
MemUnlock(OptrToHandle(@doggyBmp));
GrDrawVLine(gsBitmap, 29, 29, (DOGGY_HEIGHT-10));
@send Doggy::MSG_VIS_INVALIDATE();
}
@method BitmapProcessClass, MSG_BITMAP2_DRAW_TO_DYNAMIC_BITMAP
{
...
GrDrawHLine(gsBitmap, 29, 29, (DOGGY_WIDTH-10));
...
}
Klick auf Trigger Bild1->Bild1 erscheint, Klick auf Trigger Bild2-> Bild2 erscheint. Beliebig wiederholbar.
Klick auf Trigger Start-> Bild 2 erscheint nach einer kleinen Pause.
Tatsächlich sichtbar wird das Bild durch MSG_VIS_DRAW. Diese Methode sollte ja eigentlich durch @send Doggy::MSG_VIS_INVALIDATE() aufgerufen werden. Wenn ich mit Swat einen Stop in MSG_VIS_DRAW setze und dann im Einzelschrittmodus weitergehe, wird mir das bestätigt. Bei Klick auf Trigger Start erfolgt der Stop aber erst mit der 2. Methode.
Wilfried