Samucaoo1 Postado Julho 26, 2017 Denunciar Share Postado Julho 26, 2017 Como fazer que algumas palavras assim que sejam digitadas em um richedit,mudem de cor ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 26, 2017 Denunciar Share Postado Julho 26, 2017 nesses exemplos, voce procura uma palavra e depois muda a cor dela basta voce entender o código e fazer as modificações para o seu uso unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) RichEdit1: TRichEdit; procedure RichEdit1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.RichEdit1Change(Sender: TObject); var SelStartBak: integer; SelLengthBak: integer; SelStartAux: integer; begin SelStartBak := RichEdit1.SelStart; SelLengthBak := RichEdit1.SelLength; RichEdit1.SelectAll; RichEdit1.SelAttributes.Color := clBlack; SelStartAux := RichEdit1.FindText('Pizza', 1, Length(RichEdit1.Text), [stWholeWord]); while SelStartAux > -1 do begin RichEdit1.SelStart := SelStartAux; RichEdit1.SelLength := 5; // numero de caracteres da palavra RichEdit1.SelAttributes.Color := clRed; Inc(SelStartAux, 5); // posicionar no inicio da palavra SelStartAux := RichEdit1.FindText('Pizza', SelStartAux, Length(RichEdit1.Text) - SelStartAux + 1, [stWholeWord]); end; RichEdit1.SelStart := SelStartBak; RichEdit1.SelLength := SelLengthBak; end; end. =================================================================================== outro exemplo unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) RichEdit1: TRichEdit; Label1: TLabel; procedure RichEdit1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; S1, S2 : string; implementation {$R *.dfm} procedure TForm1.RichEdit1Change(Sender: TObject); function MyPos(stringtofind, stringtosearch: string; CaseInsensitive: boolean = true): integer; begin if CaseInsensitive then begin stringtofind := LowerCase(stringtofind); stringtosearch := LowerCase(stringtosearch); end; Result := Pos(stringtofind, stringtosearch); end; procedure TrocarCorPalavra(Palavra: string; Cor: TColor); var SelStartBak: integer; SelLengthBak: integer; SelStartAux: integer; begin SelStartBak := RichEdit1.SelStart; SelLengthBak := RichEdit1.SelLength; RichEdit1.SelAttributes.Color := clBlack; SelStartAux :=Pos((Pchar(palavra)), RichEdit1.Text)-1; while SelStartAux > -1 do begin RichEdit1.SelStart := SelStartAux; RichEdit1.SelLength := Length(Palavra); RichEdit1.SelAttributes.Color := Cor; Inc(SelStartAux, Length(Palavra)); SelStartAux := RichEdit1.FindText(Palavra, SelStartAux, Length(RichEdit1.Text) - SelStartAux + 1, [stWholeWord]); end; RichEdit1.SelStart := SelStartBak; RichEdit1.SelLength := SelLengthBak; end; begin if mypos('pizza',RichEdit1.Text,true) > 0 then TrocarCorPalavra('pizza', clRed); if mypos('pascal',RichEdit1.Text,true) > 0 then TrocarCorPalavra('pascal', clBlue); if mypos('delphi',RichEdit1.Text,true) > 0 then TrocarCorPalavra('delphi', clAqua); RichEdit1.SelAttributes.Color := clBlack; end; end. abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samucaoo1 Postado Julho 26, 2017 Autor Denunciar Share Postado Julho 26, 2017 Muito obrigado ,funcionou ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samucaoo1 Postado Julho 27, 2017 Autor Denunciar Share Postado Julho 27, 2017 como usa-lo em richedit dinamica Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 27, 2017 Denunciar Share Postado Julho 27, 2017 Veja esse exemplo: http://maikelscheid.blogspot.com.br/2009/01/destacando-palavra-no-richedit.html abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samucaoo1 Postado Julho 27, 2017 Autor Denunciar Share Postado Julho 27, 2017 Ainda não consegui aplicar nas richedit geradas dinamicamente... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 27, 2017 Denunciar Share Postado Julho 27, 2017 se voce olhar o código do exemplo que te passei vai encontrar isso: APalavras : array of TRPalavras; Esta varável irá descender do tipo TRPalavras criado anteriormente. Acessando agora o evento OnClick do botão, adicione o código a seguir, o qual será responsável por armazenar no array quais as palavras e respectivas cores que devem ser destacadas no texto a ser digitado no componente RichEdit. { Adicionando as palavras a lista } SetLength( APalavras, Length( APalavras )+1 ); APalavras[ High( APalavras ) ].DS_PALAVRA := Edit1.Text; APalavras[ High( APalavras ) ].VR_COR := ColorBox1.Selected; APalavras[ High( APalavras ) ].ESTILO := [fsBold]; OBS: como o programa vai saber que a palavra que voce acabou de digitar tem mudar de cor ? voce pode ter essa palavra em um array ( ai assim que voce digitar essa palavra ela muda de cor) ... veja o exemplo do link acima, ou pode marcar com o mouse e faze-la mudar de cor. tem muitos exemplos na net de como fazer isso https://www.google.com.br/search?q=richedit+delphi&o que=richedit&gs_l=psy-ab.1.0.0l4.8355867.8357684.0.8360028.8.8.0.0.0.0.161.886.0j7.7.0....0...1.1.64.psy-ab..1.7.883...0i131k1j0i67k1.ln4TKE5VGBw abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samucaoo1 Postado Julho 27, 2017 Autor Denunciar Share Postado Julho 27, 2017 consegui,obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Samucaoo1
Como fazer que algumas palavras assim que sejam digitadas em um richedit,mudem de cor ?
Link para o comentário
Compartilhar em outros sites
7 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.