GARANTIR DESCONTO

Fórum Destruir MenuItem em Runtime #352536

26/01/2008

0

Olá,
Estou tentando fazer um laço, para destruir um item de menu caso a condição seja satisfeita. Veja o código abaixo:
 for i:=0 to (MainMenu1.Items.Items[6].count) -1 do
  begin
  if MainMenu1.Items.Items[6].Items[i].Caption = Form.Caption then
   MainMenu1.Items.Items[6].Items[i].Destroy;
   end;

Explicando: verifico no item 6 do menu se os caption dos menus são iguais ao caption de um determinado form, se for é pra destruir. Mas nada acontece. Onde estará o erro?

Att
Dalton


Dbergkamps10

Dbergkamps10

Responder

Posts

26/01/2008

Dbergkamps10

Olá,
Consegui fazer o q tava querendo, mas neste código o Delphi, não executa a 1ª lina da proceudre. Pq?
procedure TFmPrincipal.ControlaJanela;
var
   NewItem: TMenuItem;
   i, j : integer;
begin
MainMenu1.Items.Items[6].clear; //os submenus do item 6 não são zerados
for i:= 0 to Screen.FormCount -1 do
 begin
    NewItem:=TMenuItem.Create(FmPrincipal.MainMenu1);
    FmPrincipal.MainMenu1.Items.Items[6].add(NewItem);
    NewItem.Caption:=Screen.Forms[i].Caption;
 end; 
end;

Se alguém puder ajudar, desde já agradeço

Att
Dalton


Responder

Gostei + 0

27/01/2008

Dbergkamps10

Ola, (de novo!!!!!!!!) :D

Fiz alguns ajustes no meu projeto e o código ta quase pronto.
procedure TFmPrincipal.ControlaJanela;
var
   NewItem: TMenuItem;
   i : integer;
begin
MainMenu1.Items.Items[6].clear;
  for i := 0 to (Screen.FormCount -1) do
    begin
    NewItem:=TMenuItem.Create(FmPrincipal.MainMenu1);
    NewItem.Caption:=Screen.Forms[i].Caption;
    FmPrincipal.MainMenu1.Items.Items[6].add(NewItem);
    end;
end;

O problema ta que sempre o ultimo form ainda fica com o MenuItem criado, mesmo o forma ja estando destruido. No evento de OnClose e no OnShow eu executo esta procedure. Logo só serão criados Menus de Forms que estiverem criados, mas sempre quando fecho algum form, ainda fica o menuitem criado, o q pelo laço não era pra acontecer. Alguém pode me ajudar apontando onde está o erro.

Vlw :wink: :wink: :wink: :wink: :wink:

Att
Dalton


Responder

Gostei + 0

27/01/2008

Dbergkamps10

up....


Responder

Gostei + 0

27/01/2008

Dbergkamps10

olá
consegui! tirei a procedure do onclose e colquei no ondeactivate. Funfou blz.

obrigado a todos.

att
Dalton


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar