amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Reaction GUI - seltsamer Crash [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

08.01.2004, 14:24 Uhr

_PAB_
Posts: 3016
Nutzer
Kann mir jemand einen Tip geben, warum mein selbstentwickeltes GUI beim "Dispose" einen Absturz verursacht (erst mehrere "recoverable Alerts" #0100 000x dann noch ein "Software Failure" #8000 000x) ?
Ist ansich nichts besonderes nur ein wenig komplexeres GUI als das ReactionDemo, was ich mal aus einem Workshop hatte - dieses stürzt aber zB. nicht ab (gleicher Compiler).
Irgendwelche Ideen ?
Ich habe ein paar Layouts, Textfelder, Buttons... das wars.

[ - Antworten - Zitieren - Direktlink - ]

08.01.2004, 15:15 Uhr

_PAB_
Posts: 3016
Nutzer
Hmm, da sucht man Stunden und Tage und debuggt und postet schließlich aus aller Verzeiflung ins Forum und 50 min. später findet man es selbst... aber falls jemand dieses Problem auch mal hat und im Forum sucht, hier noch der Grund für dieses Problem:
Der Absturz beim disposen eines Reaction-GUI kann durch doppelt vergebene Komponenten hervorgerufen werden. Beispiel: ich habe eine Funktion getXYLayout, die mir ein Layout mit einigen Elementen liefert und diese habe ich zweimal als Child geadded, obwohl die get-Funktion nur einen Pointer auf dassselbe Layout liefert, also versucht dispose dieses Layout zweimal zu disposen => Absturz wegen Speicherzugriffsverletzung.

[ - Antworten - Zitieren - Direktlink - ]

08.01.2004, 18:10 Uhr

_PAB_
Posts: 3016
Nutzer
Und gleich noch die nächste Seltsamkeit bei Reaction:

Wenn man ein CHILD_WeightedHeight oder CHILD_WeightedWidth macht und es will einfach nicht funktionieren, dann hat man vermutlich zwei SetGadgetAttrs-Aufrufe gemacht statt einen.

Beispiel: läuft so nicht !
SetGadgetAttrs (myLayout, NULL, NULL, LAYOUT_AddChild, myObject, TAG_END);
SetGadgetAttrs (myLayout, NULL, NULL, CHILD_WeightedWidth, 3, TAG_END);

Beispiel: so gehts !
SetGadgetAttrs (myLayout, NULL, NULL, LAYOUT_AddChild, myObject, CHILD_WeightedWidth, 3, TAG_END);

Nun, vielleicht bin ich der Einzige, dem das nicht klar war, aber vielleicht hilfts ja mal jemanden.

[ - Antworten - Zitieren - Direktlink - ]

08.01.2004, 21:11 Uhr

Mazze
Posts: 263
Nutzer
Child-Attribute sind Attribute des Layout-Gadgets, beeinflußen aber das aktive Gadget. Das aktive Objekt ist das unmittelbar zuvor erzeugte Objekt. Beispiel (aus dem Gedächtnis):

code:
Layout_AddChild, LayoutObject,
  Layout_Addchild, ButtonObject,
     GA_Text, "OK",
  ButtonEnd,
  Child_Weighted_Width, 30,  // wirkt auf OK-Button
  Layout_Addchild, ButtonObject,
    GA_Text, "Cancel",
  ButtonEnd,
  Child_Weighted_Width, 30, // wirkt auf Cancel-Button
LayoutEnd,
Child_Weighted_Width,45, // wirkt auf Layout


Zitat:
Beispiel: läuft so nicht !
SetGadgetAttrs (myLayout, NULL, NULL, LAYOUT_AddChild, myObject, TAG_END);
SetGadgetAttrs (myLayout, NULL, NULL, CHILD_WeightedWidth, 3, TAG_END);


Hier weiß das Layout nicht, welches Objekt es verändern soll.

Zitat:
Beispiel: so gehts !
SetGadgetAttrs (myLayout, NULL, NULL, LAYOUT_AddChild, myObject, CHILD_WeightedWidth, 3, TAG_END);


Nach Add_Child, myObject ist myObject das aktive Objekt und wird durch WeightedWidth geändert.

[ Dieser Beitrag wurde von Mazze am 08.01.2004 editiert. ]

[ Dieser Beitrag wurde von Mazze am 08.01.2004 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

10.01.2004, 14:39 Uhr

_PAB_
Posts: 3016
Nutzer
Zitat:
Original von Mazze:
[...] Das aktive Objekt ist das unmittelbar zuvor erzeugte Objekt [...}


Nun, für mich hieß das rein intuitiv, daß wohl
code:
SetGadgetAttrs (myLayout, NULL, NULL, LAYOUT_AddChild, myObject, TAG_END);
SetGadgetAttrs (myLayout, NULL, NULL, CHILD_WeightedWidth, 3, TAG_END);

auch hätte gehen sollen. Das myLayout kann sich doch myObject irgendwie "merken", aber wie ich ja schon geschrieben habe geht das offenbar nicht.

[ Dieser Beitrag wurde von _PAB_ am 10.01.2004 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Reaction GUI - seltsamer Crash [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2025 by amiga-news.de - alle Rechte vorbehalten.
.