amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Reaction GUI - seltsamer Crash [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2004-01-08, 14:24 h

_PAB_
Posts: 3016
User
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.

[ - Answer - Quote - Direct link - ]

2004-01-08, 15:15 h

_PAB_
Posts: 3016
User
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.

[ - Answer - Quote - Direct link - ]

2004-01-08, 18:10 h

_PAB_
Posts: 3016
User
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.

[ - Answer - Quote - Direct link - ]

2004-01-08, 21:11 h

Mazze
Posts: 263
User
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. ]

[ - Answer - Quote - Direct link - ]

2004-01-10, 14:39 h

_PAB_
Posts: 3016
User
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. ]

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Reaction GUI - seltsamer Crash [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.