DLL ve Kontroller

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
razman
Üye
Mesajlar: 9
Kayıt: 01 Eki 2007 08:47

DLL ve Kontroller

Mesaj gönderen razman »

merhabalar, sorum dll ile ilgilidir.
hazırladığımız dll içerisindeki bir procedure, bu dll yi kullanacak olan formdaki bir kontrole değer aktarabilirmiyiz.
yada bir özelliğini değiştirebilirmiyiz? mesela... form1.edit1.text:='Deneme'; gibisinden....
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba,
Görsel kontrolle Handle numaraları ile ulaşabilirsiniz, iki uygulamada size ait olduğu için bu hiçte zor olmayacaktır, DLL den çalıştırdığınız procedure e değiştirmek istediğiniz controlün handle numarasınıda parametre geçerek bu işlemi yapabilirisiniz, umarım yol gösterici olur.
İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

Çok fazla birşey yapmana gerek yok.

DLL'nin uses'ına ilke önce ShareMem ekle,
Sonra formunu kullanacağın unitleride ekle.
Bu şekilde DLL içinde bu formlar tanınır olacaktır.
Fakat DLL exe'ne bağlandığında, formlarının adreslerini DLL'ye aktarman gerekli.

Bu exe olacak projenin kodu.

Kod: Tümünü seç

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

var
  Form1: TForm1;

procedure AssignForm(form1:Tform1);stdcall;
    external 'Project2.dll' name 'AssignForm';

procedure x;stdcall;
    external 'Project2.dll' name 'x';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  assignform(self);
  x;
end;
Bu DLL'Nin

Kod: Tümünü seç

uses
  ShareMem, SysUtils, unit1,
  Classes;

{$R *.res}
var
  myform:Tform1;

procedure AssignForm(form1:Tform1);stdcall;
begin
  myform := form1;
end;

procedure x;stdcall;
begin
  myform.Caption := 'Dll'den merhaba';
end;

Exports
  Assignform,
  x;
begin
end.
razman
Üye
Mesajlar: 9
Kayıt: 01 Eki 2007 08:47

Mesaj gönderen razman »

sayın, vkamadan
Görsel kontrollere Handle numaraları ile nasıl ulaşacağımı bilmiyorum açıkcası ama yinede saolasınız.
/////
undefined bey kodunuz işime yaradı. benim giremediğim ekstra kodları burda görmüş oldum. çok saolunuz.


ilginize teşekkürler.....
ibr_ozdemir
Üye
Mesajlar: 25
Kayıt: 27 Nis 2005 02:09

Mesaj gönderen ibr_ozdemir »

yalnız birşey yapamazsın : bir uygulamadaki bir kontrolü başka bir uygulamaya taşıyamazsın (mesela ilk projendeki form1 pencerendeki Panel1.parent:=Dll.Form1) bu işlemi yapamazsın çünkü her proje kendine has bir rakam tutuyor aklında ve bu gibi işlemlerde bu rakamlar sayesinde engelleniyor. başka bir yolu varsa bilmiyorum
Cevapla