DLL içerisinde frame

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
armadillo
Üye
Mesajlar: 67
Kayıt: 07 Tem 2005 01:16
Konum: Antalya

DLL içerisinde frame

Mesaj gönderen armadillo »

Selamlar Arkadaşlar
ben projemde oldukça fazla sayıda frame kullanıyorum. Bu framelerin çalışma anında ( herbiri için ayrı dosya) dll dosyasından yüklenmesini istiyorum yani dll içerisine frame gömmek ve çalışma anında gereken frame dll den yüklemek istiyorum. böylece programımda güncelleme yapacağım zaman sadece gerekli dll dosyasını güncellemeyi düşünüyorum yardımlarınız için şimdiden teşekkürler
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

normal bir uygulamada framelerini ya da formlarını tasarla. ardından bu frame'in ya da formun unitini gömmek istediğin dll içinde uses kısmına ekle. Dll içinden de frame'i gösteren bir fonksiyonu export edersen istediğin yerde kullanabilirsin. fonksiyon şunun gibi bir şey olabilir:

function ShowFrame(Parent: Handle): Handle;

kolay gelsin.
Kullanıcı avatarı
armadillo
Üye
Mesajlar: 67
Kayıt: 07 Tem 2005 01:16
Konum: Antalya

Mesaj gönderen armadillo »

Hocam ben bu işi beceremedim. :oops: örnek kod ekleyebilirsen çok sevineceğim kolay gelsin
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

s.a.

Normal bir application açtıktan sonra yeni bir frame oluştur. Ardından formuna bu frame'i ekle. Ana formun unitinin ismi Unit1 olsun, frame'in uniti de unit2 olsun diyelim. Sonra bu uygulamayı bir klasöre kaydet ve bu uygulamayı kapat. Sonra yeni bir dll uygulaması aç ve bunu ilk uygulamamızın klasörüne kaydet. Yani Unit1 ve Unit2 olan yere... Sonra dll içindeki uses bloğunun şöyle olmasını sağla:

Kod: Tümünü seç

uses
  SysUtils,
  Classes,
  Controls,
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Frame2: TFrame};
Artık gerek Form1'i gerekse de Frame2'yi kullanabilirsin. Sonra aşağıdaki gibi bir fonksiyon yaz:

Kod: Tümünü seç

 function ShowFrame(Parent: TWinControl): TFrame; export;
  var
    Frame2: TFrame2;
  begin
    Frame2 := TFrame2.Create(Parent);
    Frame2.Parent := Parent;
    Result := Frame2;
  end;

exports
  ShowFrame;
Yani mantık bunun gibi bir şey. Sen bunu kendi uygulaman için uyarlayabilirsin. Frame, Form ya da herhangi bir kontrol nesnesi bu şekilde dll'den çağrılabilir. Ha bu dll'i nasıl çağıracaksınız? O da şöyle bir şey olabilir.

Kod: Tümünü seç

function ShowFrame(Parent: TWinControl): TFrame; external "project2.dll";

.....

NewFrame := ShowFrame(Form1);
gibi..

vesselam.
Kullanıcı avatarı
armadillo
Üye
Mesajlar: 67
Kayıt: 07 Tem 2005 01:16
Konum: Antalya

Mesaj gönderen armadillo »

hocam emeğine sağlık çok teşekkür ederim kolay gelsin 8)
Cevapla