Arsip: tanya tentang dll
more 16 years ago
hendra_sir84
halo semua,
saya lagi bermasalah dengan DLL (library).
Masalahnya bagaimana caranya berkomunikasi antara satu DLL dengan DLL yang lain?
misalnya ada DLL "A" yang menggunakan form dimana dalam form tersebut terdapat komponen Edit1 dan Button1.
Ketika menekan Button1 akan memanggil DLL "B" yang isinya juga berupa form. Dalam form tersebut terdapat Edit2 dan Button2. Ketika user memasukkan text kedalam Edit2 dan menekan Button2 maka DLL "B" akan di free kan dan text tersebut masuk ke Edit1 pada Form didalam DLL "A".
caranya kedua DLL itu saling bertukar informasi bagaimana ya?
Tolongin dong para delphi mania.
:(
more 16 years ago
yusdi
coba konekin unitnya
...
implementation
uses U_splash,U_informasi_inventory,U_kelompok_barang,
U_supplier,U_search,U_administrasi_user,U_about,U_ubah_password,
U_transaksi_penjualan,U_laporan,U_histori,U_fastmoving,U_input_barang;
{$R *.dfm}
...
trus akses aja
form1.edit2.text:=edit2.text;
edit2.clear;
mudah2an benar
more 16 years ago
ivan_delphi7
bro @hendra_sir84,
mudah-mudahan cara berikut berguna buat anda...
Pada DLL "A" (dalam hal ini saya menggunakan Application bukan DLL, karena yang difokuskan khan pada syntax Button1-nya) syntax-nya sbb :
procedure TForm_Main_App.Button1Click(Sender: TObject);
var Hand: THandle;
Call: function(AppHandle: THandle): PChar; stdcall; {Deklarasi function pada DLL}
begin
try
Hand:=LoadLibrary(PChar(ExtractFilePath(Application.ExeName) + 'ProjectDLL.dll'));
{Path File DLL-nya, sesuaikan dengan keadaan}
if Hand = 0 then
Application.MessageBox(PChar('File "' + ExtractFilePath(Application.ExeName) + 'ProjectDLL.dll' + '" not found!'),
'Error',MB_OK or MB_ICONERROR)
else
begin
@Call:=GetProcAddress(Hand,PChar('CallForm'));
Edit1.Text:=Call(Application.Handle);
end;
finally
FreeLibrary(Hand);
end;
end;
Dan pada DLL "B" (kali ini menggunakan Project DLL) ;
1. Syntax-nya pada Project-nya sbb :
library ProjectDLL;
uses
SysUtils, Classes, Forms,
UnitDLL in 'UnitDLL.pas' {Form_in_DLL};
var
OldAppHandle: THandle;
function CallForm(AppHandle: THandle): PChar; stdcall;
begin
OldAppHandle:=Application.Handle;
Application.Handle:=AppHandle;
Application.CreateForm(TForm_in_DLL, Form_in_DLL);
with Form_in_DLL do
begin
ShowModal;
Free;
end;
Result:=varCallResult;
Application.Handle:=OldAppHandle;
end;
exports
CallForm name 'CallForm';
{$R .res}
begin
end.
2. Syntax pada Form-nya sbb :
unit UnitDLL;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm_in_DLL = class(TForm)
Button2: TButton;
Edit2: TEdit;
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_in_DLL: TForm_in_DLL;
varCallResult: PChar;
implementation
{$R .dfm}
procedure TForm_in_DLL.Button2Click(Sender: TObject);
begin
varCallResult:=PChar(Edit2.Text);
Close;
end;
procedure TForm_in_DLL.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree
end;
end.
Selanjutnya, dikembangin sendiri ya... :)
more 16 years ago
hendra_sir84
gak bisa "ivan_delphi7", malah muncul pesan error access memory.
Tolong dong gimana caranya Applikasi induk membaca data text di component TEdit di DLL "B" ?
more 16 years ago
hendra_sir84
gak bisa "ivan_delphi7", malah muncul pesan error access memory.
Tolong dong gimana caranya Applikasi induk membaca data text di component TEdit di DLL "B" ?
more 16 years ago
DelphiExpert
seperti @ivan_delphi7 bilang:
Selanjutnya, dikembangin sendiri ya...:mrgreen:
more 16 years ago
ivan_delphi7
gak bisa "ivan_delphi7", malah muncul pesan error access memory. Tolong dong gimana caranya Applikasi induk membaca data text di component TEdit di DLL "B" ?Aplikasi sederhana tersebut harusnya jalan dengan baik. Sudah di tes dulu kok sebelum di posting. Error seperti itu memang cukup sulit dideteksi, apalagi udah berkaitan dengan *.dll. Salah satu penyebabnya adalah penggunaan tipe data String dalam parameter Function atau nilai balik Function. Karena untuk menggunakan tipe data String, kamu harus menambahkan klausul
uses ShareMem;
pada unitnya.
Itulah kenapa pada program tersebut menggunakan tipe data Char.
Mungkin itu bisa menjadi salah satu peyebab Error pada progran kamu.
Coba di cek lagi ya...more ...
- Pages:
- 1
- 2
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- stop gammu.exe dgn delphi
by pai_chan in Network, Files, I/O & System more 16 years ago - scrollbox
by newbiez in Hal umum tentang Pascal Indonesia more 17 years ago - ngarahin penyimpanan ke server 2(buat nampilinnya)
by lela in Tip n Trik Pemrograman more 18 years ago - Pool: Which the best one, working using Stream or String?
by DelphiExpert in Hal umum tentang Pascal Indonesia more 17 years ago - bikin database lewat aplikasi delphi
by yayaretina in MySQL more 18 years ago - Block warna dimemo pd saat dipilih
by rlina88 in Tip n Trik Pemrograman more 17 years ago - deteksi removeable disk (flashdisk)
by asiyrob in Tip n Trik Pemrograman more 17 years ago - Print di Quick Report dari file txt
by irene in Reporting more 16 years ago - tampilan form transparan
by elektra_3328 in Hal umum tentang Pascal Indonesia more 13 years ago - Bagaimana caranya handling onpostError dengan ADO
by surip in Hal umum tentang Pascal Indonesia more 17 years ago