Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
9. Feb 2007
Ja das hatte ich wieder als "Workaround" auch schon im Sinn. Der Owner ist ja meines Wissens nach eine Read-Only-Eigenschaft. Ich müsste den dann also explizit nochmal schreiben (obwohl allein durch die Dateistruktur ja schon klar ist, welche Komponente zu wem gehört) und dann mit der Methode "InsertComponent" arbeiten. Also erst laden, dann schauen welcher Owner in der Datei-Property steht, und...
Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
9. Feb 2007
An GetChildren lag es nicht. Das Problem habe ich dadurch gelöst, dass ich in "DefineProperties" eine Anweisung "DefineProperty(...)" hatte, die den gleichen Namen definierte, wie schon im interface Teil eine property hieß.
Ich hatte also eine property priceMasterFS und habe dann in DefineProperties "DefineProperty('priceMasterFS', ...) stehen gehabt. Als ich das durch reinen Zufall auf...
Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
8. Feb 2007
Ich weine gleich :(
VIelen Dank für eure Hilfe. Das mit dem GetChildren klappt wunderbar. Jetzt tritt aber das nächste Problem auf.
Er schreibt nun alle Eigenschaften ordentlich in den Stream. Dann will ich sie wieder lesen und bekomme die Meldung "EReadError - Fehler beim Lesen von Neu5.priceMasterFS: Ungültiger Eigenschaftswert"
:(
Jetzt sitze ich schon über 2 Tage an diesem...
Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
7. Feb 2007
Also haltet mich für dumm oder so, aber ehrlich gesagt habe ich auch nicht so richtig Ahnung, was ich mit dem Parameter Proc anfangen soll :( Weiß da jemand Bescheid?
Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
7. Feb 2007
Hmm, bei mir nicht direkt. Also ich meine ich wäre von WriteComponent nicht zu GetChildren gekommen und GetChildren hat auch nur bei TCustomForm eine Beschreibung. Bei TComponent taucht die Methode nichteinmal in der Liste auf.
Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
7. Feb 2007
Dann hab' ich das tatsächlich übersehen und mir die Workaround-Arbeit wahrscheinlich umsonst gemacht. Ich würde das mit dem override von GetChildren aber dennoch noch einmal probieren. Kannst du mir dazu nochmal das Hilfethema sagen, wo das stand?
Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
6. Feb 2007
Naja können wir das jetzt als Bug bezeichnen und melden es CodeGear? Ich meine, probiert das mit dem Speichern von ComponentA statt Form1 ruhig mal aus. Da wird keine Unterkomponente gespeichert, auch wenn das so in der Onlinehilfe steht. Bei Form1 werden sie aber gespeichert (dann eben nur 1 Level). Ein bissl inkonsistent ... oder ich hab' wirklich was übersehen.
Ich werd das jetzt...
Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
6. Feb 2007
Infos:
- Die ComponentA soll deshalb ein Besitzer von ComponentB sein, weil sich sozusagen um eine Komposition bzw. Aggregation handelt. Die Agenten sollen einem AgentenPool angehören. Beim starten der Tätigkeiten des jeweiligen Agentenpools braucht der dann nur noch seine Kinder durchzugehen (for COmponents) und die jeweils was machen zu lassen. Das wäre umständlicher, wenn die Agenten alle dem...
Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
6. Feb 2007
Ich habe mal ein einfachst gehaltenes Projekt mit wenigen Zeilen erstellt, welches das Problem verdeutlicht:
(siehe Anhang)
Dabei wird über den ersten Button eine Komponente created, deren Owner das Fenster ist. Der zweite Button erzeugt dann eine KOmponente, deren Owner die erste Komponente ist. Der dritte Button speichert das Ganze. Wenn ihr euch dann mal die gespeicherten Dateien anseht...
Forum: Object-Pascal / Delphi-Language
Delphi
by SMALLID,
5. Feb 2007
Update: Nur zur Info: Meine Vermutung ist vermutlich falsch ;). Es liegt an etwas anderem. Wenn ich nur eine Unterkomponente speichere (z.B. sage ich myStream.WriteComponent(AgentPool1)) werden deren Eigenschaften (eigentlich nur name und tag und sowas gespeichert, aber nicht die in "AgentPool1.Components" enthaltenen Komponenten. Die Kinder werden also einfach nicht geschrieben. Bleibt die...