News & Events
Expandir ou Comprimir menus no IntraWeb dinâmicamente
- 6 de março de 2009
- Posted by: Adriano Santos
- Category: delphi delphi tour delphi-br delphi2006 delphi2007 dicas intraweb vcl
Recentemente tive um pequeno problema ao distribuir as DLL’s do meu projeto VCL for Web (Intraweb) para meus clientes. Tenho um IWTreeView em tela que é meu menu. Volte e meia esqueço o menu expandido no Delphi e acabo compilando o projeto e enviando ao cliente. Visualmente fica bastante feio abrir a aplicação já com todos ou somente alguns menus expandidos.
O problema é que o componente não permite recolher ou expandir o TreeView diretamente no Properties Editor, pois não possui propriedade para isso. E nem tem um Auto-Colapse ou Auto-Expand para ativar ou desativar. Também não existe um método para isso, como no TreeView comum (Win32) que você pode apenas chamar os métodos FullExpand e FullCollapse.
Resolvi o problema fuçando no .DFM do formulário. Encontrei o seguinte trecho:
Items = <
item
Caption = ‘Meu Item de Menu’
Expanded = True
Font.Color = clNone
Logo percebi que na verdade o expandido ou não fica agregado ao item, portanto a resposta é bem simples. Basta fazer um loop nos itens do TreeView e desmarcar a propriedade Expanded em todos eles. Veja:
procedure FecharMenus(AMenu: TIwTreeView);
var
I: Integer;
begin
for I := 0 to AMenu.Items.Count – 1 do
AMenu.Items[I].Expanded := False;
end;
Aqui recebo o IwTreeView como parâmetro e faço o trabalho. Agora mesmo esquecendo em project design o menu expandido, não preciso me preocupar em recompilar a Dll e reenviar ao cliente.
Adriano Santos
Siga @tdevrocks no Twitter agora e fique por dentro de todas as atualizações do blog.
Siga também o autor @asrsantos
Olá Adriano, boa noite. Sabe me dizer se no IntraWeb 10 continuamos com limitações na quantidade máxima de sessões simultâneas? Eu não trabalho com IntraWeb, mas estou pesquisando uma tecnologia Web para desenvolver um sistema que possui, hoje, cerca de 600 acessos simultâneos e é feito em Delphi. É um sistema robusto.
Abraço
joabe_sousa@hotmail.com