Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement