Buscar

Função que pesquisa Texto no menu

Código

////////   antes de tudo insira "Menus" na uses.

////////   depois coloque esta função

Function BuscaCaption(MyMenu : TMainMenu; Localizar : string; DiferentMM : boolean):TStringList;
var
   Lista : TStringList;
   ii : integer;

   function TemNoTexto(Valor, Texto : string; MaiusculaMin : boolean):boolean;
   var
      retorno:boolean;
   begin
      retorno := false;
      if MaiusculaMin then begin
         if pos(Valor,Texto) > 0 then
            retorno := true;
      end else begin
         if pos(uppercase(Valor),uppercase(Texto)) > 0 then
            retorno := true;
      end;
      TemNoTexto := retorno;
   end;

   Procedure BuscaItem(Menu : TMenuItem; Nome : string);
   var i : integer; diretorio:string;
   begin
      for i := 0 to Menu.Count-1 do begin
         diretorio := stringreplace(Nome+' > '+Menu.Items[i].Caption,'&','',[]);
         BuscaItem(Menu.Items[i],diretorio);
         if TemNoTexto(Localizar,Menu.Items[i].Caption,DiferentMM) then
            Lista.add(diretorio);
      end;
   end;

begin
   Localizar := TrimLeft(TrimRight(Localizar));
   Lista := TstringList.Create;
   for ii := 0 to MyMenu.Items.Count-1 do
   begin
      BuscaItem(MyMenu.Items[ii],MyMenu.Items[ii].Caption);
   end;
   BuscaCaption := lista;
end;


////////   depois coloque um listbox para receber os itens encontrados
////////   BuscaCaption("coloque o menu á ser pesquisado", "o texto pesquisado", "true ou false para diferenciar maiuscula e minuscula")

   listbox1.Items := BuscaCaption(FormMDI.MainMenu,edit1.text,ckbMM.Checked);

////////   esta aí, espero que tenham gostado até mais!

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Forms
Adicionada dia: 31/12/08
Por: Danilo Marcos De Souza
Visualizada: 5654 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009