Viniw Postado Fevereiro 20, 2008 Denunciar Share Postado Fevereiro 20, 2008 (editado) Ola eu to fazendo o segundo semestre do tecnico de informaticameu professor pediu pra fazer um bloco de notas que tem que ter as seguintes coisas:NovoSalvarAbrirSairCorFonteAlinhar a esqueraAlinhar a direitaCentralizarLocalizarSubistuirFiz quase tudo, menos o localizar e subistituireu concigo abri o FindDialog e ReplaceDialog com os comandos FindDialog1.execute;ReplaceDialog.execute;(cada um no seu respectivo botão)mas eles não funcionam para achar ou subistuir palavras no texto.por favor me ajudem com isso que eu to muito inrrolado com esse trabalhodes de já vlw Editado Fevereiro 23, 2008 por Micheus Título do tópico alterado. Não observação do item 3.6 das regras do forum. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Fevereiro 21, 2008 Denunciar Share Postado Fevereiro 21, 2008 Fiz quase tudo, menos o localizar e subistituireu concigo abri o FindDialog e ReplaceDialog com os comandos FindDialog1.execute;ReplaceDialog.execute;(cada um no seu respectivo botão)mas eles não funcionam para achar ou subistuir palavras no texto.Para utilizar o FindDialog e o replaceDialog é bem simples, os dois são bem parecidos: O metodo Execute irá exibir a janela. Por exemplo: ReplaceDialog.Execute Dependendo da ação do usuário, os eventos OnFind, OnReplace serão disparados. Por exemplo : no FindDialog, ao disparar o OnFind, pegue o texto da propriedade FindDialog1.FindText, leia os atributos definidos pelo usuario em Options e saia procurando. No RichEdit você pode usar o metodo FindText. Para substituir também é simples e envolve um passo a mais. O texto encontrado é marcado, certo? Então você codifica algo como : RichEdit1.SelText := ReplaceDialog1.ReplaceText .exemplo de uso do FindDialoghttp://devmedia.com.br/articles/viewcomp.a...=350&hl=ibxcom isso voce já tera uma idéia de como implementar o codigoabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Viniw Postado Fevereiro 21, 2008 Autor Denunciar Share Postado Fevereiro 21, 2008 eu to ficando meiu perdidodigitei assim:procedure TForm1.Subistuir1Click(Sender: TObject);begin ReplaceDialog1.execute; Memo1.SelText:=ReplaceDialog1.ReplaceText;end;mas agora eu clico abro a janela do localizar e/ou do subistuir digito alguma coisa, clico em localizar e nom acontece nadadai eu cancelo e abro denovo e a palavra que eu digitei aparece no Memo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Fevereiro 21, 2008 Denunciar Share Postado Fevereiro 21, 2008 eu to ficando meiu perdidomas agora eu clico abro a janela do localizar e/ou do subistuir digito alguma coisa, clico em localizar e nom acontece nada dai eu cancelo e abro denovo e a palavra que eu digitei aparece no Memoexemplo do Delphi usando o RichEdit1procedure TForm1.Button1Click(Sender: TObject); begin FindDialog1.Position := Point(RichEdit1.Left + RichEdit1.Width, RichEdit1.Top); FindDialog1.Execute; end; procedure TForm1.FindDialog1Find(Sender: TObject); var FoundAt: LongInt; StartPos, ToEnd: Integer; begin with RichEdit1 do begin { begin the search after the current selection if there is one } { otherwise, begin at the start of the text } if SelLength <> 0 then StartPos := SelStart + SelLength; else StartPos := 0; { ToEnd is the length from StartPos to the end of the text in the rich edit control } ToEnd := Length(Text) - StartPos; FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]); if FoundAt <> -1 then begin SetFocus; SelStart := FoundAt; SelLength := Length(FindDialog1.FindText); end; end; end; já que voce esta usando Memo, fiz um exemplo para voce usando o FindDialog1 e o ReplaceDialog1 unit UProcuraSubstitui; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; FindDialog1: TFindDialog; ReplaceDialog1: TReplaceDialog; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FindDialog1Find(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ReplaceDialog1Replace(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; s : string; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin s := Memo1.Lines.Text; FindDialog1.Execute; end; procedure TForm1.FindDialog1Find(Sender: TObject); var posicao:integer; begin FindDialog1.Options := []; if frMatchCase in FindDialog1.Options then FindDialog1.Options := [frMatchCase]; if frWholeWord in FindDialog1.Options then FindDialog1.Options := FindDialog1.Options + [frWholeWord]; if frWholeWord in FindDialog1.Options then FindDialog1.Options := FindDialog1.Options + [frDown]; if frWholeWord in FindDialog1.Options then FindDialog1.Options := FindDialog1.Options + [frFindNext]; if Pos(FindDialog1.FindText, S) > 0 then begin posicao := pos(FindDialog1.FindText, s)-1; S[Pos(FindDialog1.FindText, S)] := '0'; end; if posicao <> 0 then begin Memo1.SelStart := posicao; Memo1.SelLength := Length(FindDialog1.FindText); Memo1.SetFocus; end; end; procedure TForm1.Button2Click(Sender: TObject); begin ReplaceDialog1.Execute; end; procedure TForm1.ReplaceDialog1Replace(Sender: TObject); var posicao :integer; begin ReplaceDialog1.Options := []; if frMatchCase in FindDialog1.Options then ReplaceDialog1.Options := [frMatchCase]; if frWholeWord in FindDialog1.Options then ReplaceDialog1.Options := ReplaceDialog1.Options + [frWholeWord]; if frWholeWord in FindDialog1.Options then ReplaceDialog1.Options := ReplaceDialog1.Options + [frDown]; if frWholeWord in FindDialog1.Options then ReplaceDialog1.Options := ReplaceDialog1.Options + [frFindNext]; posicao := pos(ReplaceDialog1.FindText, Memo1.Lines.Text); if posicao <> 0 then begin Memo1.SelStart := posicao-1; Memo1.SelLength := Length(ReplaceDialog1.FindText); Memo1.SelText:=ReplaceDialog1.ReplaceText; Memo1.SetFocus; end; end; end.Veja se esclarece as idéiasabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Viniw Postado Março 9, 2008 Autor Denunciar Share Postado Março 9, 2008 Vlw caraeu demorei um pouco pra ver no que eu estava errando mas conseguivlw mesmo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Marcos -- Postado Setembro 24, 2008 Denunciar Share Postado Setembro 24, 2008 Cara, tente o seguinte:No evento "ON FIND" do componente FINDDIALOG1, coloque o seguinte código:procedure TFLeis.FindDialog1Find(Sender: TObject);var FoundAt: LongInt; StartPos, ToEnd: Integer;begin with MLei do begin if SelLength <> 0 then StartPos := SelStart + SelLength else StartPos := 0; ToEnd := Length(Text) - StartPos; FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]); if FoundAt <> -1 then begin SetFocus; SelStart := FoundAt; SelLength := Length(FindDialog1.FindText); end; end;end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Viniw
Ola eu to fazendo o segundo semestre do tecnico de informatica
meu professor pediu pra fazer um bloco de notas que tem que ter as seguintes coisas:
Novo
Salvar
Abrir
Sair
Cor
Fonte
Alinhar a esquera
Alinhar a direita
Centralizar
Localizar
Subistuir
Fiz quase tudo, menos o localizar e subistituir
eu concigo abri o FindDialog e ReplaceDialog com os comandos
FindDialog1.execute;
ReplaceDialog.execute;
(cada um no seu respectivo botão)
mas eles não funcionam para achar ou subistuir palavras no texto.
por favor me ajudem com isso que eu to muito inrrolado com esse trabalho
des de já vlw
Editado por MicheusTítulo do tópico alterado. Não observação do item 3.6 das regras do forum.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
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.