nach stundenlagem Suchen habe ich immer noch nicht die Lösung gefunden, die auch funktioniert.
Es gibt einige Beispiele zu dem nachfolgend beschrieben Problem, funktionieren aber alle nicht.
Problem:
Im Canvas sind Symbole vertikal und Horizontal angeordnet, alle haben die Größe x28 y28.
- Über einen #PB_EventType_LeftButtonUp wird ein Symbol gezeichnet!
- Über einen #PB_EventType_RightButtonUp wird ein Symbol gelöscht!
- Über einen #PB_EventType_LeftDoubleClick auf ein Symbol möchte ich den Konfigurationsdialog zu diesem Symbol aufrufen!
Also der Ablauf beim Doppelklick ist dann fälschlicherweise:
- Die Funktion zum #PB_EventType_LeftButtonUp wird aufgerufen, ein Symbol wird gezeichnet! Das darf aber nicht passieren!
- Die Funktion für #PB_EventType_LeftDoubleClick wird aufegrufen, das soll passieren!
Auch das funktioniert nicht. Im Canvas-Gadget ist #PB_Canvas_Keyboard gesetzt.
Mittlerweile weiß ich schon nicht mehr was ich noch probieren könnte.
Vllt. hat ja jemand die Lösung, oder zündende Idee die mir hilft. Dafür vielen Dank im voraus,
Rainer
EDIT!
Im Source ist der #PB_EventType_LeftDoubleClick mittlerweile durch den #PB_EventType_MiddleButtonUp ersetzt.
Hier der Ausschnitt aus der Eventloop:
Code: Alles auswählen
Select Event
Case #PB_Event_CloseWindow
MobaExit = #True
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_SizeWindow
ResizeGadgetsWindow_Main()
Case #PB_Event_Gadget
Select EventGadget()
Case Canvas_Moba
Define ActSymbol.i = #T_S_1
If EventType() = #PB_EventType_MouseMove ;And GetGadgetAttribute(Canvas_Moba, #PB_Canvas_Buttons)
ShowCanvasMousePosition()
ElseIf EventType() = #PB_EventType_MouseWheel And GetGadgetAttribute(Canvas_Moba, #PB_Canvas_WheelDelta ) And EditLayout = #True
ShowCanvasMousePosition()
RotateSymbol(ActualSymbolBegin, ActualSymbolEnd)
ElseIf EventType() = #PB_EventType_MiddleButtonUp And (GetGadgetAttribute(Canvas_Moba, #PB_Canvas_Buttons) | #PB_Canvas_MiddleButton) And EditLayout = #True
ShowCanvasMousePosition()
;TODO GetSymbolType()
;TODO SelectPanelPage()
MessageRequester("Detaileingabe für Symbol!", "Jetzt auf dem geöffneten Panel-Tab die Daten zum gewählten Symbol eingeben!", #PB_MessageRequester_Info | #PB_MessageRequester_Ok)
ElseIf EventType() = #PB_EventType_LeftButtonUp And (GetGadgetAttribute(Canvas_Moba, #PB_Canvas_Buttons) | #PB_Canvas_LeftButton) And EditLayout = #True
ShowCanvasMousePosition()
DrawTrackSymbol()
ElseIf EventType() = #PB_EventType_RightButtonUp And (GetGadgetAttribute(Canvas_Moba, #PB_Canvas_Buttons) | #PB_Canvas_RightButton) And EditLayout = #True
ShowCanvasMousePosition()
DeleteTrackSymbol()
ElseIf EventType() = #PB_EventType_Input And (GetGadgetAttribute(Canvas_Moba, #PB_Canvas_Key) And #PB_Canvas_Control) And EditLayout = #True
MessageRequester("Detaileingabe für Symbol!", "Jetzt auf dem geöffneten Panel-Tab die Daten zum gewählten Symbol eingeben!", #PB_MessageRequester_Info | #PB_MessageRequester_Ok)
EndIf