Seite 1 von 1
Simulation eines GadgetEvents unter Windows
Verfasst: 17.07.2012 13:16
von Bisonte
Hallo erstmal ...
Folgendes Beispiel :
Nehmen wir an, ich habe ein ImageGadget ausgeschaltet (DisableGadget), nun greift ja nicht mehr
Code: Alles auswählen
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
If EventGadget() = ImageGadget
; Do something
EndIf
EndIf
wie kann ich nun der Eventloop mitteilen (per Post oder SendMessage denk ich...)
das ein #PB_EventGadget anliegt und EventGadget() die entsprechende Gadget PB Nummer rausrückt ?
Für EventMenu() gibts bei RSBasic ein Beispiel, aber für Gadgets hab ich das noch nicht so wirklich
hinbekommen/rausgefunden.
Re: Simulation eines GadgetEvents unter Windows
Verfasst: 17.07.2012 13:23
von Kiffi
mh..., anstelle von '; Do something' wird bei Dir doch eine
Procedure aufgerufen, oder? Wie wäre es, wenn Du die
Proc direkt aufrufst (anstatt des aufwändigen Simulierens
eines Events)?
Grüße ... Kiffi
Re: Simulation eines GadgetEvents unter Windows
Verfasst: 17.07.2012 13:32
von Bisonte
Das war jetzt nur ein Beispiel.
Es geht mir darum, eben diese Events zu simulieren.
Zum Beispiel ein selbstgebautes TextGadget (ein ImageGadget eben), das auch Mausklicks an die Eventloop leitet...
Und dann zum Einbau in eine Userlib oder Include, für allgemeines benutzen und nicht auf jede Anwendung zugeschnitten...
Irgendwie muss PB das ja auch hinkriegen ^^
Re: Simulation eines GadgetEvents unter Windows
Verfasst: 17.07.2012 13:33
von RSBasic
Ich wär auch dafür, dass du einfach deine Aufgaben, die beispielsweise bei Click durchgeführt werden, in einer Prozedur auslagerst und diese Prozedur manuell aufrufst.
Aber wenn du dennoch beispielsweise einen Click-Event auf ImageGadget, welches deaktiviert wurde, simulieren möchtest:
Code: Alles auswählen
EnableExplicit
Define EventID
CreateImage(1, 200, 200)
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ImageGadget(1, 10, 10, 0, 0, ImageID(1), 0)
DisableGadget(1, 1)
ButtonGadget(2, 10, 220, 300, 20, "Click auf DisabledImage simulieren", 0)
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
Select EventGadget()
Case 1
Debug "Event"
Case 2
SendMessage_(GadgetID(1),#WM_LBUTTONDOWN,0,0)
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
Re: Simulation eines GadgetEvents unter Windows
Verfasst: 17.07.2012 13:36
von Bisonte
Danke.
So einfach.... Da war meine Brille wohl wieder beschlagen

Re: Simulation eines GadgetEvents unter Windows
Verfasst: 17.07.2012 14:34
von Frabbing
Direkt simulieren ginge so (hier Linksklick):
Code: Alles auswählen
Import ""
PB_Gadget_SendGadgetCommand(hWnd, EventType)
EndImport
PB_Gadget_SendGadgetCommand(GadgetID(#gadget), #PB_EventType_LeftClick)