Arsip: tanya tentang dll

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

more 17 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
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
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 5 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
- Mas SIMBA help me About Lazarus+Firebird :)
by lord_kimm in Enginering more 18 years ago - Sapa yang pake batik hari ini..
by yayaretina in OOT more 15 years ago - Menampilkan Log PABX ke dalam Tabel
by s0t4 in Tip n Trik Pemrograman more 14 years ago - Pemilihan rute perjalanan
by ir1keren in Bedah Kasus more 15 years ago - Input Data MS SQL via Form??
by ibiz in MsSQL more 18 years ago - ENCRYPT KODE PASSWORD
by rusli_chow in Tip n Trik Pemrograman more 17 years ago - edit registry (butuh mendadak - skripsi)
by gatotkaca in Tip n Trik Pemrograman more 16 years ago - Find Nearest di mySQL ???
by BorlandMania in MySQL more 17 years ago - koneksi delphi di win 7 ke mysql di ubuntu
by rianhidayat in MySQL more 12 years ago - Stored procedure di mySQL
by belva in MySQL more 18 years ago