Seite 1 von 2

Inhalt von PanelGadgetItems resizen?

Verfasst: 07.09.2017 23:05
von MikeHart
Hallo zusammen,

aktuell verwende ich ein Panelgadget welches eine variable Anzahl von Items enthält, welchen jeweils ein Scintillagadget zugeordnet ist.
Bei der Größenänderung mache ich einen Resize auf das Panelgadget. Nun muss ich aber auch die in den Items enthaltenen Scintilla Gadgets bzgl. deren Größe anpassen.
Z.Zt speichere ich die ID des Scintillagadget in den Item Data ab um sie dann für die Größenanpassung zu verwenden. Klappt. Bei einem Gadget kein Problem. Würde die ID aber gerne zur Laufzeit ermitteln. Also meine Frage...

Kann man Gadgets in den PanelGadgetItems zur Laufzeit ermitteln und entsprechend resizen? Ich habe es mit 2 GetGadgetItemID aufrufen versucht. Erst um das Item zu ermitteln und im Item das erste Gadget. Bekomme aber immer nur 0 zurück. bzw PB crashed:

Code: Alles auswählen

  itemCount = CountGadgetItems(Panel_Code)-1
  For itemIndex = 0 To itemCount
    itemID = GetGadgetItemData(Panel_Code, itemIndex)    ; Wird 0 zurückgegeben
    scintillaGadgetID = GadgetItemID(itemID, 0)   ; Hier crashed es schon
    ResizeGadget(scintillaGadgetID , #PB_Ignore, #PB_Ignore,  GetGadgetAttribute(Panel_Code,#PB_Panel_ItemWidth), GetGadgetAttribute(Panel_Code,#PB_Panel_ItemHeight))
  Next
Gruß
Michael

Re: Inhalt von PanelGadgetItems resizen?

Verfasst: 08.09.2017 04:39
von GPI
https://www.purebasic.com/german/docume ... mdata.html
mit diesen Befehl kannst du einen Wert setzen und in Panel speichern. Den Wert musst du vorher aber abspeichern.
Wenn du nur ein Gadget in allen panels drin hast, dann kannst du hier natürlich dein Handle von Gadget abspeichern und später abrufen.

Re: Inhalt von PanelGadgetItems resizen?

Verfasst: 08.09.2017 05:17
von MikeHart
Danke. So mache ich das zur Zeit auch. Aber wozu ist dann GetGadgetItemId da? Mūsste dieser Befehl mir das nicht auch bringen?

Re: Inhalt von PanelGadgetItems resizen?

Verfasst: 08.09.2017 07:38
von GPI
Keine Ahnung, den Befehl gibt es eigentlich gar nicht:
https://www.purebasic.com/documentation ... index.html

Re: Inhalt von PanelGadgetItems resizen?

Verfasst: 08.09.2017 09:01
von MikeHart
GPI hat geschrieben:Keine Ahnung, den Befehl gibt es eigentlich gar nicht:
https://www.purebasic.com/documentation ... index.html
Sorry, meinte GadgetItemID.

https://www.purebasic.com/documentation ... temid.html

Re: Inhalt von PanelGadgetItems resizen?

Verfasst: 08.09.2017 09:04
von MikeHart
Wer lesen kann, kann verstehen :oops: Der funktioniert nur beim TreeGadget. Also scheint beim Panelgadget nur der Weg über die Itemdata und dort den Handle von einem enthaltenen Gadget abzulegen, oder wenn es mehrere sind, dort eine Liste oder ähnliches abzulegen.

Case closed :D

Re: Inhalt von PanelGadgetItems resizen?

Verfasst: 08.09.2017 09:08
von Kiffi
@MikeHart: es gibt hier im Forum ein bis mehrere Code-Snippets, die das automatische Resizen von Gadgets anbieten. Du stellst nur initial top-, left-, right- und bottom-Eigenschaften ein und brauchst Dich dann nicht mehr um das resizen kümmern. Finde momentan auf die Schnelle nix, aber vielleicht weiß der ein oder andere Forianer, was ich meine.

Grüße ... Peter

Re: Inhalt von PanelGadgetItems resizen?

Verfasst: 08.09.2017 13:00
von Bisonte
Kiffi hat geschrieben:aber vielleicht weiß der ein oder andere Forianer, was ich meine.
Ja so ist es ;)

z.B. : http://www.purebasic.fr/german/viewtopi ... 10#p320810

Es gibt auch noch andere Sources... aber der fiel mir auf die schnelle ein :mrgreen:

Re: Inhalt von PanelGadgetItems resizen?

Verfasst: 09.09.2017 08:44
von MikeHart
Danke, der Link ist eine kleine Goldgrube! :D

Re: Inhalt von PanelGadgetItems resizen?

Verfasst: 09.09.2017 15:24
von Bisonte
Ja... Dieses Forum hat viele versteckte Schätze :allright: