Citat:
Delphi streaming sistem kod učitavanja pravi fixup listu referenci na metode i druge klase, tek kada se završi kompletno kreiranje svih komponenti, prelazi se na fixup listu i onda se radi resolving referenci
Posle malo(vise) igranja dosao sam do istog zakljucka, da radi u dva prolaza... U svakom slucaju delimicno sam resio problem. Stvar je bila u tome da sam hteo da napravim da SetImages i SetImageIndex moje kontrole oboje pozivaju UpdateImage proceduru koja dodeljuje image kombinacijom ta dva polja, greska je bila u tome da je taj UpdateImage modifikovao FImageIndex tj. stavljao ga na -1 ako je ImageIndex=nil, i obratno.
Nego kada ste vec raspolozeni za odgovaranje, jos par pitanja u vezi streaminga komponenti...
1. What's the deal sa TBitmap objektima u DFM-u? Kada napravim TBitmap property u svojoj kontroli, SetBitmap u FormDesigneru lepo odradi posao i dodeli TBitmap objekat mom property-u (SetBitmap(Val: TBitmap) if not nil then FBitmap.Assign(Val)...), ali se prilikom startovanja aplikacije SetBitmap uopste ne opali iako se slika uredno nadje u FBitmap polju. U DFM-u se slika nalazi u Data=... sekciji ali nemam SetBitmap da bih nesto jos uradio sa tom slikom kakda se dodeli... Onda moram neke budzeve tipa UpdateComponents na pocetku aplikacije (uzas...) Znam da TBimap je TPersistent, nije valjda da component streamer puni TPersistent direktno, preko pointera?!
(EDIT: Nisam video Milosev post za Loaded metod. Hvala Milose, ako to radi onda je to resenje i za ovaj i za prvobitni problem)
2. Kako da nateram FormDesigner da snima property-e podkontrola moje kontrole. Naime, imam svoj TPanel descendant koji izmadju ostalog ima i jedan TButton sa uredno postavljenim published Button: TButton read FButton; E sada, u FormDesigner-u mogu da menjam taj Button, ali se nijedna promena ne snima. Owner za TButton je moja kontrola... kapiram da property-je strimuje owner komponenta, i kada promenim ownera buttona na TMojaKontrola.Owner, onda se promene snimaju, ali se cudne stvari desavaju (sto je savrseno normalno, u tom slucaju TForm kreira moju kontrolu koja "vestacki" ubacuje jos jedan Button u TForm, onda posle svakog ucitavanja forme broj Button kontrola se udvostrucuje jer ih kreira i TForm i moja kontrola...). Ima li neki sistem da nateram svoju kontrolu da strimuje i svoje podkontrole kada njen owner hoce da je snimi u DFM?