ImageGadget als Button

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ImageGadget als Button

Beitrag von RSBasic »

Das ist echt sehr merkwürdig. Wei groß ist dein Code insgesamt? Kannst du, wenn du damit einverstanden bist, als ZIP-Archiv hochladen?
Ansonsten kannst du nur selber deinen eigenen Code schrittweise debuggen, um die Ursache herauszufinden. Es kann alles sein. Beispielsweise kann es sein, dass du irgendwo BindEvent() nochmal ausführst, so dass du 2 Klicks hast. Beim nächsten Klick wird nochmal ein BindEvent ausgeführt, so dass du 3 Klicks hast.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
rowo
Beiträge: 13
Registriert: 28.12.2017 17:45
Computerausstattung: Macbook Pro, Mid 2010
Lenovo Workstation, i5 3,2 Ghz, 32 GB RAM, 480 GB SSD, Nvidia Quadro
Wohnort: Bayern, nähe Augsburg

Re: ImageGadget als Button

Beitrag von rowo »

Hallo, den Code kann ich leider nicht hochladen. Der ist Teil eines Projekts. Allerdings habe ich den Fehler für die 700k Größenänderung gefunden. Jedesmal wenn ich den Smiley ändere, spiele ich eine Wavedatei ab. Hatte FreeSound(0) auskommentiert >:) Das ist also gelöst. Nur habe ich immer noch den Effekt mit dem ImageGadget.
Andere Frage: Gibt es von Drittanbietern Gadgets? Ich würde die auch kaufen. Brauche einen flachen Button, der eine transparente Grafik aufnehmen kann.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ImageGadget als Button

Beitrag von RSBasic »

Wenn du ImageGadget verwendest, wird Transparent unterstützt.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ImageGadget als Button

Beitrag von RSBasic »

Ansonsten gibt es eine WinAPI-Lösung für einen flachen Button:

Code: Alles auswählen

EnableExplicit

UsePNGImageDecoder()

LoadImage(1, "D:\Grafiken\RSBasic\776.png")

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonImageGadget(1, 10, 10, 80, 80, ImageID(1), 0)
  ButtonImageGadget(2, 100, 10, 80, 80, ImageID(1), 0)
  
  SetWindowTheme_(GadgetID(1), @"", @"")
  SetWindowLongPtr_(GadgetID(1), #GWL_STYLE, GetWindowLongPtr_(GadgetID(1), #GWL_STYLE) | #BS_FLAT) 
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf
Zwei Buttons, einmal mit und einmal ohne Flat-Design.
Die WinAPI-Konstante kannst du aber auch in den Flags-Parameter einfügen:

Code: Alles auswählen

ButtonImageGadget(1, 10, 10, 80, 80, ImageID(1), #BS_FLAT)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
rowo
Beiträge: 13
Registriert: 28.12.2017 17:45
Computerausstattung: Macbook Pro, Mid 2010
Lenovo Workstation, i5 3,2 Ghz, 32 GB RAM, 480 GB SSD, Nvidia Quadro
Wohnort: Bayern, nähe Augsburg

Re: ImageGadget als Button

Beitrag von rowo »

Super. Das probier ich gleich aus. Danke.
Antworten