Delphi 2006 Remote Data Module

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Delphi 2006 Remote Data Module

Mesaj gönderen delphist »

S.a. Arkadaşlar. Bir projem var ve bu projemde modüller için dll ler kullanıyorum. Remote Data Module diye bir şey var...Tüm projede dll lerin sadece bir Datamodule bağlanması gibi bir şey söz konusumu...Var ise yolu nedir nasıl yapılabilir. Örnekleri mevcutsa nasıl ulaşabilirim. Yardımcı olursanız çok sevinirim.

İyi Çalışmalar
Kullanıcı avatarı
y_tatar
Üye
Mesajlar: 24
Kayıt: 28 Haz 2005 03:32
Konum: Ankara
İletişim:

Mesaj gönderen y_tatar »

evet bu mümkün dll in içine parametre olarak Datanesi ve oturumu taşıyarak diger dll lerde aynı data bağlantısını kullan bilirsin

Örnek Olarak şöyle yapa bilrisin

Kod: Tümünü seç

  T_dllyukle  = procedure (ParentApplication: TApplication;Database:TIBDatabase;Transaction: TIBTransaction);  stdcall;
Kolay gelsin
“Kolaylaştırın, zorlaştırmayın, müjdeleyin, nefret ettirmeyin.”
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

s.a y tatar hocam biraz daha açabilirmisin mümkünse bu benim için çok gerekli eğer bir örnek yazabilirsen tam olarak memnun olurum. İyi Çalışmalar
Kullanıcı avatarı
y_tatar
Üye
Mesajlar: 24
Kayıt: 28 Haz 2005 03:32
Konum: Ankara
İletişim:

Mesaj gönderen y_tatar »

Ana uygulamaya

Kod: Tümünü seç

type
  TShowFrm = procedure(App: TApplication; Scr:TScreen; Database: TDatabase; S:TSession); stdcall;

  private
    hInstance: THandle;
    { Private declarations }


procedure TForm1.Subeler1Click(Sender: TObject);
var
   AFunc: Pointer;
begin
 if hInstance=0 Then
      hInstance := SafeLoadLibrary('Mydll.dll', SEM_NOOPENFILEERRORBOX);
   try
      Pointer(AFunc) := GetProcAddress(hInstance, PChar ('ShowFrm'));
      TShowFrm(AFunc)(Application, Screen, Database,Session);
      {Open the child form}
   except
      on e: exception do ShowMessage(e.Message);
   end;
end;
dll ede ise

Kod: Tümünü seç

ibrary mydll;

uses
  SysUtils,  Classes,  Forms,  Windows,  Dialogs,  DBTables,
  MyForm in 'MyForm.pas' {Form2},

{$R *.res}
var
   AppDLL: TApplication;
   ScrDLL: TScreen;
   Databs: TDatabase;

   procedure MyDLLProc(Reason: Integer);
   begin
      try
         if Reason = DLL_PROCESS_DETACH then
         begin
            Application := AppDLL;
            Screen := ScrDLL;
         end;
      except
         on e: exception do ShowMessage(e.Message);
      end;
   end;

   procedure ShowFrm(App:TApplication; Scr: TScreen; Database: TDatabase; S:TSession); stdcall;
   begin
      Application := App;
      Screen := Scr;
      Databs := Database;
      Session:=s;
         App.CreateForm(TForm2, Form2);
         Form2.TTanimlar.DatabaseName:=Databs.DatabaseName; 
         Form2.Show;
        End;
   end;

exports
   ShowFrm;

begin
   try
      AppDLL := Application;
      ScrDLL := Screen;
      DLLProc := @MyDLLProc;
   except
      on e: exception do ShowMessage(e.Message);
   end;
end.
“Kolaylaştırın, zorlaştırmayın, müjdeleyin, nefret ettirmeyin.”
Cevapla