Arsip: tanya tentang dll

more 15 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 15 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 15 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 15 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 15 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 15 years ago
DelphiExpert
seperti @ivan_delphi7 bilang:
Selanjutnya, dikembangin sendiri ya...:mrgreen:

more 15 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 3 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 3 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 11 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 11 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 11 years ago
Random Topic
- Mau tanya kk kk?
by L1QU1D_X in Tutorial & Community Project more 16 years ago - Tanya : algoritma membuat akar pangkat ??
by whs-84 in Tip n Trik Pemrograman more 16 years ago - Button bentuk bulat
by kabuki_enemy in Tip n Trik Pemrograman more 15 years ago - naruh program dipojok kanan bawah
by imunk in Tip n Trik Pemrograman more 18 years ago - smcomponent for delphi
by yayaretina in Hal umum tentang Pascal Indonesia more 17 years ago - generate key tab
by ndak_ngudeng in Hal umum tentang Pascal Indonesia more 17 years ago - Bisakah Satu page QuickReport 4 Detail dari 4 Record?
by ncul in Reporting more 14 years ago - Mengambil kata per kata
by budi_bunga in Tip n Trik Pemrograman more 16 years ago - Apasih calo yang paling anda sukai?
by sukuguci in Bedah Kasus more 15 years ago - Dotnetnuke pake Delphi
by wongUedanTenan in Delphi.NET more 15 years ago