Criar Menu via código ?

Delphi

14/07/2004

Tenho uma tabela com as descricoes dos menus que eu quero criar, peguei esse código aqui no forum, para criar menus dinamicamente, mais não estou conseguindo executalo-lo, alguém pode me dar uma maozinha ?

Olha meu código:

var
i: Integer
NovoItem : TMenuItem;
begin
ClientDataSet1.Open;
try
For I := 0 to ClientDataSet1.RecordCount - 1 do
begin
NovoItem := TMenuItem.Create(MainMenu1);
NovoItem.Caption := ClientDataSet1DESCRICAO_MENU.AsString;
MainMenu1.Items[1].Items[2].Insert(I,NovoItem);
end;
finally
NovoItem.Free;
end;

Obrigada gente !

Renata.


Renata Coimbra

Renata Coimbra

Curtidas 0

Respostas

Paulo_amorim

Paulo_amorim

14/07/2004

Olá

Que erro que dá?
Me parece normal...


Até+


GOSTEI 0
Renata Coimbra

Renata Coimbra

14/07/2004

O erro é: Menu Index out of range:

Renata


GOSTEI 0
Cabelo

Cabelo

14/07/2004

Renata..

Vc cria o mainmenu antes??

pois vc deve adicionar os Itens de menu a este mainmenu..

espero ter ajudado..

Cabelo


GOSTEI 0
Paulo_amorim

Paulo_amorim

14/07/2004

[quote:c212339d0a=´Renata Coimbra´]O erro é: Menu Index out of range:

Renata[/quote:c212339d0a]

O erro pode ser no [i:c212339d0a]Items[1].Items[2][/i:c212339d0a]... vc tem mesmo 1 nó e 2 nós, respectivamente?

Espero que ajude
Até+


GOSTEI 0
Renata Coimbra

Renata Coimbra

14/07/2004

Obrigada cabelo_uni !

Olhá só, eu tenho no meu MainMenu só a opção [Cadastros]

que é MainMenu1.Items[0]

estou tentando criar todas as opcoes de do menu cadastro assim:

var
i: Integer;
NovoItem : TMenuItem;
begin
ClientDataSet1.Open;
i := 0;
try
While not ClientDataSet1.Eof do
begin
Inc(i);
NovoItem := TMenuItem.Create(MainMenu1);
NovoItem.Caption := ClientDataSet1DESCRICAO_MENU.AsString;
MainMenu1.Items[0].Items[0].Insert(I,NovoItem);
{0 SERIA A PRIMEIRA OPCAO DO MENU Cadastro}

ClientDataSet1.Next;
end;
finally
NovoItem.Free;
end;

mais tá dando o erro que coloquei acima.

[]´s

Renata.


GOSTEI 0
Renata Coimbra

Renata Coimbra

14/07/2004

Obrigada Paulo_Amorim !

eu coloquei o código acima que estou usando, eu tenho só um nó, que a opção cadastro [0].

[]´s

Renata.


GOSTEI 0
Cabelo

Cabelo

14/07/2004

Renata, eu faço assim :

s_menu_RE := TMainMenu.Create(self);
s_menu_RE.Name := ´memRE´;
P_Cria_Items_Menu(s_menu_RE);
s_form_RE.InsertComponent(s_menu_RE);

procedure TRELATORIO.P_Cria_Items_Menu(l_menu : TMenu);
begin
if l_menu = s_menu_RE then
begin
s_menu_item_RE10000 := TMenuItem.Create(self);
with s_menu_item_RE10000 do
begin
Name := ´RE10000´;
Caption := ´Cadastros´;
end;
l_menu.Items.Add(s_menu_item_RE10000);
with s_menu_item_RE10000 do
begin
s_menu_item_RE11000 := TMenuItem.Create(self);
with s_menu_item_RE11000 do
begin
Name := ´RE11000´;
Caption := ´Cadastro 1´;
OnClick := P_RE11000Click;
end;
Add(s_menu_item_RE11000);
s_menu_item_RELINHA12000 := TMenuItem.Create(self);
with s_menu_item_RELINHA12000 do
begin
Name := ´RELINHA12000´;
Caption := ´-´;
end;
Add(s_menu_item_RELINHA12000);
s_menu_item_RE12000 := TMenuItem.Create(self);
with s_menu_item_RE12000 do
begin
Name := ´RE12000´;
Caption := ´Cadastro 2´;
OnClick := P_RE12000Click;
end;
end;

espero que ajude..

Cabelo


GOSTEI 0
Renata Coimbra

Renata Coimbra

14/07/2004

Conseguir pessoal !

Obrigada a todos

[]´s
Renata Coimbra.


GOSTEI 0
Paulo_amorim

Paulo_amorim

14/07/2004

[quote:67cc4d4aca=´Renata Coimbra´]Conseguir pessoal !

Obrigada a todos

[]´s
Renata Coimbra.[/quote:67cc4d4aca]

Olá
QUal era o erro?

Até+


GOSTEI 0
POSTAR