Can you explain a little more, it is really worrying for the concept if it does not work for all.
Edit:
OK ThanksLittle_man wrote:Problem solved
Removed and reinstalled purebasic 5.60.
I had prepared this for testing, a simple example to move a button and display a grid, based on same concept (canvas + Gadget in overlay).
Code: Select all
Enumeration FormWindow
#WinMain
EndEnumeration
Enumeration FormGadget
#GridCanvas
#Text
#Canvas
#Button
EndEnumeration
Declare OpenMainWindow(x = 0, y = 0, width = 340, height = 240)
Declare ShowGrid()
Declare MouseEvent()
Procedure ShowGrid()
Protected X.i, Y.i
Static GridDisplayed.b
Select EventType()
Case #PB_EventType_LeftButtonDown
If StartDrawing(CanvasOutput(#GridCanvas))
If GridDisplayed = #False
Box(0, 0, OutputWidth(), OutputHeight(), $EBE6E1)
For X = 0 To OutputWidth()
For Y = 0 To OutputHeight()
Line(0, Y, OutputWidth(), 1, $CCCCCC)
Y+19
Next
Line(X, 0, 1, OutputHeight(), $CCCCCC)
X+19
Next
GridDisplayed = #True
Else
Box(0, 0, OutputWidth(), OutputHeight(), $F0F0F0)
GridDisplayed = #False
EndIf
StopDrawing()
EndIf
EndSelect
EndProcedure
Procedure MouseEvent()
Static ButtonSelected.b, OffsetX, OffsetY
Select EventType()
Case #PB_EventType_LeftButtonDown
ButtonSelected = #True
OffsetX = GetGadgetAttribute(#Canvas, #PB_Canvas_MouseX)
OffsetY = GetGadgetAttribute(#Canvas, #PB_Canvas_MouseY)
Case #PB_EventType_LeftButtonUp
ButtonSelected = #False
Case #PB_EventType_MouseMove
If ButtonSelected
ResizeGadget(#Canvas, WindowMouseX(#WinMain)-OffsetX, WindowMouseY(#WinMain)-OffsetY ,#PB_Ignore, #PB_Ignore)
ResizeGadget(#Button, WindowMouseX(#WinMain)-OffsetX, WindowMouseY(#WinMain)-OffsetY ,#PB_Ignore, #PB_Ignore)
EndIf
EndSelect
EndProcedure
Procedure OpenMainWindow(x = 0, y = 0, width = 340, height = 240)
OpenWindow(#WinMain, x, y, width, height, "Click and Move Button + Grid", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CanvasGadget(#GridCanvas, x, y, width, height, #PB_Canvas_Container)
If StartDrawing(CanvasOutput(#GridCanvas))
Box(0, 0, OutputWidth(), OutputHeight(), $F0F0F0)
StopDrawing()
EndIf
TextGadget(#Text, 100, 220, 140, 20, "Click to show/hide the grid", #PB_Text_Center)
CanvasGadget(#Canvas, 100, 80, 140, 60)
SetGadgetAttribute(#Canvas, #PB_Canvas_Cursor, #PB_Cursor_Arrows)
ButtonGadget(#Button, 100, 80, 140, 60, "Click and Move")
CompilerIf #PB_Compiler_OS = #PB_OS_MacOS : DisableGadget(#Button, #True) : EndIf
EndProcedure
OpenMainWindow()
BindGadgetEvent(#GridCanvas, @ShowGrid(), #PB_EventType_LeftButtonDown)
BindGadgetEvent(#Canvas, @MouseEvent(), #PB_EventType_LeftButtonDown)
BindGadgetEvent(#Canvas, @MouseEvent(), #PB_EventType_LeftButtonUp)
BindGadgetEvent(#Canvas, @MouseEvent(), #PB_EventType_MouseMove)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow