wie ihr es ja kennt, hab ich bei Pure GraphicShop links die ganzen Buttons mit den Zeichenfunktionen, welche eingerastet bleiben.
Mal davon abgesehen, dass es bei Sunny nicht läuft, habe ich bei Optimierungsversuchen entdeckt, dass die funktion, die alles nötige beim Ändern der zeichenart ändert zweimal aufgerufen wird.
Ich konnte das mit einer kleinen änderung der Abfrage reparieren, aber jetzt rasten die Buttons nicht mehr vernünftig ein.
Mal rasten sie normal ein und werden normal los gelassen, mal bleiben sie gedrückt, wenn man auf einen anderen klickt oder sie werden nicht gedrückt, wenn man drauf drückt.
Kann mir wer sagen, was ich falsch mache?
Code: Alles auswählen
Dim punkt.l(9,9)
Dim bild.l(9,9)
Procedure ToggleGadget(GadgetNr.l);Macht ein Buttonimagegadget Tooglebar
If IsGadget(GadgetNr)
style = GetWindowLong_(GadgetID(GadgetNr), #GWL_STYLE)
toggleStyle = style |#BS_PUSHBUTTON
SetWindowLong_(GadgetID(GadgetNr), #GWL_STYLE, toggleStyle)
EndIf
EndProcedure
Procedure UpdateToggle(gadgetid.l)
For a=0 To 9
For b=0 To 9
SendMessage_(GadgetID(punkt(a,b)),#BM_SETSTATE,0,0)
Next
Next
SendMessage_(GadgetID(gadgetid),#BM_SETSTATE,1,0)
EndProcedure
If OpenWindow(1,10,10,400,400,#PB_Window_SystemMenu,"Halttest")
CreateGadgetList(WindowID())
For a=0 To 9
For b=0 To 9
bild(a,b)=CreateImage(#PB_Any,30,30)
StartDrawing(ImageOutput())
FrontColor(Random(255),Random(255),Random(255))
Circle(15,15,10)
StopDrawing()
punkt(a,b)=ButtonImageGadget(#PB_Any,a*40,b*40,30,30,UseImage(bild(a,b)))
ToggleGadget(punkt(a,b))
Next
Next
Repeat
event=WaitWindowEvent()
If event=#PB_EventGadget
UpdateToggle(EventGadgetID())
EndIf
Until event=#WM_CLOSE
EndIf
End