Alle Gadgets eines Containers durchgehen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Qnode
Beiträge: 67
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Alle Gadgets eines Containers durchgehen

Beitrag 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?
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Alle Gadgets eines Containers durchgehen

Beitrag 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.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Alle Gadgets eines Containers durchgehen

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Qnode
Beiträge: 67
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Alle Gadgets eines Containers durchgehen

Beitrag 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.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Alle Gadgets eines Containers durchgehen

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Alle Gadgets eines Containers durchgehen

Beitrag 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 ?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Qnode
Beiträge: 67
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Alle Gadgets eines Containers durchgehen

Beitrag 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).
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Alle Gadgets eines Containers durchgehen

Beitrag 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:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Qnode
Beiträge: 67
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Alle Gadgets eines Containers durchgehen

Beitrag 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...
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Alle Gadgets eines Containers durchgehen

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten