Çalışma esnasında Main Menu oluşturma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozz_deniz
Üye
Mesajlar: 39
Kayıt: 16 Ağu 2003 11:32
Konum: Antalya

Çalışma esnasında Main Menu oluşturma

Mesaj gönderen ozz_deniz »

Herkese Merhaba;

Basitçe programın çalışma esnasında bir main menu ve içine de menu elemanları oluşturmaya çalışıyorum,
Herhangi bir hata almıyorum,
Yalnız programı çalıştırdığımda sub menu lerin gözükmediğini görüyorum.

MenuItem ler gözüküyor, SubMenuItem ler gözükmüyor.

Delphi7, WinXP platformunda çalışıyorum.

Teşekkürler, Saygılar

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure MyMenuClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses DateUtils;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var mm : TMainMenu;
    MyMenuItem : TMenuItem;
    MySubMenuItem : TMenuItem;
    i : integer;
begin
  //ana menuyu olsutur
  mm := TMainMenu.Create(Self);

  for i := 0 to 9 do
  begin
    //ust menu elemanı olustur
    MyMenuItem := TMenuItem.Create(Self);
    MyMenuItem.Caption := 'ana' + IntToStr(i);
    MyMenuItem.Name := 'ana' + IntToStr(i);
    MyMenuItem.Tag := i;
    MyMenuItem.OnClick := MyMenuClick;

    //alt menu elemanı olustur
    MySubMenuItem := TMenuItem.Create(Self);
    MySubMenuItem.Caption := 'yavru' + IntToStr(i);
    MySubMenuItem.Name := 'yavru' + IntToStr(i);
    MySubMenuItem.Tag := i;
    MySubMenuItem.OnClick := MyMenuClick;

    //alt menu elemanını üst menu elemanına ekle
    MyMenuItem.Add(MySubMenuItem);

    //ust menu elemanını ana menuye ekle
    mm.Items.Add(MyMenuItem);
  end;
end;

procedure TForm1.MyMenuClick(Sender: TObject);
begin
  With sender as TMenuItem do
    begin
      ShowMessage(ClassName);
      ShowMessage(name);
      ShowMessage(IntToStr(Tag));
    end;
end;
end.
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Çalışma esnasında Main Menu oluşturma

Mesaj gönderen akdatilla »

Merhaba
Menu seçeneği eklemek için şu yontemi kullanabilirsin:

Kod: Tümünü seç

Var
NItm,NSubItm: TMenuItem;
begin
        NItm:=NewItem('Menü Seçeneği 1',TextToShortCut(''),False,True,
        Nil,0,'MenuSec1');
       MainMenu1.Items.Add(NItm); //Bu ana menuye bir seçenek ekler
       NSubItm:=NewItem('Alt Menu Seçeneği,TextToShortCut(''),False,True,
       NSubItmClick,0,'AltMenu1');
       NItm.Add(NSubItm); //Bir önce bahsi geçen menu seçeneğinin altına eklendi
ozz_deniz
Üye
Mesajlar: 39
Kayıt: 16 Ağu 2003 11:32
Konum: Antalya

Re: Çalışma esnasında Main Menu oluşturma

Mesaj gönderen ozz_deniz »

Üstat, çok teşekkür ederim, verdiğin kod çalıştı.
Cevapla