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 3 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 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
- Pencarian Tanggal
by galih in Tip n Trik Pemrograman more 17 years ago - sub record DBGrid1 terdapat dalam DBGrid2
by yanuar1087 in Hal umum tentang Pascal Indonesia more 12 years ago - JOIN 3 TABEL
by maskaes in Lain-lain more 13 years ago - Help gemana buat News Tricker di desktop :)
by nandoaja in Tip n Trik Pemrograman more 17 years ago - Form ajaib
by EkoIndri in Form Enhancement & Graphical Controls more 18 years ago - Delphi 2006 - Firebird (for PDA)
by rendzecutive in FireBird more 15 years ago - Pindah Ke edit lain jika di enter
by listia in Hal umum tentang Pascal Indonesia more 17 years ago - Dumping MySQL
by n3o_cybertech in MySQL more 16 years ago - Mega Bazzaaarrr JHCC
by gust4m4n in OOT more 17 years ago - FreePascal dan Lazarus
by simba in onLinux more 18 years ago