Seite 1 von 1

ListIconGadget mit den Maus positionieren

Verfasst: 10.09.2018 20:07
von marcelx
Hallo,

wie kann ich ein ListIconGadget mit der Maus positionieren und die Größe verändern?

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration
    
Enumeration   
  #tbl_data
EndEnumeration

If OpenWindow(#Window_0, 0, 0, 640, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ListIconGadget(#tbl_data,  10,  25, 220, 100, "Column 1", 100)
    AddGadgetColumn(#tbl_data, 1, "Column 2", 100)
    
    For b = 0 To 20          ; fügt 4 Einträge auf jeder Zeile der ListIcons hinzu
      AddGadgetItem(#tbl_data, b, "Item 1"+Chr(10)+"Item 2")
    Next

  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Danke für ein Hinweis und Gruß
MarcelX

Re: ListIconGadget mit den Maus positionieren

Verfasst: 10.09.2018 20:19
von mk-soft
Schau mal hier...

Link viewtopic.php?f=8&t=29423

Re: ListIconGadget mit den Maus positionieren

Verfasst: 10.09.2018 22:04
von marcelx
Super (und schnell geantwortet)
Danke mk-soft und Gruß
MarcelX

Re: ListIconGadget mit den Maus positionieren

Verfasst: 11.09.2018 12:51
von marcelx
Hallo,

ich habe den Code aus Link übernommen.

Ich möchte die "Box" an Ecke und so weg haben und die Maus als Kreuz für die gesamte Fläche.
Leider habe ich nicht gefunden wo in den Code was zu ändern wäre.
Änderung:
Die Box konnte ich abschalten (s. BOX)
Wie sieht es aus mit die Maus als Kreuz für die gesamte Fläche für das Positionierung der Gadget?

Code: Alles auswählen

DeclareModule GadgetTransformation
   
   Enumeration 1
      #ButtonTest_Position
      #ButtonTest_Horizontally
      #ButtonTest_Vertically
   EndEnumeration
   
   #ButtonTest_Size = #ButtonTest_Horizontally|#ButtonTest_Vertically
   #ButtonTest_All  = #ButtonTest_Position|#ButtonTest_Horizontally|#ButtonTest_Vertically
   
   Declare DisableGadgetTransformation(Gadget.i)
   Declare EnableGadgetTransformation(Gadget.i, Flags.i=#ButtonTest_All, Grid.i=1)
   
EndDeclareModule

Module GadgetTransformation
   
   EnableExplicit
   
   #HandelSize = 5
   
   Structure GadgetTransformation
      Gadget.i
      Handle.i[10]
      Grid.i
   EndStructure
   
   Structure DataBuffer
      Handle.i[10]
   EndStructure
   
   Global NewList GadgetTransformation.GadgetTransformation()
   
   Procedure.i GridMatch(Value.i, Grid.i, Max.i=$7FFFFFFF)
      Value = Round(Value/Grid, #PB_Round_Nearest)*Grid
      If Value > Max
         ProcedureReturn Max
      Else
         ProcedureReturn Value
      EndIf
   EndProcedure
   
   Procedure GadgetTransformation_Callback()
      Static Selected.i, X.i, Y.i, OffsetX.i, OffsetY.i, GadgetX0.i, GadgetX1.i, GadgetY0.i, GadgetY1.i
      Protected *GadgetTransformation.GadgetTransformation = GetGadgetData(EventGadget())
      With *GadgetTransformation
         Select EventType()
            Case #PB_EventType_LeftButtonDown
               Selected = #True
               OffsetX = GetGadgetAttribute(EventGadget(), #PB_Canvas_MouseX)
               OffsetY = GetGadgetAttribute(EventGadget(), #PB_Canvas_MouseY)
               GadgetX0 = GadgetX(\Gadget)
               GadgetX1 = GadgetX0 + GadgetWidth(\Gadget)
               GadgetY0 = GadgetY(\Gadget)
               GadgetY1 = GadgetY0 + GadgetHeight(\Gadget)
            Case #PB_EventType_LeftButtonUp
               Selected = #False
            Case #PB_EventType_MouseMove
               If Selected
                  X = WindowMouseX(GetActiveWindow())-OffsetX
                  Y = WindowMouseY(GetActiveWindow())-OffsetY
                  Select EventGadget()
                     Case \Handle[1]
                        ResizeGadget(\Gadget, GridMatch(X+#HandelSize, \Grid, GadgetX1), #PB_Ignore, GadgetX1-GridMatch(X+#HandelSize, \Grid, GadgetX1), GridMatch(Y, \Grid)-GadgetY0)
                     Case \Handle[2]
                        ResizeGadget(\Gadget, #PB_Ignore, #PB_Ignore, #PB_Ignore, GridMatch(Y, \Grid)-GadgetY0)
                     Case \Handle[3]
                        ResizeGadget(\Gadget, #PB_Ignore, #PB_Ignore, GridMatch(X, \Grid)-GadgetX0, GridMatch(Y, \Grid)-GadgetY0)
                     Case \Handle[4]
                        ResizeGadget(\Gadget, GridMatch(X+#HandelSize, \Grid, GadgetX1), #PB_Ignore, GadgetX1-GridMatch(X+#HandelSize, \Grid, GadgetX1), #PB_Ignore)
                     Case \Handle[5]
                        ResizeGadget(\Gadget, GridMatch(X-#HandelSize, \Grid), GridMatch(Y+#HandelSize, \Grid), #PB_Ignore, #PB_Ignore)
                     Case \Handle[6]
                        ResizeGadget(\Gadget, #PB_Ignore, #PB_Ignore, GridMatch(X, \Grid)-GadgetX0, #PB_Ignore)
                     Case \Handle[7]
                        ResizeGadget(\Gadget, GridMatch(X+#HandelSize, \Grid, GadgetX1), GridMatch(Y+#HandelSize, \Grid, GadgetY1), GadgetX1-GridMatch(X+#HandelSize, \Grid, GadgetX1), GadgetY1-GridMatch(Y+#HandelSize, \Grid, GadgetY1))
                     Case \Handle[8]
                        ResizeGadget(\Gadget, #PB_Ignore, GridMatch(Y+#HandelSize, \Grid, GadgetY1), #PB_Ignore, GadgetY1-GridMatch(Y+#HandelSize, \Grid, GadgetY1))
                     Case \Handle[9]
                        ResizeGadget(\Gadget, #PB_Ignore, GridMatch(Y+#HandelSize, \Grid, GadgetY1), GridMatch(X, \Grid)-GadgetX0, GadgetY1-GridMatch(Y+#HandelSize, \Grid, GadgetY1))
                  EndSelect
                  If \Handle[1]
                     ResizeGadget(\Handle[1], GadgetX(\Gadget)-#HandelSize, GadgetY(\Gadget)+GadgetHeight(\Gadget), #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[2]
                     ResizeGadget(\Handle[2], GadgetX(\Gadget)+(GadgetWidth(\Gadget)-#HandelSize)/2, GadgetY(\Gadget)+GadgetHeight(\Gadget), #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[3]
                     ResizeGadget(\Handle[3], GadgetX(\Gadget)+GadgetWidth(\Gadget), GadgetY(\Gadget)+GadgetHeight(\Gadget), #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[4]
                     ResizeGadget(\Handle[4], GadgetX(\Gadget)-#HandelSize, GadgetY(\Gadget)+(GadgetHeight(\Gadget)-#HandelSize)/2, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[5]
                     ResizeGadget(\Handle[5], GadgetX(\Gadget)+#HandelSize, GadgetY(\Gadget)-#HandelSize, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[6]
                     ResizeGadget(\Handle[6], GadgetX(\Gadget)+GadgetWidth(\Gadget), GadgetY(\Gadget)+(GadgetHeight(\Gadget)-#HandelSize)/2, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[7]
                     ResizeGadget(\Handle[7], GadgetX(\Gadget)-#HandelSize, GadgetY(\Gadget)-#HandelSize, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[8]
                     ResizeGadget(\Handle[8], GadgetX(\Gadget)+(GadgetWidth(\Gadget)-#HandelSize)/2, GadgetY(\Gadget)-#HandelSize, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[9]
                     ResizeGadget(\Handle[9], GadgetX(\Gadget)+GadgetWidth(\Gadget), GadgetY(\Gadget)-#HandelSize, #PB_Ignore, #PB_Ignore)
                  EndIf
               EndIf
         EndSelect
      EndWith
   EndProcedure
   
   Procedure DisableGadgetTransformation(Gadget.i)
      Protected I.i, *GadgetTransformation.GadgetTransformation
      ForEach GadgetTransformation()
         If GadgetTransformation()\Gadget = Gadget
            For I = 1 To 9
               If GadgetTransformation()\Handle[I]
                  FreeGadget(GadgetTransformation()\Handle[I])
               EndIf
            Next
            DeleteElement(GadgetTransformation())
         EndIf
      Next
   EndProcedure
   
   Procedure EnableGadgetTransformation(Gadget.i, Flags.i=#ButtonTest_All, Grid.i=1)
      Protected Handle.i, I.i
      Protected *GadgetTransformation.GadgetTransformation
      Protected *Cursors.DataBuffer = ?Cursors
      Protected *Flags.DataBuffer = ?Flags
      ForEach GadgetTransformation()
         If GadgetTransformation()\Gadget = Gadget
            For I = 1 To 9
               If GadgetTransformation()\Handle[I]
                  FreeGadget(GadgetTransformation()\Handle[I])
               EndIf
            Next
            DeleteElement(GadgetTransformation())
         EndIf
      Next
      *GadgetTransformation = AddElement(GadgetTransformation())
      *GadgetTransformation\Gadget = Gadget
      *GadgetTransformation\Grid = Grid
      For I = 1 To 9
        If Flags & *Flags\Handle[I] = *Flags\Handle[I]
            Select I
               Case 1
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)-#HandelSize, GadgetY(Gadget)+GadgetHeight(Gadget), #HandelSize, #HandelSize)
               Case 2
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+(GadgetWidth(Gadget)-#HandelSize)/2, GadgetY(Gadget)+GadgetHeight(Gadget), #HandelSize, #HandelSize)
               Case 3
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+GadgetWidth(Gadget), GadgetY(Gadget)+GadgetHeight(Gadget), #HandelSize, #HandelSize)
               Case 4
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)-#HandelSize, GadgetY(Gadget)+(GadgetHeight(Gadget)-#HandelSize)/2, #HandelSize, #HandelSize)
               Case 5
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+#HandelSize, GadgetY(Gadget)-#HandelSize, 2*#HandelSize, #HandelSize)
               Case 6
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+GadgetWidth(Gadget), GadgetY(Gadget)+(GadgetHeight(Gadget)-#HandelSize)/2, #HandelSize, #HandelSize)
               Case 7
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)-#HandelSize, GadgetY(Gadget)-#HandelSize, #HandelSize, #HandelSize)
               Case 8
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+(GadgetWidth(Gadget)-#HandelSize)/2, GadgetY(Gadget)-#HandelSize, #HandelSize, #HandelSize)
               Case 9
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+GadgetWidth(Gadget), GadgetY(Gadget)-#HandelSize, #HandelSize, #HandelSize)
            EndSelect
            *GadgetTransformation\Handle[I] = Handle
            SetGadgetData(Handle, *GadgetTransformation)
            SetGadgetAttribute(Handle, #PB_Canvas_Cursor, *Cursors\Handle[I])
; OHNE BOX
;             If StartDrawing(CanvasOutput(Handle))
;                Box(0, 0, OutputWidth(), OutputHeight(), $000000)
;                Box(1, 1, OutputWidth()-2, OutputHeight()-2, $FFFFFF)
;                StopDrawing()
;             EndIf

            BindGadgetEvent(Handle, @GadgetTransformation_Callback())
         EndIf
      Next
      DataSection
         Cursors:
         Data.i 0, #PB_Cursor_LeftDownRightUp, #PB_Cursor_UpDown, #PB_Cursor_LeftUpRightDown, #PB_Cursor_LeftRight
         Data.i #PB_Cursor_Arrows, #PB_Cursor_LeftRight, #PB_Cursor_LeftUpRightDown, #PB_Cursor_UpDown, #PB_Cursor_LeftDownRightUp
         Flags:
         Data.i 0, #ButtonTest_Size, #ButtonTest_Vertically, #ButtonTest_Size, #ButtonTest_Horizontally
         Data.i #ButtonTest_Position, #ButtonTest_Horizontally, #ButtonTest_Size, #ButtonTest_Vertically, #ButtonTest_Size
      EndDataSection
   EndProcedure
   
EndModule

UseModule GadgetTransformation

Enumeration
   #Window
   #ButtonTest
   #ListGadget
EndEnumeration

OpenWindow(#Window, 0, 0, 600, 400, "WindowTitle", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)

ListIconGadget(#ListGadget, 50, 100, 200, 100, "Column 1", 100, #PB_ListIcon_FullRowSelect)

AddGadgetColumn(#ListGadget, 1, "Column 2", 100)
    
For b = 0 To 20
  AddGadgetItem(#ListGadget, b, "Item 1"+Chr(10)+"Item 2")
Next
    
ButtonGadget(#ButtonTest, 20, 20, 150, 25, "Test", #PB_Button_Toggle)

EnableGadgetTransformation(#ListGadget, #ButtonTest_All, 10)
                     
                     
Repeat
   
   Select WaitWindowEvent()
         
      Case #PB_Event_CloseWindow
         End
         
      Case #PB_Event_Gadget
         Select EventGadget()
            Case #ButtonTest
              Debug "Test"
              GadgetX = GadgetX(#ListGadget)
              GadgetY = GadgetY(#ListGadget)
              GadgetdY = GadgetWidth(#ListGadget)
              GadgetdX = GadgetHeight(#ListGadget)
               
              Debug "X/Y: "+Str(GadgetX)+"/"+Str(GadgetY)+ " dX/dY: "+Str(GadgetdX)+"/"+Str(GadgetdY)
         EndSelect
        
   EndSelect
   
ForEver
Danke für ein Hinweise und Gruß
MarcelX

Re: ListIconGadget mit den Maus positionieren

Verfasst: 12.09.2018 13:50
von bobobo
so in der Art vielleicht? ohne Krezz whatever

der TestButton aktiviert die Möglichkeit der Größenänderung
während Du Space gedrückt hältst, hängt das Gadget mittig
am Mauscursor und kann hin und her geschoben werden.
Danach wieder auf den TestButton zum Aktivieren der Möglichk.... s-o-

Code: Alles auswählen

DeclareModule GadgetTransformation
   
   Enumeration 1
      #ButtonTest_Position
      #ButtonTest_Horizontally
      #ButtonTest_Vertically
   EndEnumeration
   
   #ButtonTest_Size = #ButtonTest_Horizontally|#ButtonTest_Vertically
   #ButtonTest_All  = #ButtonTest_Position|#ButtonTest_Horizontally|#ButtonTest_Vertically
   
   Declare DisableGadgetTransformation(Gadget.i)
   Declare EnableGadgetTransformation(Gadget.i, Flags.i=#ButtonTest_All, Grid.i=1)
   
EndDeclareModule

Module GadgetTransformation
   
   EnableExplicit
   
   #HandelSize = 5
   
   Structure GadgetTransformation
      Gadget.i
      Handle.i[10]
      Grid.i
   EndStructure
   
   Structure DataBuffer
      Handle.i[10]
   EndStructure
   
   Global NewList GadgetTransformation.GadgetTransformation()
   
   Procedure.i GridMatch(Value.i, Grid.i, Max.i=$7FFFFFFF)
      Value = Round(Value/Grid, #PB_Round_Nearest)*Grid
      If Value > Max
         ProcedureReturn Max
      Else
         ProcedureReturn Value
      EndIf
   EndProcedure
   
   Procedure GadgetTransformation_Callback()
      Static Selected.i, X.i, Y.i, OffsetX.i, OffsetY.i, GadgetX0.i, GadgetX1.i, GadgetY0.i, GadgetY1.i
      Protected *GadgetTransformation.GadgetTransformation = GetGadgetData(EventGadget())
      With *GadgetTransformation
         Select EventType()
            Case #PB_EventType_LeftButtonDown
               Selected = #True
               OffsetX = GetGadgetAttribute(EventGadget(), #PB_Canvas_MouseX)
               OffsetY = GetGadgetAttribute(EventGadget(), #PB_Canvas_MouseY)
               GadgetX0 = GadgetX(\Gadget)
               GadgetX1 = GadgetX0 + GadgetWidth(\Gadget)
               GadgetY0 = GadgetY(\Gadget)
               GadgetY1 = GadgetY0 + GadgetHeight(\Gadget)
            Case #PB_EventType_LeftButtonUp
               Selected = #False
            Case #PB_EventType_MouseMove
               If Selected
                  X = WindowMouseX(GetActiveWindow())-OffsetX
                  Y = WindowMouseY(GetActiveWindow())-OffsetY
                  Select EventGadget()
                     Case \Handle[1]
                        ResizeGadget(\Gadget, GridMatch(X+#HandelSize, \Grid, GadgetX1), #PB_Ignore, GadgetX1-GridMatch(X+#HandelSize, \Grid, GadgetX1), GridMatch(Y, \Grid)-GadgetY0)
                     Case \Handle[2]
                        ResizeGadget(\Gadget, #PB_Ignore, #PB_Ignore, #PB_Ignore, GridMatch(Y, \Grid)-GadgetY0)
                     Case \Handle[3]
                        ResizeGadget(\Gadget, #PB_Ignore, #PB_Ignore, GridMatch(X, \Grid)-GadgetX0, GridMatch(Y, \Grid)-GadgetY0)
                     Case \Handle[4]
                        ResizeGadget(\Gadget, GridMatch(X+#HandelSize, \Grid, GadgetX1), #PB_Ignore, GadgetX1-GridMatch(X+#HandelSize, \Grid, GadgetX1), #PB_Ignore)
                     Case \Handle[5]
                        ResizeGadget(\Gadget, GridMatch(X-#HandelSize, \Grid), GridMatch(Y+#HandelSize, \Grid), #PB_Ignore, #PB_Ignore)
                     Case \Handle[6]
                        ResizeGadget(\Gadget, #PB_Ignore, #PB_Ignore, GridMatch(X, \Grid)-GadgetX0, #PB_Ignore)
                     Case \Handle[7]
                        ResizeGadget(\Gadget, GridMatch(X+#HandelSize, \Grid, GadgetX1), GridMatch(Y+#HandelSize, \Grid, GadgetY1), GadgetX1-GridMatch(X+#HandelSize, \Grid, GadgetX1), GadgetY1-GridMatch(Y+#HandelSize, \Grid, GadgetY1))
                     Case \Handle[8]
                        ResizeGadget(\Gadget, #PB_Ignore, GridMatch(Y+#HandelSize, \Grid, GadgetY1), #PB_Ignore, GadgetY1-GridMatch(Y+#HandelSize, \Grid, GadgetY1))
                     Case \Handle[9]
                        ResizeGadget(\Gadget, #PB_Ignore, GridMatch(Y+#HandelSize, \Grid, GadgetY1), GridMatch(X, \Grid)-GadgetX0, GadgetY1-GridMatch(Y+#HandelSize, \Grid, GadgetY1))
                  EndSelect
                  If \Handle[1]
                     ResizeGadget(\Handle[1], GadgetX(\Gadget)-#HandelSize, GadgetY(\Gadget)+GadgetHeight(\Gadget), #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[2]
                     ResizeGadget(\Handle[2], GadgetX(\Gadget)+(GadgetWidth(\Gadget)-#HandelSize)/2, GadgetY(\Gadget)+GadgetHeight(\Gadget), #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[3]
                     ResizeGadget(\Handle[3], GadgetX(\Gadget)+GadgetWidth(\Gadget), GadgetY(\Gadget)+GadgetHeight(\Gadget), #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[4]
                     ResizeGadget(\Handle[4], GadgetX(\Gadget)-#HandelSize, GadgetY(\Gadget)+(GadgetHeight(\Gadget)-#HandelSize)/2, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[5]
                     ResizeGadget(\Handle[5], GadgetX(\Gadget)+#HandelSize, GadgetY(\Gadget)-#HandelSize, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[6]
                     ResizeGadget(\Handle[6], GadgetX(\Gadget)+GadgetWidth(\Gadget), GadgetY(\Gadget)+(GadgetHeight(\Gadget)-#HandelSize)/2, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[7]
                     ResizeGadget(\Handle[7], GadgetX(\Gadget)-#HandelSize, GadgetY(\Gadget)-#HandelSize, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[8]
                     ResizeGadget(\Handle[8], GadgetX(\Gadget)+(GadgetWidth(\Gadget)-#HandelSize)/2, GadgetY(\Gadget)-#HandelSize, #PB_Ignore, #PB_Ignore)
                  EndIf
                  If \Handle[9]
                     ResizeGadget(\Handle[9], GadgetX(\Gadget)+GadgetWidth(\Gadget), GadgetY(\Gadget)-#HandelSize, #PB_Ignore, #PB_Ignore)
                  EndIf
               EndIf
         EndSelect
      EndWith
   EndProcedure
   
   Procedure DisableGadgetTransformation(Gadget.i)
      Protected I.i, *GadgetTransformation.GadgetTransformation
      ForEach GadgetTransformation()
         If GadgetTransformation()\Gadget = Gadget
            For I = 1 To 9
               If GadgetTransformation()\Handle[I]
                  FreeGadget(GadgetTransformation()\Handle[I])
               EndIf
            Next
            DeleteElement(GadgetTransformation())
         EndIf
      Next
   EndProcedure
   
   Procedure EnableGadgetTransformation(Gadget.i, Flags.i=#ButtonTest_All, Grid.i=1)
      Protected Handle.i, I.i
      Protected *GadgetTransformation.GadgetTransformation
      Protected *Cursors.DataBuffer = ?Cursors
      Protected *Flags.DataBuffer = ?Flags
      ForEach GadgetTransformation()
         If GadgetTransformation()\Gadget = Gadget
            For I = 1 To 9
               If GadgetTransformation()\Handle[I]
                  FreeGadget(GadgetTransformation()\Handle[I])
               EndIf
            Next
            DeleteElement(GadgetTransformation())
         EndIf
      Next
      *GadgetTransformation = AddElement(GadgetTransformation())
      *GadgetTransformation\Gadget = Gadget
      *GadgetTransformation\Grid = Grid
      For I = 1 To 9
        If Flags & *Flags\Handle[I] = *Flags\Handle[I]
            Select I
               Case 1
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)-#HandelSize, GadgetY(Gadget)+GadgetHeight(Gadget), #HandelSize, #HandelSize)
               Case 2
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+(GadgetWidth(Gadget)-#HandelSize)/2, GadgetY(Gadget)+GadgetHeight(Gadget), #HandelSize, #HandelSize)
               Case 3
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+GadgetWidth(Gadget), GadgetY(Gadget)+GadgetHeight(Gadget), #HandelSize, #HandelSize)
               Case 4
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)-#HandelSize, GadgetY(Gadget)+(GadgetHeight(Gadget)-#HandelSize)/2, #HandelSize, #HandelSize)
               Case 5
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+#HandelSize, GadgetY(Gadget)-#HandelSize, 2*#HandelSize, #HandelSize)
               Case 6
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+GadgetWidth(Gadget), GadgetY(Gadget)+(GadgetHeight(Gadget)-#HandelSize)/2, #HandelSize, #HandelSize)
               Case 7
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)-#HandelSize, GadgetY(Gadget)-#HandelSize, #HandelSize, #HandelSize)
               Case 8
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+(GadgetWidth(Gadget)-#HandelSize)/2, GadgetY(Gadget)-#HandelSize, #HandelSize, #HandelSize)
               Case 9
                  Handle = CanvasGadget(#PB_Any, GadgetX(Gadget)+GadgetWidth(Gadget), GadgetY(Gadget)-#HandelSize, #HandelSize, #HandelSize)
            EndSelect
            *GadgetTransformation\Handle[I] = Handle
            SetGadgetData(Handle, *GadgetTransformation)
            SetGadgetAttribute(Handle, #PB_Canvas_Cursor, *Cursors\Handle[I])
; OHNE BOX
;             If StartDrawing(CanvasOutput(Handle))
;                Box(0, 0, OutputWidth(), OutputHeight(), $000000)
;                Box(1, 1, OutputWidth()-2, OutputHeight()-2, $FFFFFF)
;                StopDrawing()
;             EndIf

            BindGadgetEvent(Handle, @GadgetTransformation_Callback())
         EndIf
      Next
      DataSection
         Cursors:
         Data.i 0, #PB_Cursor_LeftDownRightUp, #PB_Cursor_UpDown, #PB_Cursor_LeftUpRightDown, #PB_Cursor_LeftRight
         Data.i #PB_Cursor_Arrows, #PB_Cursor_LeftRight, #PB_Cursor_LeftUpRightDown, #PB_Cursor_UpDown, #PB_Cursor_LeftDownRightUp
         Flags:
         Data.i 0, #ButtonTest_Size, #ButtonTest_Vertically, #ButtonTest_Size, #ButtonTest_Horizontally
         Data.i #ButtonTest_Position, #ButtonTest_Horizontally, #ButtonTest_Size, #ButtonTest_Vertically, #ButtonTest_Size
      EndDataSection
   EndProcedure
   
EndModule

UseModule GadgetTransformation

Enumeration
   #Window
   #ButtonTest
   #ListGadget
EndEnumeration

OpenWindow(#Window, 0, 0, 600, 400, "WindowTitle", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)

ListIconGadget(#ListGadget, 50, 100, 200, 100, "Column 1", 100, #PB_ListIcon_FullRowSelect)

AddGadgetColumn(#ListGadget, 1, "Column 2", 100)
    
For b = 0 To 20
  AddGadgetItem(#ListGadget, b, "Item 1"+Chr(10)+"Item 2")
Next
    
ButtonGadget(#ButtonTest, 20, 20, 150, 25, "Kick in to resize Listicongadget", #PB_Button_Toggle)



AddKeyboardShortcut(#Window,#PB_Shortcut_Space,1)                    
                     
Repeat
   
   Select WaitWindowEvent()
         
      Case #PB_Event_CloseWindow
         End
       Case #PB_Event_Menu
         Select EventMenu()
           Case 1
             DisableGadgetTransformation(#ListGadget)
             Debug "Das Listicon hängt mittig an der Maus"
             ResizeGadget(#ListGadget,WindowMouseX(#window)-GadgetWidth(#ListGadget)/2,WindowMouseY(#window)-GadgetHeight(#ListGadget)/2,#PB_Ignore,#PB_Ignore)
             
         EndSelect
         
      Case #PB_Event_Gadget
         Select EventGadget()
           Case #ButtonTest
             EnableGadgetTransformation(#ListGadget, #ButtonTest_All, 10)
              Debug "Test"
              GadgetX = GadgetX(#ListGadget)
              GadgetY = GadgetY(#ListGadget)
              GadgetdY = GadgetWidth(#ListGadget)
              GadgetdX = GadgetHeight(#ListGadget)
               
              Debug "X/Y: "+Str(GadgetX)+"/"+Str(GadgetY)+ " dX/dY: "+Str(GadgetdX)+"/"+Str(GadgetdY)
         EndSelect
        
   EndSelect
   
ForEver

Re: ListIconGadget mit den Maus positionieren

Verfasst: 13.09.2018 09:23
von marcelx
Danke bobobo,
nur die Größe der ListIconGadget kann ich nicht ändern