brhvitor6 Postado Março 14, 2010 Denunciar Share Postado Março 14, 2010 (editado) Em quanto o usuário estiver digitando no richedit algumas palavras se destacam. ex:ola meu nome é...A palavra nome foi destacada. Editado Março 14, 2010 por brhvitor6 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Março 15, 2010 Denunciar Share Postado Março 15, 2010 mas qual o critério para o destacamento de palavras? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 15, 2010 Autor Denunciar Share Postado Março 15, 2010 tipomudar a cor da palavra ou deixa-la em negrito... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Março 15, 2010 Denunciar Share Postado Março 15, 2010 Segue um exemplo que acabei de fazer: http://www.4shared.com/file/241868050/3fe2...r_richedit.htmlcoloca a palavra vaca no edit, seleciona uma cor e clica em pintar, ai você vai ver que vai pintar todas as palavras vacas independentemente se estão maiusculas ou minusculas.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 15, 2010 Autor Denunciar Share Postado Março 15, 2010 Obrigao... vou ver se consigo aplicar em meu projeto... por enquanto é so =) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 15, 2010 Autor Denunciar Share Postado Março 15, 2010 Tive um certo problema... quando estou digitando ele sempre volta para a primeira coluna...porq exemplo estou digitando vitor ... sai rotiv...outro ex:vou digitar abc: a| b|a c|bao | é aquele negocio que fica piscando enquanto você digita Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Março 15, 2010 Denunciar Share Postado Março 15, 2010 Vai no richedit1 e no evento OnChange coloca isso:Application.ProcessMessages;Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 15, 2010 Autor Denunciar Share Postado Março 15, 2010 obrigado.. irei testar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 15, 2010 Autor Denunciar Share Postado Março 15, 2010 (editado) o problema persiste... eu usei um timer para verificar as palavras no richedit e coloqueiApplication.ProcessMessages; no onchange mas o problema persiste --------------------------------- Descobri o erro: SelStart := 0; SelLength := 0;Mas não sei corrigi-lo...ele volta para a coluna 0 e linha 0 porq isso ficava voltando. Editado Março 15, 2010 por brhvitor6 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Março 15, 2010 Denunciar Share Postado Março 15, 2010 Em quanto o usuário estiver digitando no richedit algumas palavras se destacam. ex:ola meu nome é...A palavra nome foi destacada.Existe um ou mais posts versando sobre esse assunto ... faça uma pesquisahttp://scriptbrasil.com.br/forum/index.php...ghlite=richeditabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 15, 2010 Autor Denunciar Share Postado Março 15, 2010 resolvi mais umas coisa...mas agora por ex:eu digito vitor huahuahuahuahuaera para ficar: vitor huahuahuahuahuamas fica: vitor huahuahuahuahua Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Março 16, 2010 Denunciar Share Postado Março 16, 2010 cara a função Pintar palavras é essafunction TfrmColorir.PintarPalavras(RichEdit : TRichEdit; Cor : TColor; Negrito : Boolean): string; var FoundAt : LongInt; StartPos, ToEnd : integer; vBusca : string; str : string; begin vBusca := Edit1.text; with RichEdit1 do begin SelStart := 0; SelLength := 0; repeat StartPos := SelStart + SelLength; ToEnd := Length(Text) - StartPos; FoundAt := FindText(vBusca, StartPos, ToEnd, []); if FoundAt < 0 then Break; begin SelStart := FoundAt; SelLength := Length(vBusca); end; SelAttributes.Color := Cor; if Negrito then SelAttributes.Style := SelAttributes.Style + [fsBold] else SelAttributes.Style := SelAttributes.Style - [fsBold] until False; SelStart := 0; SelLength := 0; SelAttributes.Color := clWindowText; end; end;Fiz testes aqui e nenhum dos problemas citados está ocorrendo, tente testar o executável que enviei junto com as fontes, e me diga se nele dá o erro.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 16, 2010 Autor Denunciar Share Postado Março 16, 2010 (editado) com minhas alterações n funciona:function PintarPalavras(palavra:string;RichEdit : TRichEdit; Cor : TColor; Negrito : Boolean): string; var FoundAt : LongInt; StartPos, ToEnd : integer; vBusca : string; str : string; begin vBusca := palavra; with form1.RichEdit1 do begin SelStart := 0; SelLength := 0; repeat StartPos := SelStart + SelLength; ToEnd := Length(Text) - StartPos; FoundAt := FindText(vBusca, StartPos, ToEnd, []); if FoundAt < 0 then Break; begin SelStart := FoundAt; SelLength := Length(vBusca); end; SelAttributes.Color := Cor; if Negrito then SelAttributes.Style := SelAttributes.Style + [fsBold] else SelAttributes.Style := SelAttributes.Style - [fsBold] until False; SelStart := 0; SelLength := 0; SelAttributes.Color := clWindowText; end; end; timer 1 PintarPalavras('vitor',RichEdit1, clblack,true);o objetivo é que o usuario não tenha que apertar o botão... Editado Março 16, 2010 por brhvitor6 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Março 16, 2010 Denunciar Share Postado Março 16, 2010 Porque você está referenciando um componente do form na função sendo que já existe um parametro para isso?with form1.RichEdit1 doFiz como você disse e funcione normal, substitua sua função.Segue função:function Tform1.PintarPalavras(Palavra: string; RichEdit : TRichEdit; Cor : TColor; Negrito : Boolean): string; var FoundAt : LongInt; StartPos, ToEnd : integer; vBusca : string; begin vBusca := Palavra; with RichEdit1 do begin SelStart := 0; SelLength := 0; repeat StartPos := SelStart + SelLength; ToEnd := Length(Text) - StartPos; FoundAt := FindText(vBusca, StartPos, ToEnd, []); if FoundAt < 0 then Break; begin SelStart := FoundAt; SelLength := Length(vBusca); end; SelAttributes.Color := Cor; if Negrito then SelAttributes.Style := SelAttributes.Style + [fsBold] else SelAttributes.Style := SelAttributes.Style - [fsBold] until False; SelStart := 0; SelLength := 0; SelAttributes.Color := clWindowText; end; end; Não se esqueça de declarar essa função no Type... type Tform1 = class(TForm) RichEdit1: TRichEdit; ............... procedure ........ function PintarPalavras(Palavra: string; RichEdit : TRichEdit; Cor : TColor; Negrito : Boolean): string; procedure ...... private { Private declarations } public { Public declarations } end;Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 16, 2010 Autor Denunciar Share Postado Março 16, 2010 fiz algumas alterações para que não fique voltando o |...function Tform1.PintarPalavras(Palavra: string; RichEdit : TRichEdit; Cor : TColor; Negrito : Boolean): string; var FoundAt : LongInt; StartPos, ToEnd : integer; vBusca : string; v,b:integer; begin vBusca := Palavra; with RichEdit1 do begin v := SelStart; b := SelLength; SelStart := 0; SelLength := 0; repeat StartPos := SelStart + SelLength; ToEnd := Length(Text) - StartPos; FoundAt := FindText(vBusca, StartPos, ToEnd, []); if FoundAt < 0 then Break; begin SelStart := FoundAt; SelLength := Length(vBusca); end; SelAttributes.Color := Cor; if Negrito then SelAttributes.Style := SelAttributes.Style + [fsBold] else SelAttributes.Style := SelAttributes.Style - [fsBold] until False; SelStart := v; SelLength := b; SelAttributes.Color := clWindowText; end; end;mas continua com o erro que ele n muda so a palavra que eu quero...era pra ficar:vitor huahuahuahuahumas fica:vitor huahuahuahuahu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Março 16, 2010 Denunciar Share Postado Março 16, 2010 Acho que entendi, se você escreve Vitor e poe negrito, quando você digita qualquer outra coisa fica em negrito também não é??Deu isso comigo aqui vou tentar resolver e te falo em breve..abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 16, 2010 Autor Denunciar Share Postado Março 16, 2010 isso mesmo...mas com as cores n tem esse problema... vou tentar também... em quanto isso...como posso "importar" de um arquivo txt as palavras pensei em importar com o Tmemo mas ele verificaria linha por linhamas acho que é um loop inutil. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Março 16, 2010 Denunciar Share Postado Março 16, 2010 pra importar você usa:RichEdit1.Lines.LoadFromFile('C:\teste.txt');Vou ter que sair agora e só volto amanha, muda o tópico do Titulo e acrescenta Jhonas dai ele te da uma força, pois também n sou muito bom em delphi.. heheheAbraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 16, 2010 Autor Denunciar Share Postado Março 16, 2010 sim o load file eu já sei... mas n sei como ele pode ver palavra por palavra sem usar um loop toda veiz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Março 16, 2010 Denunciar Share Postado Março 16, 2010 sim o load file eu já sei... mas n sei como ele pode ver palavra por palavra sem usar um loop toda veizVeja eses posts ... mude o código para seu uso http://scriptbrasil.com.br/forum/index.php...st&p=574689http://scriptbrasil.com.br/forum/index.php...st&p=575073abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 16, 2010 Autor Denunciar Share Postado Março 16, 2010 dei uma lida... mas ambos usam database... vou tentar me basear nos códigos... qualquer duvida eu posto aqui... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Março 16, 2010 Denunciar Share Postado Março 16, 2010 dei uma lida... mas ambos usam database... vou tentar me basear nos códigos... qualquer duvida eu posto aqui...tirando o database fica assim:unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) FindDialog1: TFindDialog; RichEdit1: TRichEdit; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FindDialog1Find(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure 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; X : INTEGER; vBusca : string; begin X := 0; with RichEdit1 do begin WHILE X <= RichEdit1.Lines.Count 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); SelAttributes.Color := clRed; SelAttributes.Style := SelAttributes.Style + [fsBold]; end; INC(X); END; end; end; end.abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 16, 2010 Autor Denunciar Share Postado Março 16, 2010 (editado) com esse script q você me passou n resolve....eu importei todas as palavras que quero em um memo e quero que toda vez que eu escreva uma palavra que esteja no memo se destaque no richtext... Editado Março 17, 2010 por brhvitor6 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Março 17, 2010 Denunciar Share Postado Março 17, 2010 com esse script q você me passou n resolve....eu importei todas as palavras que quero em um memo e quero que toda vez que eu escreva uma palavra que esteja no memo se destaque no richtext...Voce quer aprender ou quer tudo de bandeja ....rs se voce olhar o exemplo que te passei no post http://scriptbrasil.com.br/forum/index.php...st&p=583811verá que voce pode trocar o database por um memo e conseguir esse resultado ( ou se pesquisar existe um post com essa duvida usando um Memo ) .... então se esforce um pouquinho que voce consegue .... não é dificilabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 brhvitor6 Postado Março 17, 2010 Autor Denunciar Share Postado Março 17, 2010 Desculpe... mas tudo que aprendi foi sozinho pois nunca tive oportunidade de fazer um curso ou algo parecido.E quando pessoa ajuda pois não estou conseguindo fazer alguma coisa as pessoas me julgam desta forma...Pode dar close não precisa mais não. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
brhvitor6
Em quanto o usuário estiver digitando no richedit algumas palavras se destacam. ex:
ola meu nome é...
A palavra nome foi destacada.
Editado por brhvitor6Link para o comentário
Compartilhar em outros sites
24 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.