Fórum Formatando strings #154384

12/04/2003

0

gostaria de saber como formtar strings em um richtext tipo se tiver o nome gabriel ele vai ficar de vermelho o nome delphi de verde essas coisas obrigado


Newbye

Newbye

Responder

Posts

12/04/2003

Aroldo Zanela

gostaria de saber como formtar strings em um richtext tipo se tiver o nome gabriel ele vai ficar de vermelho o nome delphi de verde essas coisas obrigado

Colega,

Procure na Web (www.google.com.br) o componente SynEdit ele é freeware, tem analisador sintático e léxico para muitas linguagens e ´pinta´ palavras chaves, simbolos, strings, enfim, deve ser o que você procura. Utilizado em vários projetos interessantes, como BRPascal, ConTEXT (www.fixedsys.com/context) entre os mais conhecidos.


Responder

Gostei + 0

13/04/2003

Clclr

ABre um aplicativo novo, joga 3 botoes e um tRichedit depois copia o codigo abaixo.

As vezes me surprende a inteligencia de certas pessoas, que respondem a uma pergunta com ´procure na web´....... O minimo é dar um link exato ou ficar quieto se não sabe.


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
RichEditC: TRichEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
RichEditC.SelLength := 0;
RichEditC.SelAttributes.Color := ClGray;
RichEditC.SelText := ´Appended Text´
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
RichEditC.SelLength := 0;
RichEditC.SelAttributes.Color := ClRed;
RichEditC.SelText := ´ oI ´

end;

procedure TForm1.Button3Click(Sender: TObject);
Var Position,LineNo : Integer;

begin
LineNo := 2;
position := RichEditC.Perform(EM_LINEINDEX, LineNo, 0) +
Length(RichEditC.Lines[LineNo]);
RichEditC.SelStart := position;
RichEditC.SelLength := 0;
RichEditC.SelAttributes.Color := ClGray;
RichEditC.SelText := ´ Linha 3´

end;

end.


Responder

Gostei + 0

16/12/2003

Fábio Valente

Prezado, resolvi este problema desenvolvendo esta rotina:


{ ------------------------------------------------------------------------------
Nome......: AtuRichTxt
Objetivo..: Atualiza campos em caixa RichEdit
Autor.....: Fábio M. Valente
Criação...: 16/02/2003 - 17:10
Alteração.: 16/12/2003 - 17:10
::Parâmetros::
Texto.: Componente TRichEdit que será examinado
Subst.: Texto que será procurado e substituido no RichText
Estilo: Alteração no Texto
Repete: Booleano, se repete ou não a substituição
::Retorno::
Texto.: Componente TRichEdit alterado
------------------------------------------------------------------------------}
procedure AtuRichTxt( Var Texto: TRichEdit; Subst : String; Estilo : TFontStyles; Repete : boolean );
Var
i, nInicio, nEncontrado, nTam, nTamTxt : integer;
begin
nEncontrado := 0;
nInicio := 0;
nTam := Length( Subst );
nTamTxt := Length( Texto.Text );
while nEncontrado <> -1 do
begin
nEncontrado := Texto.FindText( Subst, nInicio, nTamTxt, []);
if nEncontrado <> -1 then
with Texto do
begin
//SetFocus;
SelStart := nEncontrado;
SelLength := nTam;
SelAttributes.Style := Estilo; *
nInicio := nEncontrado + nTam;
if NOT Repete then
break;
end;
end;
end;

e passo os seguintes parâmetros na chamada:

AtuRichTxt( Componente, <palavra a ser substituida>, [<fsBold, fsItalic, fsUnderLine>], true );


... você pode complementá-la para sua necessidade de cor alterando a linha com ´*´ da seguinte maneira:

SelAttributes.Color := Estilo;

na chamada:

AtuRichTxt( Componente, ´Gabriel´, clRed, true );

AtuRichTxt( Componente, ´Delphi´, clGreen, true );


P.S.: Não esqueça de alterar a chamada da procedure TColor no parâmetro de cor.

Qualquer outra dúvida que eu puder ajudar, estou a disposição.

100+


Responder

Gostei + 0

16/12/2003

Fábio Valente

Esqueci de selecionar acompanhar o fórum

:twisted:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar