» Utilizator
Salut, vizitatorule!

SkullBox este o comunitate formata din programatori si administratori de sisteme sau retele care iti sta la dispozitie cand ai o problema legata de calculatoare. Daca esti un utilizator existent, autentifica-te.

Daca nu te-ai inregistrat inca pe forum, alatura-te noua astfel marind comunitatea si ajutandu-i pe cei care au nevoie de informatii.

Daca te-ai inregistrat dar inca nu ai primit codul de activare, il poti cere aici.




Autentifica-te cu numele de utilizator si parola pentru a putea posta pe forum sau pentru a accesa ariile disponibile doar utilizatorilor inregistrati.
» Promovam
» Parteneri » Statistici
  • 59713 de mesaje.
  • 7146 de topicuri.
  • 999 de utilizatori.
  •  
  • raymond_germanos e ultimul utilizator inregistrat.
[Detalii]

 
Pagini: 1 [2]
Print
Request [3056 afisari]
Shocker
*


Mesaje: 408
OfflineOffline


Claw, sper ca nu e prea tarziu, nu am prea avut timp:
Sus la uses pui asta, e necesar pentru functia PosEx:
Code:
uses StrUtils;
Declari functia:
Code:
function Textu: TTextAttributes;
begin
if form1.RichEdit1.SelLength > 0 then textu:=form1.RichEdit1.SelAttributes else textu:=form1.RichEdit1.DefAttributes;
end;
unde form1.RichEdit1 e RichEdit-ul.

Si procedura propriu-zisa de highlighting:
Code:
var i,len,posu,posu2:integer;
src,tmp:string;
begin
tmp:=RichEdit1.text;

for i:=1 to 2 do
 begin
  if i=1 then src:='''' else src:='"';
  posu:=0;
  posu2:=0;
  while PosEx(src,tmp,posu+1+posu2)>0 do
   begin
    posu:=PosEx(src,tmp,posu+1+posu2);
    posu2:=PosEx(src,tmp,posu+1)-posu;
    if posu2<1 then break;
    RichEdit1.SelStart:=posu-1;
    RichEdit1.SelLength:=posu2+1;
    Textu.Color:=clGreen;
   end;
 end;

for i:=1 to 2 do
 begin
  if i=1 then begin len:=4;src:='test';end else begin len:=5;src:='test2';end;
  posu:=0;
  while PosEx(src,tmp,posu+1)>0 do
   begin
    posu:=PosEx(src,tmp,posu+1);
    if posu<>0 then
     begin
      RichEdit1.SelStart:=posu-1;
      RichEdit1.SelLength:=len;
      Textu.Color:=clRed;
     end;
   end;
 end;
Rezultat:


Sper ca e evident ca asta nu e in timp real, trebuie sa se efectueze procedura dupa fiecare secunda sau cat vrei, dupa fiecare caracter introdus, nu stiu, cum vrei

LE: In cazul de sus, test si test2 vor fi cu rosu chiar daca sunt in interiorul ghilimelelor, daca vrei sa fie cu verde cand sunt intre ghilimele, schimba ordinea celor 2 for-uri: Prima data cel care coloreaza cu rosu test si test2, apoi cel care coloreaza cu verde ce e cuprins intre ghilimele
Logged
02-10-2007, 16:50 Twitt ::
Claw
*


Mesaje: 32
OfflineOffline

WWW

a mers Smile multumesc mult, eu ma complicam cu componente...multumesc inca o data
Logged
02-10-2007, 17:41 Twitt ::
Reclama
VIP

Hosting

Mesaje: 25.90
OnlineOnline

WWW
 

   Pe ABCDomenii: 250MB spatiu + 20GB trafic + 5 subdomenii = 0.95 €
 
 

The problem with troubleshooting is that trouble shoots back.
Azi 
Pages: 1 [2]
Print
SkullBox Forum  |  Development  |  Delphi & Pascal  |  Pascal / Delphi Snippets  |  Topic: Request
Jump to: