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

(Resolvido) Mudar a cor de determinadas palavas - Delphi


DjonathanKrause

Pergunta

1 resposta a esta questão

Posts Recomendados

  • 0

exemplo

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);

// // função para procurar a palavra CaseInsensitive ( pode ser maiusculas ou minusculas )

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(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('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; // mudar outras palavras para cor preta
end;


end.

OBS: observe que para procurar a palavra é CaseInsensitive, mas para trocar a cor da palavra não é

a não ser que a palavra já exista no texto ( ex: pizza ) , ai nesse caso se voce digitar novamente Pizza ou

PIZZA ou PIzZA ou piZZA , a palavra vai mudar de cor

abraço

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,5k
×
×
  • Criar Novo...