[ itf @ 11.05.2006. 11:36 ] @
U BCB 6 napravim komponentu (iz TComponent klase), i kad ju želim instalirati kreiram paket (BPL). Zanima me, da li je moguće tu komponentu prebaciti u DLL tako da taj DLL mogu registrirati (regsvr32)? Poanta je da želim te komponente moći koristiti i izvan BCB-a. Hvala
[ kiklop74 @ 11.05.2006. 18:59 ] @
To znachi da treba da napravish activex kontrolu.

Evo kako to uraditi:

0. Proveri da li je tvoj komponenta instalirana u BCB kako treba
1. Napravi novi projekat tipa ActiveX library.
2. Zatim ne zatvarajuci ga dodaj novu activex control iz istog dijaloga
3. Izaberi tvoju kontrolu iz liste ponudjenih koju activex treba da nasledi i klikni na ok

To je to. Snimi i iskompajliraj. Dobices ocx (koji mozes da preimenujes u dll - isti djavo). BTW ne zaboravi da chekiras u podesavanjima da se ne linkuje sa bpl vec da sve ulinkuje u ocx.



[ itf @ 15.05.2006. 16:46 ] @
Želiš reći da ne trebam ništa napraviti već samop Ancestor class da mi bude ta moja komponenta? Ne trebam raditi novi interface i CoClass? Isto tako, kako misliš samo promjeniti ekstenziju iz ocx u dll? To je baš potpuno ista stvar?? Mislim.... ne bi trebala biti.
[ kiklop74 @ 15.05.2006. 17:39 ] @
Citat:
itf: Želiš reći da ne trebam ništa napraviti već samop Ancestor class da mi bude ta moja komponenta?


Baš tako.

Citat:
Ne trebam raditi novi interface i CoClass?


Ne.

Citat:

Isto tako, kako misliš samo promjeniti ekstenziju iz ocx u dll? To je baš potpuno ista stvar?? Mislim.... ne bi trebala biti.


Potpuno ista stvar. Svaki in-process activex je u stvari dll koji ima 3 specijalne exportovane funkcije. Da li je ekstenzija ocx ili dll potpuno je nebitno. ocx ekstenzija je samo odluka micorosfta da nazove vizuelne kontrole drugacije. Na kraju krajeva bpl fajlovi su takodje dll-vi sa drugom ekstenzijom.

Tebi savetujem da se pozabavish citanjem o COM-u jer je tema jako kompleksna i neces dobiti previse odgovora pisuci po forumima.

http://msdn.microsoft.com/libr...activex/activex_node_entry.asp
[ itf @ 16.05.2006. 13:56 ] @
Nažalost, ovo što si mi napisao ne radi. Ne vidi ActiveX control uopće moju komponentu u Ancestor klasama. Ja sam napravio testnu komponentu TKompleksni (iz TComponent) i usješno je registriram pomoću paketa i koristim unutar BCB-a, ali ne vidi mi ju u ActiveX-u tj. u ancestor klasama... Možda zato što to nije VCL komponenta?
[ kiklop74 @ 16.05.2006. 15:02 ] @
Citat:
itf: Nažalost, ovo što si mi napisao ne radi. Ne vidi ActiveX control uopće moju komponentu u Ancestor klasama. Ja sam napravio testnu komponentu TKompleksni (iz TComponent) i usješno je registriram pomoću paketa i koristim unutar BCB-a, ali ne vidi mi ju u ActiveX-u tj. u ancestor klasama... Možda zato što to nije VCL komponenta?


Nisam obratio pažnju na taj "detalj". Dakle activex wizard može da koristi samo vizuelne kontrole tj. One bazirane na TWinControl. Za ostale nevuzelne kontrole moraš sam ručno na uradiš sve. Dakle :

0. Proveri da li je tvoj komponenta instalirana u BCB kako treba
1. Napravi novi projekat tipa ActiveX library.
2. Zatim ne zatvarajuci ga dodaj novi COM objekt iz istog dijaloga
3. Kreiraj metode koje želiš da eksportuješ u tvom interfejsu
4. Popuni kod za metode ručno itd.