ButtonImageGadget() mit #PB_Button_Toggle

Fragen und Bugreports zur PureBasic 4.0-Beta.
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

ButtonImageGadget() mit #PB_Button_Toggle

Beitrag von Sven »

Ich wäre sehr dafür, dem ButtonImageGadget() ein Flag #PB_Button_Toggle zu spendieren, damit man es wie ein normales ButtonGadget() als Schalter einsetzen kann.

Was haltet ihr davon? Mal vorschlagen?

Sven
Benutzeravatar
Hyper
Beiträge: 194
Registriert: 19.04.2005 19:14

Beitrag von Hyper »

Ich stimme Dir völlig zu. Ist mir noch gar nicht aufgefallen, dass das hier nicht geht.
PB 5.72
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

Beitrag hochkram.

Würde ich auch begrüßen. Habe mir diese Woche deshalb einen abgegeigt.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Stimme euch zu!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ist vielleicht unter Linux oder MacOS nicht möglich? Wird also nie kommen?
In Windows ist es kein Problem:

Code: Alles auswählen

If OpenWindow(0, #PB_Ignore, #PB_Ignore, 400, 300, "")
  If CreateGadgetList(WindowID(0))
    ButtonGadget(0, 10, 10, 168, 35, "", #PB_Button_Toggle|#BS_BITMAP)
    SendMessage_(GadgetID(0), #BM_SETIMAGE, 0, LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\PureBasic.bmp"))
    
    While WaitWindowEvent() <> 16 : Wend
  EndIf
EndIf
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Lieber den Style aendern , so laesst es sich dann auch weiterhin
das Bild mit setgadgetstate aendern.

Code: Alles auswählen

Macro AddStyle(id,style)
  SetWindowLong_(GadgetID(id),#GWL_STYLE,GetWindowLong_(GadgetID(id),#GWL_STYLE)|style) 
  SetWindowPos_(GadgetID(id),0,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE|#SWP_FRAMECHANGED)
EndMacro

If OpenWindow(0, #PB_Ignore, #PB_Ignore, 400, 300, "")
  If CreateGadgetList(WindowID(0))
    LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\PureBasic.bmp")
    ButtonImageGadget(0, 10, 10, 168, 35, ImageID(0)) 
    
    AddStyle(0,#PB_Button_Toggle)
    
    
    While WaitWindowEvent() <> 16 : Wend
  EndIf
EndIf
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@edel
Leider kann ich dann bei aktiviertem XP-Style den getoggleten Zustand nicht
erkennen, sieht genauso aus, als wenn der Button den Focus hat. Vielleicht
liegt das ja an meinem Style?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Unter Vista hab ich mit deinem Code auch nur einen Auswahlrahmen,
Bei der 2. Version ist es zwar schwer zu erkennen , aber das wird devinitiv
am Theme liegen.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Der Benutzer kann ja bei gedrücktem Button ein anderes Bild einfügen, als bei nicht gedrücktem Button.
Danke für die Codes!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Gesperrt