ik ben bezig om een applicatie in delphi te schrijven. ik gebruik veel zelfgemaakte objecten, en een veel voorkomende structuur bij mij is deze:
er zit hier dus een object in een object. in de constructor van de parent maak ik als volgt meteen een instance van het subobject:
ik wijs dus een owner toe namelijk het eigen object. en ik wijs een parent toe, ook het eigen object.
ook geef ik het parent object een width en een height in de constructor.
mijn probleem is nu dit. als ik vanuit mijn childobject's constructor de parent aan wil spreken, dan krjig ik een runtime error. mijn progsel crashed dus. ik wil bijvoorbeeld vanuit de constructor van mijn child, de width en height overnemen van mijn parent (zonder extra argumenten in mijn constructor mee te geven). dus:
na wat debuggen kom ik steeds tot de conclusie dat de fout hem ergens in de parent/child relatie zit. de 'parent' veroorzaakt steeds een fout. ik kom er echt niet uit. ik heb ook hier op GoT al verschillende draadjes gelezen over parent/child dingen, maar daar wordt mijn probleem niet door opgelost. ook ben ik volledig op de hoogte van het verschil tussen owner en parent
. ik hoop dat ik alles duidelijk heb uitgelegd.
nogmaals, mijn probleem is dus dat ik vanuit een child geen parent aan kan spreken. heeft iemand enig idee hoe ik dit op kan lossen?
Delphi:
1
2
3
4
5
6
| TMijnObject = class mijnsubobject: TMijnanderObject; width, height: integer; constructor create(AOwner: TComponent); {hier nog veel meer properties en methodes} end; |
er zit hier dus een object in een object. in de constructor van de parent maak ik als volgt meteen een instance van het subobject:
Delphi:
1
2
3
4
5
6
7
8
| constructor TMijnObject.Create(AOwner: TComponent); begin self.Owner := AOwner; self.mijnsubobject := TMijnanderObject.Create(self); {constructor ziet er globaal hetzelfde uit als deze} self.mijnsubobject.parent := self; self.width := 200; self.height := 200; end; |
ik wijs dus een owner toe namelijk het eigen object. en ik wijs een parent toe, ook het eigen object.
ook geef ik het parent object een width en een height in de constructor.
mijn probleem is nu dit. als ik vanuit mijn childobject's constructor de parent aan wil spreken, dan krjig ik een runtime error. mijn progsel crashed dus. ik wil bijvoorbeeld vanuit de constructor van mijn child, de width en height overnemen van mijn parent (zonder extra argumenten in mijn constructor mee te geven). dus:
Delphi:
1
2
3
4
5
| TMijnanderObject.create(AOwner: TComponent); begin self.Owner := AOwner; self.width := self.parent.width; {en dit is dan de boosdoener} end; |
na wat debuggen kom ik steeds tot de conclusie dat de fout hem ergens in de parent/child relatie zit. de 'parent' veroorzaakt steeds een fout. ik kom er echt niet uit. ik heb ook hier op GoT al verschillende draadjes gelezen over parent/child dingen, maar daar wordt mijn probleem niet door opgelost. ook ben ik volledig op de hoogte van het verschil tussen owner en parent
nogmaals, mijn probleem is dus dat ik vanuit een child geen parent aan kan spreken. heeft iemand enig idee hoe ik dit op kan lossen?
Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition