DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > MUI Cycle Object: Einträge hinzufügen | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2006-09-03, 16:05 h Mazze Posts: 263 User |
Beim MUI Cycle gadget kann man MUIA_Cycle_Entries nur beim Erzeugen des Gadgets anwenden. Wie kann man zur Laufzeit Einträge hinzufügen? Oder gibt es eine andere MUI-Klasse, die man dafür verwenden sollte? -- AROS - Because every rose has its dorns. Meine Homepage [ - Answer - Quote - Direct link - ] |
2006-09-03, 16:22 h DariusBrewka Posts: 899 [Banned user] |
Zitat: Wie in der Doku angegeben gibt's für MUIA_Cycle_Entries nur das Attribut I also das geht nicht, eine entsprechende Alternative kenn ich nicht. Das einzige was Ich vorschlagen könnte wäre das Object mittels OM_REMMEMBER zu entfernen und ein neues mittels OM_ADDMEMBER hinzuzufügen. Was nicht anzuraten ist, MUI kopiert nicht die Einträge die du mittels Cycle_Entries übergibst (Ich wüßte nicht warum das getan werden müsste), dann könntest du einfach die Liste ändern, ohne MUI darüber in Kentniss zu setzen. Aber empfehlenswert ist das nicht. Da du Unter AROS programmierst, ich habs ausprobiert das ging, aber Ich würde mich an Georg wenden der kann da sicherlich genaueres drüber sagen. [ - Answer - Quote - Direct link - ] |
2006-09-03, 18:29 h Mazze Posts: 263 User |
Zitat: Problem dabei ist, dass man Objekte nur bei geschlossenem Fenster hinzufügen oder entfernen kann. Zitat: Zune setzt das Cycle gadget aus Text-Objekten zusammen. Dabei werden die Strings kopiert. Zitat: Ich suche eine Lösung, die sowohl unter MUI als auch unter Zune funktioniert. Irgendwann möchte ich mein Lua-MUI-Binding nach AmigaOS portieren. Hintergrund für meine Frage ist folgender Thread: Clickme -- AROS - Because every rose has its dorns. Meine Homepage [ - Answer - Quote - Direct link - ] |
2006-09-03, 19:27 h DariusBrewka Posts: 899 [Banned user] |
Zitat: Wo steht das denn? also wenn das bei ZUNE nicht geht, dann ist bei Zune was Kaputt, denn ich bin 95% Sicher dass das geht. Im der MUI Doku steht auch nichts davon dass das Fenster geöffnet sein Muß, nur dass das Object an welches du ein Neues Element einfügen willst entweder vom Type ApplicationObject oder Group sein muß, aber das sollte sowieso Klar sein. Zitat: hab nochmals im ZUNE source nachgeschaut, du hast 90% Recht, nur die Popup-Liste wird direkt aus den Entry Einträgen übernommen, aber das Cycle-Object selber besteht aus einer PageGroup, die TextObject Einträge hat, also wird das so nicht Funktionieren. Nachtrag: In der Anleitung steht, soweit Ich das verstanden habe, dass man keine Fenster öffnen sollte wenn Gruppen ohne Inhalt existieren. [ Dieser Beitrag wurde von DariusBrewka am 03.09.2006 um 19:38 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2006-09-03, 19:43 h Mazze Posts: 263 User |
Zitat: Aus dem muidev.guide: Dynamic Groups ============== In the same way you can add windows to an application after its creation, you can add elements to already existing group objects. This may be useful if a group contains many similar children or if the number of children is not known in the beginning. You can add new elements to groups or delete them again, but the window that contains this group must not be open! Ich habe es ausprobiert. Wenn ich unter Zune ein Objekt bei offenem Fenster wegnehme, ist das Layout kaputt. -- AROS - Because every rose has its dorns. Meine Homepage [ Dieser Beitrag wurde von Mazze am 03.09.2006 um 19:46 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2006-09-03, 19:53 h Holger Posts: 8116 User |
Zitat: Wenn nicht explizit dokumentiert ist, dass ein Objekt solche Manipulationen vor race-conditions durch den Zugriff mehrerer tasks gleichzeitig schützt, sollte man davon ausgehen, dass es ein Problem erzeugen wird. Das heisst natürlich nicht, dass man unbedingt das Fenster schließen und wieder öffnen muss. Aushängen, manipulieren und wieder einhängen der Gadgets sollte normalerweise reichen. Davon bekommt der Benutzer dann auch nichts mit. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-09-03, 19:55 h DariusBrewka Posts: 899 [Banned user] |
Zitat: Hmm, wie unter Nachtrag oben aufgeführt, habe ich das so Verstanden dass ein Fenster geschlossen sein Muß, wenn die Gruppe keine Elemente enthält (so Interpretiere Ich die Kommentare beim Beispiel aus besagter Doku), also mal versuchen ohne Leere Elemente auszukommen. Und Ich würde auch Empfehlen es auch unter MUI also nicht ZUNE auszuprobieren, da ZUNE mit dem Layout (z.B. MUIA_ShowMe BUG) Probleme hat. Aber eine Alternative könnte man dennoch wählen, wenn du weißt welche Einträge da sein sollen, dann könntest du mehrere CycleObjects in eine Pagegroup packen und dann einfach umschalten. [ - Answer - Quote - Direct link - ] |
2006-09-03, 20:04 h Georg Posts: 107 User |
@Mazze: Geschützt innerhalb von Group_InitChange/Group_ExitChange (cycle ist von group abgeleitet) müsste OM_ADDMEMBER + co. eigentlich gehen, auch wenn das Fenster offen ist. Alternativ kann man sich auch ne eigene cycle Klasse basteln. Basierend auf dem Zune cycle class Source. Etwas komplizierter ist ja eigentlich nur der Popup-Menu/Fenster Code, was man aber ohne große Änderung übernehmen können sollte. [ - Answer - Quote - Direct link - ] |
2006-09-03, 20:19 h Mazze Posts: 263 User |
Zitat: Jaaa, das ist es -- AROS - Because every rose has its dorns. Meine Homepage [ - Answer - Quote - Direct link - ] |
2006-09-03, 20:22 h Mazze Posts: 263 User |
Zitat: Du beziehst Dich wahrscheinlich auf diese Stelle aus dem Guide: Of course you may (if the window is closed) remove elements from groups. Please note that window objects containing empty groups must not be opened. -- AROS - Because every rose has its dorns. Meine Homepage [ - Answer - Quote - Direct link - ] |
2006-09-15, 12:10 h geit Posts: 332 [Former member] |
Danke auch von meiner Seite. Ich hatte gerade genau das selbe Problem mit dem Karteneditor von ValiantVision. Hat mir viel Zeit und Nachdenken erspart. Danke! Anmerken sollte man vielleicht noch, dass es laut Style Guide nicht gemacht werden sollte, weil man für den Benutzer unsichtbar neue Optionen hinzufügt. IMHO kann man aber die Ausnahme geltend machen, dass man eine kleine Liste hat und nur bei "Neu" durch den Benutzer einen Eintrag zufügt und auch gleich auf diesen Eintrag wechselt. Andersherum sollte eine Checkbox z.B. niemals eine zusätzliche Option zu einem Cycle hinzufügen oder entfernen, weil das verwirrt und der Benutzer die neue Option schlicht nicht findet. Geit [ Dieser Beitrag wurde von geit am 15.09.2006 um 12:11 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2006-09-15, 14:03 h Holger Posts: 8116 User |
Zitat:Ich denke, da kann man die gleiche Ausnahme anbringen, die Du vorher genannt hast. Wenn es nur genau eine neue Option gibt, und diese nicht nur hinzugefügt, sondern auch sofort ausgewählt wird, ist sie auch sichtbar. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-09-16, 13:35 h geit Posts: 332 [Former member] |
Zitat: Das stimmt natürlich. Kritisch wird es in jedem Fall beim Weglassen. Bei einer Listenersetzenden Funktion des Cycles hat der Nutzer meistens "entfernen" oder so gedrückt, aber bei dem CheckBox->Cycle Beispiel hat man nicht nur das Problem, das die Option unsichtbar entfernt wird, sondern auch noch, dass das Programm eine Option für den Benutzer wählen muß, wenn die zu entfernende Option gerade angewählt war. Generell sollte man sehr vorsichtig sein, um nicht "unverständlich" zu werden. Wenn man z.B. aus dem Cycle "Tiere", den "Elefanten" rausnimmt, dann kann man im Cycle "Besonderheiten" auch den "Rüssel" rausnehmen, wenn in "Tier" nicht noch z.b. "Ameisenbär" drin steht. Den Zusammenhang kennt eben jeder. Sobald man aber exotischere Tiere nimmt, die man nicht unbedingt genau kennt, oder die einen sogenannten Rüssel haben, der aber nicht im Ansatz dem eines Elefanten ähnelt, wird es wieder kompliziert. Geit [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > MUI Cycle Object: Einträge hinzufügen | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |