Seite 1 von 1

ButtonImageGadget Borderless + Mouseover-Effekt!

Verfasst: 04.01.2007 14:42
von onny
Hallo, hatte dieses Problem schonmal mit ButtonImageGadget / Borderless.
Soweit bin ich gekommen:

Code: Alles auswählen

; www.purearea.net (Sourcecode collection by cnesm)
; Author:
; Date: 22. November 2003
; erweitert durch nen platten Knopf


Procedure.l MyImage(ImageNumber.l, Width.l, Height.l, Color.l)
  ImageID.l = CreateImage(ImageNumber, Width, Height)
  StartDrawing(ImageOutput())
  LoadImage(0,"bg.bmp")
  DrawImage(UseImage(0), 0, 0) 
  StopDrawing()
  ProcedureReturn ImageID
EndProcedure

#BS_FLAT=$8000
;
; Main starts here
;
If OpenWindow(0, 200, 200, 150, 100, #PB_Window_SystemMenu, "zZzzzZzZzZzzzZzzz")

  If CreateGadgetList(WindowID())
    ButtonImageGadget(105, 10, 10, 40, 20, MyImage(1,40,20,$0000FF))
    ButtonImageGadget(106, 60, 10, 40, 20, MyImage(2,40,20,$FF00BB))
    s.l=GetWindowLong_(GadgetID(106), #GWL_STYLE)
    SetWindowLong_(GadgetID(106), #GWL_STYLE, #BS_FLAT | s)
  EndIf

  Repeat
    Select WaitWindowEvent()
      Case #PB_EventCloseWindow : End
      Case #PB_EventGadget
        Select EventGadgetID()
          Case 105 ; Button 1
            SetGadgetState(106,MyImage(2,40,20,Random($FFFFFF)))
          Case 106 ; Button 2
          Debug hallo
        EndSelect
    EndSelect
  ForEver

EndIf 
Wie funktioniert jetzt ein MouseOver-Effekt? Jemand hatte hier schonmal einen guten Code gepostet, finde diesen aber nichtmehr :(

Verfasst: 04.01.2007 14:49
von DarkSoul
Heir ging es mal darum, auf ein image draufzumalen:

http://www.purebasic.fr/german/viewtopic.php?t=11333

aber das ist ja nur sache der anwendung, der weg ist weitgehend der gleiche (nur ohne die zeichenbeehle, wo du stattdessen dein event einfügst)

Verfasst: 04.01.2007 15:16
von onny
kompliziert :shock:
ich schau mal ob ichs hinbekomme....

Verfasst: 04.01.2007 15:27
von vonTurnundTaxis
Als ich noch Zeit für solche Spielereien übrig hatte, habe ich einfach ein Imagegadget genommen :wink:

Code: Alles auswählen

;Pseudocode

LoadImage(#normal, "button.png")
LoadImage(#hover, "button_hover.png")
LoadImage(#down, "button_down.png")

ImageGadget(#imagebuttongadget, ImageID(1))

If EventGadget() = #imagebuttongadget
   ;Gadgetbild je nach dem ändern und/oder Gadget als angeklickt melden
EndIf


Verfasst: 04.01.2007 15:39
von onny
omg, klaro, imagegadget tuts ja auch :o

Verfasst: 04.01.2007 17:50
von Criss
Hier habe ich Dir auch noch was zum Thema:

HoverButtons