Formatando strings
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
Curtidas 0
Respostas
Aroldo Zanela
12/04/2003
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.
GOSTEI 0
Clclr
12/04/2003
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.
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.
GOSTEI 0
Fábio Valente
12/04/2003
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+
{ ------------------------------------------------------------------------------
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+
GOSTEI 0
Fábio Valente
12/04/2003
Esqueci de selecionar acompanhar o fórum
:twisted:
:twisted:
GOSTEI 0