Ir para conteúdo
Fórum Script Brasil
  • 0

Como Usar O Finddialog


vms

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0
Guest --Jonas --
ola pessoal

como faço uma pesquisa dentro de um dbmemo usando o finddialog?

(somente no dbmemo e não na tabela)

como seria o comando?

//Procura e substituição de string num campo dbmemo

Procedure TForm1.Button1Click (Sender: TObject);
Begin
FindReplace(Edit1.Text,Edit2.Text, DBMemo1);
end;

Procedure FindReplace (const Enc, subs: String; Var Texto: TDBMemo);
Var
i, Posicao: Integer;
Linha: string;
Begin
For i:= 0 to Texto.Lines.count - 1 do
begin
Linha := Texto. Lines[i];
Repeat
Posicao:=Pos(Enc,Linha);
If Posicao > 0 then
Begin
Delete(Linha,Posicao,Length(Enc));
Insert(Subs,Linha,Posicao);
Texto.Lines[i]:=Linha;
end;
until Posicao = 0;
end;
end;

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --

Foi mal ... inverta a posição da procedure ....Procedure FindReplace deve vir em primeiro e Procedure TForm1.Button1Click deve vir depois, se não acontece erro.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --
Foi mal ... inverta a posição da procedure ....Procedure FindReplace deve vir em primeiro e Procedure TForm1.Button1Click deve vir depois, se não acontece erro.

outra coisa que esqueci voce deve definir no type:

type
  TForm1 = class(TForm)
    Button1: TButton;
    DBGrid1: TDBGrid;
    Query1: TQuery;
    DataSource1: TDataSource;
    DBMemo1: TDBMemo;
    procedure Button1Click(Sender: TObject);
    Procedure FindReplace (const Enc, subs: String; Var Texto: TDBMemo);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

Link para o comentário
Compartilhar em outros sites

  • 0
como faço uma pesquisa dentro de um dbmemo usando o finddialog?
apenas salientando que a questão é fazer uma pesquisa, não substituição.

Jonas, acredito que deva ser exemplificado esta situação.

Há também um tópico de 2006 (Como Usar A Caixa De Pesquisar Para Pesquisar Em Um Memo?) sobre este assunto.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --

Exemplificando melhor com o FindDialog:

procedure TMainForm.FindDialog1Find(Sender: TObject);
var Buff, P, FT : PChar;
    BuffLen     : Word;
begin With Sender as TFindDialog do begin
      GetMem(FT, Length(FindText) + 1);
      StrPCopy(FT, FindText);
      BuffLen:= DBMemo1.GetTextLen + 1;
      GetMem(Buff,BuffLen);
      DBMemo1.GetTextBuf(Buff,BuffLen);
      P:= Buff + DBMemo1.SelStart + DBMemo1.SelLength;
      P:= StrPos(P, FT);
      if P = NIL then MessageBeep(0)
      else  begin
     DBMemo1.SelStart:= P - Buff;
     DBMemo1.SelLength:= Length(FindText);
      end;
   FreeMem(FT, Length(FindText) + 1);
   FreeMem(Buff,BuffLen);
end;
end;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...