Wie kann man nachträglich den Style eines Gadget ändern ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
silbersurfer
Beiträge: 174
Registriert: 06.07.2014 12:21

Wie kann man nachträglich den Style eines Gadget ändern ?

Beitrag von silbersurfer »

Hallo Leute,
gibt es eine möglichkeit den Style eines Gadgets nachträglich (in laufzeit) zu ändern ?

z.B. ListIconGadget(#PB_ListIcon_MultiSelect) so das man diesen praktisch ein und aus schalten kann.
Wenn möglich auch über Api.
Intel Quad Core 3,2 Ghz - GTX 1060 - BlitzBasic Plus 1.48 , PureBasic 5.70 LTS / Aktuelles Projekt PureCommander
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Wie kann man nachträglich den Style eines Gadget ändern

Beitrag von Mijikai »

Iirc:

Code: Alles auswählen

Style = GetWindowLongPtr_(GadgetID(),#GWL_STYLE)
SetWindowLongPtr_(GadgetID(),#GWL_STYLE,Style + #NEW STYLES)
Benutzeravatar
silbersurfer
Beiträge: 174
Registriert: 06.07.2014 12:21

Re: Wie kann man nachträglich den Style eines Gadget ändern

Beitrag von silbersurfer »

Super, danke Mijikai für die schnelle Antwort, werde das gleich ausprobieren :allright: :allright:

Edit: Bin nicht sicher ob ich das richtig gemacht habe, aber es kommt bei mir immer ein (Adress Lesefehler 24)

gibt keinen Adressfehler aber änderung ist nicht vorhanden

Code: Alles auswählen

Style = GetWindowLongPtr_(GadgetID(1),#GWL_STYLE)
SetWindowLongPtr_(GadgetID(1),#GWL_STYLE, Style | #PB_ListIcon_HeaderDragDrop)
gibt keinen Adressfehler, aber das Gadget wird nicht mehr dargestellt

Code: Alles auswählen

Style = GetWindowLongPtr_(GadgetID(1),#GWL_STYLE)
SetWindowLongPtr_(GadgetID(1),#GWL_STYLE, Style + #PB_ListIcon_HeaderDragDrop)
gibt den besagten Adressfehler

Code: Alles auswählen

Style = GetWindowLongPtr_(GadgetID(1),#GWL_STYLE)
SetWindowLongPtr_(GadgetID(1),#GWL_STYLE, Style & #PB_ListIcon_HeaderDragDrop)

was mache ich da Falsch ?
Intel Quad Core 3,2 Ghz - GTX 1060 - BlitzBasic Plus 1.48 , PureBasic 5.70 LTS / Aktuelles Projekt PureCommander
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Wie kann man nachträglich den Style eines Gadget ändern

Beitrag von Mijikai »

Habs mal getestet mit den #PB_ "Styles" geht es nicht.

Aber so :)

Code: Alles auswählen

;Multiselect abschalten
;style = GetWindowLongPtr_(GadgetID(2),#GWL_STYLE)
;SetWindowLongPtr_(GadgetID(2),#GWL_STYLE,style | #LVS_SINGLESEL)

;Multiselect wieder anschalten    
;style = GetWindowLongPtr_(GadgetID(2),#GWL_STYLE)
;SetWindowLongPtr_(GadgetID(2),#GWL_STYLE,style & (~#LVS_SINGLESEL))
Benutzeravatar
silbersurfer
Beiträge: 174
Registriert: 06.07.2014 12:21

Re: Wie kann man nachträglich den Style eines Gadget ändern

Beitrag von silbersurfer »

@Mijikai
Aber so :)
Danke, werde das gleich testen ! :allright:
Intel Quad Core 3,2 Ghz - GTX 1060 - BlitzBasic Plus 1.48 , PureBasic 5.70 LTS / Aktuelles Projekt PureCommander
Antworten