|
Menambahkan
form pada DLL
Dynamic
Link Library atau DLL merupakan file yang berisi
rutin (procedure dan function) yang dapat dipanggil
dari file EXE maupun dari file DLL lain. Dengan
meletakkan rutin-rutin pada file DLL (terpisah
dari file EXE) maka terdapat beberapa keuntungan.
Pertama, rutin-rutin yang bersifat umum dapat
dipakai oleh beberapa aplikasi pada saat yang
bersamaan dan hanya diperlukan satu copy di memory
atau disk. Anda dapat mengatur supaya rutin-rutin
yang terdapat pada DLL tersebut dimuat ke memory
hanya saat diperlukan saja. Jika tidak diperlukan
maka DLL tersebut dapat dibuang dari memory. Dengan
demikian aplikasi yang Anda buat dapat lebih menghemat
penggunaan memory.
Keuntungan kedua, aplikasi menjadi bersifat modular.
Anda dapat melakukan update aplikasi yang Anda
buat tanpa harus mengupdate file EXE. Dengan demikian
Anda cukup menyertakan patches kepada program
Anda tanpa Anda harus menyertakan seluaruh aplikasi.
Keuntungan lain adalah ukuran file EXE menjadi
lebih kecil karena beberapa kode program diletakkan
pada file DLL.
Membuat
file DLL
Untuk membuat
file DLL, caranya pilih menu File | New | DLL.
Anda dapat menyimpan project tersebut dengan ProyekDLL.dpr.
Pada code
editor dapat Anda perhatikan pada bagian paling
atas terdapat klausa library. Hal ini menandakan
bahwa proyek yang sedang dibuat adalah proyek
file DLL. Selanjutnya tambahkan form dari menu
File | New Form. Form tersebut harus ditambahkan
ke dalam project, yaitu dengan memilih menu Projet
| Add to Project dan pilih file unit dari Form
(pada contoh ini adalah FormDLL.pas). Contoh DLL
ini mempunyai dua method (satu procedure dan satu
function) yang berfungsi untuk menampilkan form.
Satu menggunakan Show dan satunya lagi menggunakan
ShowModal.
procedure
ShowFormDLL;stdcall;
begin
frmFormDLL :=TfrmFormDLL.Create(nil);
frmFormDLL.Show;
end;
Prosedur
di atas, pertama kali akan membuat form. Parameter
nil digunakan, karena kita tidak mengetahui siapa
pemilik (owner) formnya. Selanjutnya form yang
baru dibuat tersebut akan ditampilkan dengan menggunakan
method Show.
Untuk menampilkan form secara modal caranya sedikit
berbeda.
function
ShowFormDLLModal:integer;stdcall;
begin
frmFormDLL := TfrmFormDLL.Create(nil);
Result := frmFormDLL.ShowModal;
end;
Perbedaan
antara kode di atas dan kode sebelumnya adalah,
bahwa kode di atas adalah function, sedangkan
kode sebelumnya adalah procedure, kode di atas
menggunakan ShowModal sedangkan kode sebelumnya
menggunakan Show. Dengan menggunakan ShowModal
Anda dapat mengetahui modal result dari form.
Pada kedua kode tersebut kita membuat form tapi
tanpa pernah melakukan destroy, yang bisa mengakibatkan
pemborosan memory (leaking memory). Oleh karena
itu Anda perlu melakukan destroy pada form. Salah
satu cara termudah adalah dengan menggunakan event
OnClose dari form dan mengeset TCloseAction menjadi
caFree.
procedure
TfrmFormDLL.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
Action := caFree;
end;
Langkah
terakhir adalah melakukan eksport procedure ShowFormDLL
dan function ShowFormDLLModal di atas sehingga
dapat digunakan atau dipanggil oleh program lain.
Exports
ShowFormDLL,
ShowFormDLLModal;
begin
end.
Untuk membuat
kode di atas menjadi file DLL Anda dapat memilih
menu Project | Build.
|