mainmenu caption

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

mainmenu caption

Mesaj gönderen White Rose »

S.A
Arkadaşlar mainmenu caption'unu kullanarak menuitem name'sine ulaşabilir miyiz.
menü Captionlarını ini dosyasına kaydedip bunu okutarak name'sini bulup
Click yapmam gerekiyor.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: mainmenu caption

Mesaj gönderen SimaWB »

Aşağıdaki gibi yinelemeli (recursive) bir yapı işinizi görecektir:

Kod: Tümünü seç

procedure MenuItemByCaption(mi: TMenuItem; Cap: string);
var
  i: integer;
begin
  for i := 0 to mi.Count - 1 do
  begin
    if mi[i].Caption= Cap then
      ShowMessage('Bulduuuuum :' + mi[i].Name )
    else
      MenuItemByCaption(mi[i], Cap);
  end;
end;
Şu şekilde kullanılabilir:

Kod: Tümünü seç

MenuItemByCaption(MainMenu1.Items, 'Test');
There's no place like 127.0.0.1
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: mainmenu caption

Mesaj gönderen White Rose »

arkadaşlar aşağıdaki kodla çözüm bulunmuştur

Kod: Tümünü seç

procedure TAnaform.TrwDblClick(Sender: TObject);
Var
     mMenu: TMenuItem;
     Ma:String;
     X,Y:SmallInt;
begin
     If Btn.Name=Null Then Exit;
  
     Ma:=Trw.Selected.Text; //  Trw > Treeview
     Btn.Caption:=Ma;

     For X:=0 To MainMenu.Items.Count-1 Do Begin
         mMenu:=MainMenu.Items[X].Find(Ma);
         If mMenu<>nil Then Begin
            showmessage(mMenu.Name);
            Break;
         End Else Begin;
            For Y:=0 To MainMenu.Items[X].Count-1 Do Begin
                mMenu:=MainMenu.Items[X].Items[Y].Find(Ma);
                If mMenu<>nil Then Begin
                   Showmessage(mMenu.Name);
                   Break;
                End;
            End;
         End;
     End;

end;
     
Cevapla