highlight af tekst?

Tags:    delphi

Jeg sidder og laver et program, og tænkte på om det var muligt at highlighte en tekst, som stod mellem 2 bestemte strings:

fx:

!Comment! Hej !Comment!

Så skal hej stå med blåt fordi det står mellem comment....
Kan man det?
Jeg bruger TRichEdit til at indeholde min tekst.

/Mads



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Her er noget kode som farver alt der er imellem <Comment> og </Comment> blå, og gøre selve attributerne røde:

<pre>
procedure Higlight(RichEdit: TRichEdit; TextCol, TagCol, DopCol: TColor);
var
i, iDop: Integer;
s: string;
Col: TColor;
isTag, isDop: Boolean;
begin
iDop := 0;
isDop := False;
isTag := False;
Col := TextCol;
RichEdit.SetFocus;

for i := 0 to Length(RichEdit.Text) do
begin
RichEdit.SelStart := i;
RichEdit.SelLength := 1;
s := RichEdit.SelText;

if (s = '<') or (s = '</') then isTag := True;

if isTag then
if (s = '"') then
if not isDop then
begin
iDop := 1;
isDop := True;
end
else
isDop := False;

if isTag then
if isDop then
begin
if iDop <> 1 then Col := DopCol;
end
else
Col := TagCol
else
Col := TextCol;

RichEdit.SelAttributes.Color := Col;

iDop := 0;

if (s = '>') then isTag := False;
end;

RichEdit.SelLength := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
RichEdit1.Lines.BeginUpdate;
Highlight(RichEdit1, clBlue, clRed, clGreen);
RichEdit1.Lines.EndUpdate;
end;
</pre>

I eksemplet har jeg brugt en RichEdit og en Button - Når man klikker Button1 bliver teksten highlighted.
Du kan også skrive <Comment Color="black"> Hej </Comment> så bliver alt der er imellem " og " grønt..
Du kan selvf. selv bestemme farverne og hvilken richedit der skal bruges, ved at ændre det ved :
Highlight(RichEdit1, clBlue, clRed, clGreen);
Highlight proceduren er lavet således:

procedure Highlight(RichEdit: TRichEdit; TextCol, TagCol, DopCol: TColor);

RichEdit er den richedit du bruger, TextCol er altså teksten der er imellem <Comment> og </Comment>, TagCol er selve attributerne, og DopColor er teksten der er imellem " og ".

Håber det virker og at du kan bruge det..

Med Venlig Hilsen
Armen L.A.
EvoxSoft

[Redigeret d. 15/03-04 06:28:14 af Armen L.A.]



Jeg sidder og laver et program, og tænkte på om det var muligt at highlighte en tekst, som stod mellem 2 bestemte strings:

fx:

!Comment! Hej !Comment!

Så skal hej stå med blåt fordi det står mellem comment....
Kan man det?
Jeg bruger TRichEdit til at indeholde min tekst.

/Mads


P.S. Der behøver ikke være mellemrum mellem !Comment! og Hej, Hvis det er besværligt... Det var bare et eksempel ;)

/Mads



Jeg sidder og laver et program, og tænkte på om det var muligt at highlighte en tekst, som stod mellem 2 bestemte strings:

fx:

!Comment! Hej !Comment!

Så skal hej stå med blåt fordi det står mellem comment....
Kan man det?
Jeg bruger TRichEdit til at indeholde min tekst.

/Mads

P.S. Der behøver ikke være mellemrum mellem !Comment! og Hej, Hvis det er besværligt... Det var bare et eksempel ;)
/Mads



Vil der altid være et lige antal af 'Comment' ?

Med venlig hilsen
Dennis Lauritzen

[Redigeret d. 13/03-04 12:30:06 af Dennis Lauritzen]



Jeg sidder og laver et program, og tænkte på om det var muligt at highlighte en tekst, som stod mellem 2 bestemte strings:

fx:

!Comment! Hej !Comment!

Så skal hej stå med blåt fordi det står mellem comment....
Kan man det?
Jeg bruger TRichEdit til at indeholde min tekst.

/Mads

P.S. Der behøver ikke være mellemrum mellem !Comment! og Hej, Hvis det er besværligt... Det var bare et eksempel ;)
/Mads


Vil der altid være et lige antal af 'Comment' ?

Med venlig hilsen
Dennis Lauritzen

[Redigeret d. 13/03-04 12:30:06 af Dennis Lauritzen]


Jeg der vil altid være 2 comments per ting, som skal highlightes....

/Mads



Jeg sidder og laver et program, og tænkte på om det var muligt at highlighte en tekst, som stod mellem 2 bestemte strings:

fx:

!Comment! Hej !Comment!

Så skal hej stå med blåt fordi det står mellem comment....
Kan man det?
Jeg bruger TRichEdit til at indeholde min tekst.

/Mads

P.S. Der behøver ikke være mellemrum mellem !Comment! og Hej, Hvis det er besværligt... Det var bare et eksempel ;)
/Mads


Vil der altid være et lige antal af 'Comment' ?

Med venlig hilsen
Dennis Lauritzen

[Redigeret d. 13/03-04 12:30:06 af Dennis Lauritzen]

Jeg der vil altid være 2 comments per ting, som skal highlightes....

/Mads


Okay, kigger lige på det og smider noget kode engang imorgen! :-)


Med venlig hilsen
Dennis Lauritzen



Jeg sidder og laver et program, og tænkte på om det var muligt at highlighte en tekst, som stod mellem 2 bestemte strings:

fx:

!Comment! Hej !Comment!

Så skal hej stå med blåt fordi det står mellem comment....
Kan man det?
Jeg bruger TRichEdit til at indeholde min tekst.

/Mads

P.S. Der behøver ikke være mellemrum mellem !Comment! og Hej, Hvis det er besværligt... Det var bare et eksempel ;)
/Mads


Vil der altid være et lige antal af 'Comment' ?

Med venlig hilsen
Dennis Lauritzen

[Redigeret d. 13/03-04 12:30:06 af Dennis Lauritzen]

Jeg der vil altid være 2 comments per ting, som skal highlightes....

/Mads

Okay, kigger lige på det og smider noget kode engang imorgen! :-)


Med venlig hilsen
Dennis Lauritzen


Tusind tak..... Det ville jeg blive glad for....

/Mads



t