Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
netoferreira Novato
Registrado: Sexta-Feira, 19 de Dezembro de 2014 Mensagens: 77 Localização: Macapá - AP
|
Enviada: Sáb Jan 08, 2022 6:31 pm Assunto: [RESOLVIDO] Popular Treeview com ActionList |
|
|
Estou criando um menu com um Treeview e pretendo popular com as actions de um ActionList, mas a forma que encontrei está populando com todas as actions e eu queria que fosse somente com as que estivessem habilitadas.
Código: |
procedure Tfrm_principal.construir_arvore;
var
i: Integer;
no: TTreeNode;
ac: TAction;
begin
for i := 0 to Pred(action_list.ActionCount) do
begin
ac := TAction(action_list.Actions[i]);
with tv_menu.Items do
begin
no := encontrar_no(ac.Category);
if no = nil then
no := Add(GetFirstNode, ac.Category);
AddChild(no, ac.Caption);
end;
end;
end;
function Tfrm_principal.encontrar_no(const aNome: string): TTreeNode;
var
i: Integer;
begin
Result := nil;
with tv_menu.Items do
begin
for i := 0 to Pred(Count) do
if Item[i].Text = aNome then
begin
Result := Item[i];
Break;
end;
end;
end;
|
Editado pela última vez por netoferreira em Qui Jan 13, 2022 3:53 pm, num total de 1 vez |
|
Voltar ao Topo |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Ter Jan 11, 2022 10:48 am Assunto: |
|
|
Faça um teste com o código abaixo em que acrescentei um condição se a ação está habilitada:
Código: | procedure Tfrm_principal.construir_arvore;
var
i: Integer;
no: TTreeNode;
ac: TAction;
begin
for i := 0 to Pred(action_list.ActionCount) do
begin
ac := TAction(action_list.Actions[i]);
if ac.Enabled then // acrescentei esta linha
with tv_menu.Items do
begin
no := encontrar_no(ac.Category);
if no = nil then
no := Add(GetFirstNode, ac.Category);
AddChild(no, ac.Caption);
end;
end;
end;
|
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
|
netoferreira Novato
Registrado: Sexta-Feira, 19 de Dezembro de 2014 Mensagens: 77 Localização: Macapá - AP
|
Enviada: Qui Jan 13, 2022 9:22 am Assunto: |
|
|
Muito obrigado, natanbh1
natanbh1 escreveu: | Faça um teste com o código abaixo em que acrescentei um condição se a ação está habilitada:
Código: | procedure Tfrm_principal.construir_arvore;
var
i: Integer;
no: TTreeNode;
ac: TAction;
begin
for i := 0 to Pred(action_list.ActionCount) do
begin
ac := TAction(action_list.Actions[i]);
if ac.Enabled then // acrescentei esta linha
with tv_menu.Items do
begin
no := encontrar_no(ac.Category);
if no = nil then
no := Add(GetFirstNode, ac.Category);
AddChild(no, ac.Caption);
end;
end;
end;
|
|
|
|
Voltar ao Topo |
|
|
|