PanelGadget und ID weiterer Gadgets

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
John Doe
Beiträge: 57
Registriert: 02.01.2006 18:08

PanelGadget und ID weiterer Gadgets

Beitrag von John Doe »

habe ein Problem mit den ID's ...
ich habe mir ein PanelGadget erstellt, dem während der Laufzeit weitere Panels hinzugefügt und auch mittels RemoveGadgetItem entfernt werden.

auf jedem Panel wird ebenfalls während der Laufzeit ein EditorGadget und ein CheckBoxGadget hinzugefügt
Das EditorGadget bekommt die gleiche Gadget-ID wie die Panelschaltfläche,
also Editor-ID von Panel 0 = 0
Editor-ID von Panel 1 = 1 usw.
dem CheckboxGadget wird die gleiche ID wie dem Editor zugeteilt incl. Addition von 1000
also EditorGadget 0 -> CheckboxGadget 1000
EditorGadget 1 -> CheckboxGadget 1001
funktionniert bis hierhin einwandfrei

nun mein Problem:
nehmen wir an, ich habe 4 Panels
wenn ich nun zB. Panel 2 mittels RemoveGadgetItem entferne, dann
- rutscht Panel 3 an Stelle von Panel 2 und
- Panel 4 rutscht an Stelle von Panel 3.

Möchte ich nun den CheckboxGadget auf Panel 2 ansprechen mit ID 1001
erscheint die Meldung "Gadget object not initialized", auch mit Recht, da
- Gadget 1001 nicht mehr existiert (wurde mitsamt Panel 1 entfernt) und
- auf Panel 2 nun CheckboxGadget mit ID 1003 liegt

:o :o
etwas verzwickt das Ganze, aber ich weiß nicht, wie ich es sonst erklären soll.
wie kann ich die ID's der CheckBoxGadgets dynamisch benennen, um nach Entfernen einzelner Panels immer noch Zugriff auf die restlichen CheckboxGadgets zu haben.
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Hi

Die ID´s kannst du nicht dynamisch benennen, ID is ID.

Wie wärs aber,wenn du immer das letzte Pannel schließt, deine Daten aber umsortierst.


Also

Von zuschließender bis mengeanpanels-1
x=kriegstatus von nächster Checkbox
Setzestatus von aktueller Checkbox(x)
Gleiches mit dem String und dem Panelnamen
weiter
löscheletztespanel


So musst du dann nur klarstellen, wo welches Editorgadget sich grade befindet.
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
John Doe
Beiträge: 57
Registriert: 02.01.2006 18:08

Beitrag von John Doe »

Hallo Franky
die Idee ist nicht schlecht, läßt sich in die Tat umsetzen
jedoch bin ich bei der Umsetzung auf das nächste Problem gestossen:

der Editor enthält Text, der größer 64kB ist.
Der Text wurde aus einer Datei mittels StreamIn eingelesen (hier nochmals recht herzlichen Dank an hallodri und PAMKKKKK)

wie kann ich nun diesen großen Text (Stream) von einem EditorGadget in ein anderes Kopieren
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Schonmal etwas von [c]#PB_Any[/c] gehört? Damit kannst du Gadgets
dynamisch erstellen und bekommst eine gültige ID zurück. So musst du
nicht von vornerein eine ID für jedes mögliche Gadget bestimmen und
dazu noch mehr Speicher als nötig verbraten.
Antworten