Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. procedure Tfrmep3.VaiBuscar;
  2. var
  3.  iz, iantes, achou: Integer;
  4.  xbusca, xitem: String;
  5. begin
  6.  
  7. if TaCompacto or ParaBusca then
  8.  Exit;
  9.  
  10. if procura.Text = '' then
  11.  begin
  12.   resultadoBusca.Visible := False;
  13.   separadorbusca.Visible := False;
  14.   Exit;
  15.  end;
  16.  
  17. TaBuscando := True;
  18.  
  19. resultadoBusca.Clear;
  20.  
  21. AplicaListaOrigemPraBusca;
  22.  
  23. if listaOrigem.Items.Count = 0 then
  24.  Exit;
  25.  
  26.   try
  27.  
  28.   iantes := listaOrigem.ItemIndex;
  29.  
  30.     for iz := 0 to listaOrigem.Items.Count - 1 do
  31.     begin
  32.  
  33.      Application.ProcessMessages;
  34.  
  35.   if difmaiuscnabuscas.Checked then
  36.   xbusca := procura.Text
  37.   else
  38.    xbusca := UpperCase(procura.Text);
  39.  
  40.    if ParaBusca then
  41.    begin
  42.     // CancelouBusca := True;
  43.      resultadoBusca.Clear;
  44.      procura.Color := CorFundoEdits;
  45.   //   break;
  46.      Exit;
  47.    end
  48.    else
  49.  
  50.     begin
  51.     if MEPOP_ExibirPastas then
  52.      xItem := listaOrigem.Items[iz]
  53.      else
  54.       xitem := ExtractFileNameComURL(listaOrigem.Items[iz]);
  55.  
  56.     if not difmaiuscnabuscas.Checked then
  57.       xitem := UpperCase(xitem);
  58.  
  59.  
  60.      // tira os espaços na busca!
  61.      xbusca := StringReplace(xbusca, '_', ' ', [rfReplaceAll]);
  62.      xitem := StringReplace(xitem, '_', ' ', [rfReplaceAll]);
  63.  
  64.      achou := Pos(xbusca, xitem);
  65.  
  66.      if achou > 0 then
  67.       if not TemDuplicado(resultadoBusca, listaOrigem.Items[iz]) then
  68.        resultadoBusca.Items.Add(listaOrigem.Items[iz]);
  69.  
  70.    end; //if not canceloubusca...
  71.     Application.ProcessMessages;
  72.     end;  //end do for
  73.  
  74.      resultadoBusca.Visible := True;
  75.  
  76.     if resultadoBusca.Items.Count > 0 then
  77.     begin
  78.     // resultadoBusca.ItemIndex := 0;
  79.      resultadoBusca.Color := $00CEFFCE;
  80.      procura.Color := CorFundoEdits;
  81.     end
  82.      else
  83.       begin
  84.        resultadoBusca.Color := CorVermelhoErro;
  85.        procura.Color := CorVermelhoErro;
  86.       end;
  87.  
  88.   except
  89.    TaBuscando := False;
  90.   end;
  91.  
  92.  resultadoBusca.Visible := procura.Text <> '';
  93.  separadorbusca.Visible := resultadoBusca.Visible;
  94.  
  95.  if not resultadoBusca.Visible then
  96.   procura.Color := CorFundoEdits;
  97.  
  98.   TaBuscando := False;
  99.   RedrawWindow(listaOrigem.Handle, nil, 0,
  100. RDW_INVALIDATE or RDW_ERASE or RDW_INTERNALPAINT or RDW_UPDATENOW
  101. or RDW_ERASENOW);
  102.   RedrawWindow(resultadoBusca.Handle, nil, 0,
  103. RDW_INVALIDATE or RDW_ERASE or RDW_INTERNALPAINT or RDW_UPDATENOW
  104. or RDW_ERASENOW);
  105. // if resultadoBusca.Items.Count > 0 then
  106. //  resultadoBusca.ItemIndex := 0;
  107. end;