Dll İçerisinden Dinamik Menü Oluşturmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Dll İçerisinden Dinamik Menü Oluşturmak

Mesaj gönderen feinpus »

Hekese selamlar ben bir fonksiyon hazırladım fakat bir yerinde takıldım bi kontrol ederseniz sevinirim.

Kod: Tümünü seç

procedure menu;
var
    menu : TMainMenu;
    Item: TMenuItem;
 begin

   menu := TMainMenu.Create(Application.MainForm);

   Item := TMenuItem.Create(menu);
   Item.Caption := 'menüm --1';
   menu.Items.Add(Item);

   Item := TMenuItem.Create(menu);
   Item.Caption := 'menüm --2';
   menu.Items.Add(Item);

 end;
//Bu procedur bir dll dosyası içerisinde ve bu dll i açan program ana form içinde bir menü oluşturacak ancak henüz belli olmayan bir formu göstermeyi beceremedim.

Enson geldiğim nokta

Application.MainForm ile çalıştığı programın ana formunu bulmaya çalıştım ancak çalışmadı bu konuda sizden yardım istiyorum aklıma başka bir yöntem gelmiyor şimdilik.
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Denemedim ama procedure yerine function kullansan geriye tmainmenu gonderen bir function

Kod: Tümünü seç

 Function AnaMenuGetir:TMainMenuı;
gibi
prgramda da

Kod: Tümünü seç

 form1.mainmenu:=anamenugetir;
gibi
bişey olabilir sanırım.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

işte sorun yazdığım procedur'ün programdan bağımsız olması lazım bu nedenle form1.mainmenu gibisinden koda başlayamam.

Zaten programda 1 tane menu olacak bu nedenle programın içerisindeki menuyü tespit ettrip bunun içine item eklemem gerek.

program içine yazınca oluyor --> application.mainform.menu

ama dll içindeyken programa yüklendiğinde hata veriyor...
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

sanırım anlatamadım.
yazdığın procedureyi geriye menu döndüren bir function yap.
dll de menunu olustur.
en somada

Kod: Tümünü seç

result:=menu;
//menu senin değişkenin.
programdan da o functionu kullanarak formun menusunu cagir.
dll

Kod: Tümünü seç

function menu:tmainmenu;
var
    menu : TMainMenu;
    Item: TMenuItem;
 begin

   menu := TMainMenu.Create(Application.MainForm);

   Item := TMenuItem.Create(menu);
   Item.Caption := 'menüm --1';
   menu.Items.Add(Item);

   Item := TMenuItem.Create(menu);
   Item.Caption := 'menüm --2';
   menu.Items.Add(Item);
  result:=menu;/////////////
 end; 
Programdadanda

Kod: Tümünü seç

 form1.mainmenu:=menu;
şeklinde ......
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

bu işlemedi ayrıca hatırlatayım program derlenirken ne isimde kaçtane dll dosyası olacağını bilmiyoruz.

dll klasörünün içindeki tüm dll'leri progam çalıştıktan sonra yükleyeccek ve dll'ler yüklendiğinde hepsinin içinde olacak olan menu function'u çalışacak ve programda ana formdaki menünün içerisine eleman ekleyecek.

bu sebeple dll içindeki bir function'u ne tanımlaya bilirim ne de parametre gönderebilirim program içerisinden.
Oldeye Software
http://www.oldeye.com
Cevapla