Fórum Destruir MenuItem em Runtime #352536
26/01/2008
0
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
Curtir tópico
+ 0Posts
26/01/2008
Dbergkamps10
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
Gostei + 0
27/01/2008
Dbergkamps10
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
Gostei + 0
27/01/2008
Dbergkamps10
Gostei + 0
27/01/2008
Dbergkamps10
consegui! tirei a procedure do onclose e colquei no ondeactivate. Funfou blz.
obrigado a todos.
att
Dalton
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)