DjonathanKrause Postado Setembro 16, 2014 Denunciar Share Postado Setembro 16, 2014 Olá pessoas, preciso fazer o seguinte. Tenho uma caixa de texto e toda vez que eu digitar a palavra PIZZA ou pizza, por exemplo, quero que ela fique vermelha. Na mesma hora, sem ter nenhum botão ou algo assim. Alguém ai pode me ajudar? Obrigado ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 16, 2014 Denunciar Share Postado Setembro 16, 2014 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
DjonathanKrause
Olá pessoas, preciso fazer o seguinte.
Tenho uma caixa de texto e toda vez que eu digitar a palavra PIZZA ou pizza, por exemplo, quero que ela fique vermelha. Na mesma hora, sem ter nenhum botão ou algo assim. Alguém ai pode me ajudar?
Obrigado ;)
Link para o comentário
Compartilhar em outros sites
1 resposta 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.