Seite 1 von 2

Alle Gadgets eines Containers durchgehen

Verfasst: 10.10.2018 17:19
von Qnode
Hey,

ich stöbere jetzt schon eine ganze Weile die PB-Hilfe durch, komme aber nicht drauf:
Wie kann ich alle Gadgets eines Containers bzw. einer ScrollArea durchgehen? Ich habe versucht etwas bezüglich der GadgetList zu finden, aber da passt nix (oder ich habe einfach ein Brett vor dem Kopf).
Im Endeffekt geht es darum, wenn ich den Container resize, seine Elemente entsprechend anzupassen. Ich dachte, dass ginge mit einer ForEach-Schleife...
Habt ihr einen Denkanstoß für mich?

Re: Alle Gadgets eines Containers durchgehen

Verfasst: 10.10.2018 17:23
von NicTheQuick
Ich kenne keine Möglichkeit über die Gadgets einer Gadgetliste zu iterieren. Am besten packst du alle Gadget-IDs, die du im Container anlegst in eine LinkedList oder, wenn es immer eine feste Anzahl ist, in ein Array.

Re: Alle Gadgets eines Containers durchgehen

Verfasst: 10.10.2018 18:09
von RSBasic
https://www.rsbasic.de/aktualisierung/w ... mitteln.pb
Statt WindowID(0) gibst du GadgetID(###) an, um alle Gadgets innerhalb eines ContainerGadgets zu ermitteln.

Re: Alle Gadgets eines Containers durchgehen

Verfasst: 10.10.2018 19:45
von Qnode
Vielen Dank für die Antworten. Da ich die Sache möglichst Crossplattform halten möchte, werde ich wohl die Idee von NickTheQuick weiterverfolgen.

Re: Alle Gadgets eines Containers durchgehen

Verfasst: 10.10.2018 20:05
von RSBasic
Es gibt ja noch die Möglichkeit, mit ImportC auf die internen PB-Funktionen zuzugreifen, da PB selber eine eigene Verwaltungsliste aller erstellten Gadgets besitzt, aber ich kann leider den Code nicht finden. Das müsste plattformunabhängig sein.

Re: Alle Gadgets eines Containers durchgehen

Verfasst: 10.10.2018 22:24
von ccode_new
Im Endeffekt geht es darum, wenn ich den Container resize, seine Elemente entsprechend anzupassen.
Ich habe das hier: https://www.purebasic.fr/english/viewto ... 12&t=48825
mal im Forum gefunden.

Vielleicht hilft es ?

Re: Alle Gadgets eines Containers durchgehen

Verfasst: 11.10.2018 09:03
von Qnode
Hey,
vielen Dank für eure Hinweise. Wie ich mit ImportC auf die internen PB-Funktionen zugreifen müsste... da reichen meine Kenntnisse nicht aus, das ginge wohl nur über Copy/Paste. Den AutoResizer finde ich interessant. Das probier ich mal aus. Danke für den Link. Im englischen Forum bin ich nicht unterwegs, da das mit meinen Sprachkenntnissen etwas mühsam ist (wobei ich der Konversation schon folgen kann).

Re: Alle Gadgets eines Containers durchgehen

Verfasst: 12.10.2018 09:53
von RSBasic
Ich habe nochmal gegoogelt und habe den Code gefunden, den ich anfangs meinte:

Code: Alles auswählen

CompilerIf Not Defined(PB_Object_Count, #PB_Function) And Not Defined(PB_Object_Count, #PB_Procedure)
  CompilerIf #PB_Compiler_OS = #PB_OS_Windows
    Import ""
  CompilerElse
    ImportC ""
  CompilerEndIf
  PB_Object_EnumerateStart( PB_Objects )
  PB_Object_EnumerateNext( PB_Objects, *ID.Integer )
  PB_Object_EnumerateAbort( PB_Objects )
  PB_Object_Count( PB_Objects )
  
  PB_Window_Objects.i
  PB_Gadget_Objects.i
  PB_Image_Objects.i
EndImport
CompilerEndIf
Beispielcodes:

Re: Alle Gadgets eines Containers durchgehen

Verfasst: 12.10.2018 15:00
von Qnode
Danke :D
Ich habs mal durchgesehen und erstmal... nix … verstanden :? Das muss ich ganz in Ruhe mal austesten. Ich denke aber, dass sich das lohnt, weil, ich probiere grade meine Gadgets alle händisch zu resizen und werde schon bei ein paar Gadgets irre...

Re: Alle Gadgets eines Containers durchgehen

Verfasst: 12.10.2018 16:37
von RSBasic
Qnode hat geschrieben:weil, ich probiere grade meine Gadgets alle händisch zu resizen und werde schon bei ein paar Gadgets irre...
Hast du dir schon mal die Bibliothek Dialog angeschaut? Vielleicht wäre was für dich. HeX0R hat auch ein schönes, nützliches Tool entwickelt: viewtopic.php?f=11&t=30657