Software > Coding
rsrc_gaddr und typ OBJECT
m0n0:
Hallo,
ich habe mal eine kleine Frage... ich kann rsrc_gaddr ja einen Typ übergeben und eine "Objekt ID"... woher sollte die Funktion nun aber wissen aus welchem Tree das Objekt meiner Begierde entspringen soll??
Ich bekomme immer ein Falsches Objekt Zurückgegeben, eines aus dem Menü... und zwar den Menüpunkt eines Acc's... das Accessory wird zwar nicht angezeigt, aber es ist einer diese Platzhalter von Resource Master.
Wenn ich die Platzhalter im Resourcemaster entferne stürzt das Programm ab, bzw. der ganze Atari.
Kann jemand dazu nähere Infos geben? Muss mann rsrc_gaddr evt. öffters aufrufen, bis man das richtige Objekt hat? Oder sowas?
Was ich halt komisch finde das die Objekt ID doppelt vergeben ist....
m0n0:
Ich verstehe zwar noch immer nicht wieso das passiert aber ich rechne mir die Adressen der Objekte nun selber aus in dem ich ObjektID * die grösse eines GEM Objekts + Startadress des Objektbaums rechne.
Aber es muss doch auch mit rsrc_gaddr gehen....
gstoll:
--- Zitat von: m0n0 am Do 15.07.2010, 00:06:41 ---Kann jemand dazu nähere Infos geben?
--- Ende Zitat ---
Was genau möchtest Du machen?
Mit rsrc_gaddr geht es nur wenn Du die tatsächliche Nummer einer bestimmten Struktur hast. Wenn Du die genau Adresse eines Objekt haben möchtest muß Du folgendes tun:
OBJECT *tree;
rsc_gaddr ( R_TREE, Nummer des Dialog, &tree);
Dann kannst Du mit
tree[Nummer des gewünschten Objekt].gewünschtes Attribut
weiter arbeiten.
Gerhard
m0n0:
--- Zitat ---Was genau möchtest Du machen?
--- Ende Zitat ---
Die Flags / andere Felder des Objektes manipulieren. Geht mit meiner oder Deiner Lösung auch.
Bzw. um das zu tun möchte ich die Adresse des Objektes ermitteln.
Ich frage mich warum man denn bei rsrc_gaddr andere Objekttypen als R_TREE angeben kann, wenn das Ergebniss das man haben möchte, eh nicht geliefert wird. D.h. das ich gebe an das ich den Typ R_OBJECT haben möchte, und zwar mit dem Index 10 (kann ich zwar nicht angeben: aber ich möchte es aus dem Tree XY)... aber was bekomme ich? Ich bekomme einen Menüpunkt aus dem Tree MENU...
Wozu ist rsrc_gaddr denn gut wenn ich es mit anderen Typen als R_TREE aufrufe?
gstoll:
--- Zitat von: m0n0 am Fr 16.07.2010, 08:41:21 ---Ich frage mich warum man denn bei rsrc_gaddr andere Objekttypen als R_TREE angeben kann, wenn das Ergebniss das man haben möchte, eh nicht geliefert wird.
--- Ende Zitat ---
Doch das bekommst Du schon nur ist Deine Eingabe falsch. Die Objektnummer die Du benutzt ist bezogen auf das Wurzelobjekt (Root, Objekt 0) des von Dir gewünschten Baumes.
Du bräuchstest die absolute Nummer. Ich kenne jetzt nur kein Resource Programm das diese ausgibt. Alle mir bekannten Programme nutzt die von mir aufgezeigte Methode. Es wird einfach nach dem laden der Datei (rsc_load) in globalen Variabeln die Adressen der einzelnen Bäume gespeichert.
--- Zitat von: m0n0 am Fr 16.07.2010, 08:41:21 ---Wozu ist rsrc_gaddr denn gut wenn ich es mit anderen Typen als R_TREE aufrufe?
--- Ende Zitat ---
Einzig für was ich es noch nutze ist um den Zeiger der freien Strings zu bekommen.
Du könntest aber bei der Kenntnis der maximal Zahl z.B. aller Objekte diese alle in einer Schleife verändern.
Gerhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln