HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Tetszőleges TFrame objektum tárolása DLL-ben


Példaprogram letöltése

7113 bájt

A Frame-ek használata a Delphi-ben a komponensfejlesztés egyik formája. A Frame-ek kódját ugyanúgy készíthetjük el, mintha csak egy egyszerű Form-ot készítenénk. A különbség csak annyi, hogy Frame-t akkor használunk, ha a létrehozott elemet több helyen is fel szeretnénk használni, akár egy Form részeként is. Ebben a példában azt vizsgáljuk meg, hogy hogyan tudunk egy általunk elkészített Frame-et DLL-ben tárolni, és azt programból felhasználni.

A példaprogram kipróbálásához az alábbi lépéseket kell megtennie:
1. Nyissa meg a FrameDLL.dpr project-et, és fordítsa le (Ctrl+F9)
2. Nyissa meg a Project1.drp project-et, és futtassa.
A megoldáshoz hozzunk létre egy DLL project-et, majd egy új Frame unit-ot. Készítsük el a Frame kódját. Lehetőleg olyan Frame-t készítsünk, amely önállóan képes működni, tehát a meghívó programból nem kell módosítani a komponensek property-jeit. Persze ez sem lehetetlen, két lehetőségi is van erre. Az első a Frame-t tartalmazó unit felhasználása a hívó programban. Ebben az esetben viszont nincs szükség DLL-re, tehát ezt el is vethetjük. A másik megoldás, hogy a Frame objektummal, hasonlóan az ablakokhoz, üzenetekkel kommunikálunk. Ehhez saját üzeneteket kell kidolgozni, és a Frame üzenetkezelő eljárását felülírni (WndProc). Az üzeneteket egy külön unit-ban érdemes megadni, amit azután publikálhatunk a DLL-el együtt.
A DLL-ben nem hozunk létre objektumot a Frame-ből, viszont azt lehetővé tesszük egy függvény segítségével, hogy a hívó alkalmazás bármennyi példányt létrehozhasson belőle.
Ez a függvény lesz a CreateFrame, amit exportálnunk kell ahhoz, hogy a hívó programok is láthassák. A függvény két paraméterrel rendelkezik:
AppHandle: THandle;
Ebben a paraméterben kell megadni az alkalmazás azonosítóját (Application.Handle). Erre a Frame létrehozásakor lesz szükség, ez lesz ugyanis a Create metódus paramétere, vagyis az Owner. Az Owner-nek kell gondoskodnia a létrehozott objektum felszabadításáról.
FrameParent: THandle;
Ebben a paraméterben kell megadnunk a Frame szülő objektumának leíróját, vagyis azt az objektumot, amin belül a Frame-t el akarjuk helyezni (pl. Form, Panel, stb.).
Fontos, hogy a Frame nevét töröljük (Name property), különben nem tudunk belőle több példányt is létrehozni. A nevet törölhetjük szerkesztési időben az Object Inspector-ban is, de megtehetjük futási időben az objektum létrehozásakor.
A CreateFrame függvény a létrehozott TFrame objektummal tér vissza. A TFrame osztály a Frame ős osztálya, ezért ezen keresztül nem fogjuk közvetlenül elérni a Frame-en létrehozott komponenseket és metódusokat.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 300. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |