procedure Tfrmep3.VaiBuscar;
var
iz, iantes, achou: Integer;
xbusca, xitem: String;
begin
if TaCompacto or ParaBusca then
Exit;
if procura.Text = '' then
begin
resultadoBusca.Visible := False;
separadorbusca.Visible := False;
Exit;
end;
TaBuscando := True;
resultadoBusca.Clear;
AplicaListaOrigemPraBusca;
if listaOrigem.Items.Count = 0 then
Exit;
try
iantes := listaOrigem.ItemIndex;
for iz := 0 to listaOrigem.Items.Count - 1 do
begin
Application.ProcessMessages;
if difmaiuscnabuscas.Checked then
xbusca := procura.Text
else
xbusca := UpperCase(procura.Text);
if ParaBusca then
begin
// CancelouBusca := True;
resultadoBusca.Clear;
procura.Color := CorFundoEdits;
// break;
Exit;
end
else
begin
if MEPOP_ExibirPastas then
xItem := listaOrigem.Items[iz]
else
xitem := ExtractFileNameComURL(listaOrigem.Items[iz]);
if not difmaiuscnabuscas.Checked then
xitem := UpperCase(xitem);
// tira os espaços na busca!
xbusca := StringReplace(xbusca, '_', ' ', [rfReplaceAll]);
xitem := StringReplace(xitem, '_', ' ', [rfReplaceAll]);
achou := Pos(xbusca, xitem);
if achou > 0 then
if not TemDuplicado(resultadoBusca, listaOrigem.Items[iz]) then
resultadoBusca.Items.Add(listaOrigem.Items[iz]);
end; //if not canceloubusca...
Application.ProcessMessages;
end; //end do for
resultadoBusca.Visible := True;
if resultadoBusca.Items.Count > 0 then
begin
// resultadoBusca.ItemIndex := 0;
resultadoBusca.Color := $00CEFFCE;
procura.Color := CorFundoEdits;
end
else
begin
resultadoBusca.Color := CorVermelhoErro;
procura.Color := CorVermelhoErro;
end;
except
TaBuscando := False;
end;
resultadoBusca.Visible := procura.Text <> '';
separadorbusca.Visible := resultadoBusca.Visible;
if not resultadoBusca.Visible then
procura.Color := CorFundoEdits;
TaBuscando := False;
RedrawWindow(listaOrigem.Handle, nil, 0,
RDW_INVALIDATE or RDW_ERASE or RDW_INTERNALPAINT or RDW_UPDATENOW
or RDW_ERASENOW);
RedrawWindow(resultadoBusca.Handle, nil, 0,
RDW_INVALIDATE or RDW_ERASE or RDW_INTERNALPAINT or RDW_UPDATENOW
or RDW_ERASENOW);
// if resultadoBusca.Items.Count > 0 then
// resultadoBusca.ItemIndex := 0;
end;