Seite 1 von 1

PanelGadget und ID weiterer Gadgets

Verfasst: 10.01.2006 14:20
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.

Verfasst: 10.01.2006 17:11
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.

Verfasst: 10.01.2006 17:52
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

Verfasst: 10.01.2006 18:06
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.