Normal bir formu kolay yoldan DLL e donuştürm

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
athena
Üye
Mesajlar: 92
Kayıt: 20 Eyl 2003 06:32
Konum: Antalya
İletişim:

Normal bir formu kolay yoldan DLL e donuştürm

Mesaj gönderen athena »

İçerisinde normal form olan bir projeyi DLL 'e nasıl dönüştürebiliriz.

Bununla ilgili böyle bir seyin olabildiğine dair bir bilgi aldım. Ama tam olarak nasıl yapıldığı hakkında bir bilgi sahibi olamadım.

Yardımcı olabilecek arkadaşlara şimdiden teşekürler.

Saygılarımla,
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

Yapmak istediğin dll içinden form çağırmaksa ilk olarak bir dll projesi aç daha sonra içine form ekle düzenle falan filan derle.

Daha sonra yaptığın başka bir projeden bu formu çağırabilirsin.
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

bu soru icin bir dll hazırladım
uses listesine bir form dahil ettim
kodlar asagıda

Kod: Tümünü seç

library dllform;

uses
  SysUtils, Classes,ShareMem,
  myform in 'myform.pas' {FrmMain};

{$R *.RES}

procedure CallForm;stdcall;
begin
  FrmMain:= TFrmMain.Create(nil);
  with FrmMain do
  try
    ShowModal;
  finally
    Free;
  end;
end;

exports
  CallForm;

begin
end.
bunu build edince FormDll diyee bir dll elde ediyoruz..
kullanımı icin soyle bir uygulama yaptım
form uzerine bir buton koydum

Kod: Tümünü seç

unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TFrmMain = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;

procedure CallForm; stdcall; external 'DllForm.dll';

implementation

{$R *.DFM}

procedure TFrmMain.Button1Click(Sender: TObject);
begin
  CallForm;
end;

end.
butona basınca dll deki form cagrılıyor
ama programı kapatınca accessviolation veriyor
daha dogrusu hata mesajından w2000 de kaptmak ta mumkun olmuyor
acaba gozumden kacan bir sey mi var?

DÜZELTME....
dll kodunda ShareMem i kaldırınca sorun yok
acaba bir parametre aktarımı yapmadıgım halde bu uniti dahil ettigimden mi hata veriyor du?
yoksa onceki kullandıklarımda bu unit vardı ve eger bir deger donduruyor iseniz kullanmak gerekiyordu diye biliyorum :roll:
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla