bozqurt
پنج شنبه 23 آبان 1387, 20:00 عصر
من می خواهم برنامه ای بنویسم که وقتی درون یک richedit متنی را مینویسیم به طور پویا اگر داخلش مثلا کلمه ی hello بود رنگ ان را قرمز کند لطفا من را راهنمایی کنید
vcldeveloper
جمعه 24 آبان 1387, 04:03 صبح
برای تاپیک هایی که می سازید، عنوان مناسب انتخاب کنید.
as13851365
یک شنبه 20 بهمن 1387, 09:25 صبح
شما می توانید در قسمت ONchecng درستورات مربوط به این کار را بنویسید 
اگه در سایت جستجو کنید نمونه کد هم یافت می کنید
sarbandi
سه شنبه 18 فروردین 1388, 03:57 صبح
سلام دوست عزیز 
من یک تیکه کد خود را که مربوط به کامپایلر برای رنگی کردن متن برات در یک پروژه جدا گونه درست کردم می خوای ببین
29745
procedure CodeColors(Form : TForm;Style : String; RichE : TRichedit;InVisible : Boolean);
const
  // ارایه ها رزرو شده
  CodeC1: array[0..18] of String = ('#','$','*',',',
          '.','/',':',';','[',']','','','<','>',
          '-','=','+','''','@');
  //کلمات رزرو شده
  CodeC2: array[0..16] of String = ('and','{','cin','cout',
          'case','char','class',
          'else','}','for','int','float','double',
          'if',
          'or',
          'while','do');
var
  FoundAt : LongInt; 
  StartPos, ToEnd, i : integer; 
  OldCap,T : String;
  FontC, BackC, C1, C2 ,C3 ,strC, strC1 : TColor; 
begin 
  OldCap := Form.Caption; 
  with RichE do 
  begin
    Font.Name := 'Courier New'; 
    Font.Size := 10; 
    if WordWrap then WordWrap := false; 
    SelectAll; 
    SelAttributes.color := clBlack;
    SelAttributes.Style := []; 
    SelStart := 0; 
    if InVisible then 
    begin 
      Visible := False;
      Form.Caption := 'ÇÌÑÇí ˜Ï...';
    end;
  end;
  BackC := clWhite; FontC := clBlack;
  C1 := clBlack; C2 := clBlack; C3 := clBlack; 
  strC := clBlue; strC1 := clSilver; 
  if Style = 'Twilight' then 
  begin
    BackC := clBlack; FontC := clWhite; 
    C1 := clLime; C2 := clSilver; C3 := clAqua; 
    strC := clYellow; strC1 := clRed; 
  end 
  else
  if Style = 'Default' then
  begin 
    BackC := clWhite; FontC := clBlack; 
    C1 := clTeal; C2 := clMaroon; C3 := clBlue; 
    strC := clMaroon; strC1 := clSilver;
  end 
  else 
  if Style = 'Ocean' then 
  begin 
    BackC := $00FFFF80; FontC := clBlack;
    C1 := clMaroon; C2 := clBlack; C3 := clBlue; 
    strC := clTeal; strC1 := clBlack; 
  end 
  else 
  if Style = 'Classic' then
  begin 
    BackC := clNavy; FontC := clYellow; 
    C1 := clLime; C2 := clSilver; C3 := clWhite; 
    strC := clAqua; strC1 := clSilver; 
  end
  else 
  begin 
    with RichE do 
    begin 
      T := '/'+Style+' = Invalid Style [Default,Classic,Twilight,Ocean] ONLY! }';
      Lines.Insert(0,T); 
      StartPos := 0; 
      ToEnd := Length(Text) - StartPos; 
      FoundAt := FindText(T, StartPos, ToEnd, [stWholeWord]); 
      SelStart := FoundAt;
      SelLength := Length(T); 
      SelAttributes.Color := clRed; 
      SelAttributes.Style := [fsBold]; 
      StartPos := 0; 
      ToEnd := Length(Text) - StartPos;
      FoundAt := FindText('ONLY!', StartPos, ToEnd, [stWholeWord]); 
      SelStart := FoundAt; 
      SelLength := 4; 
      SelAttributes.Color := clRed; 
      SelAttributes.Style := [fsBold,fsUnderLine];
    end; 
  end; 
  RichE.SelectAll; 
  RichE.color := BackC;
  RichE.SelAttributes.color := FontC; 
  for i := 0 to 100 do
  begin 
    with RichE do
    begin 
      StartPos := 0; 
      ToEnd := Length(Text) - StartPos; 
      FoundAt := FindText(IntToStr(i), StartPos, ToEnd, [stWholeWord]); 
      while (FoundAt <> -1) do
      begin 
        SelStart := FoundAt; 
        SelLength := Length(IntToStr(i)); 
        SelAttributes.Color := C1; 
        SelAttributes.Style := [];
        StartPos := FoundAt + Length(IntToStr(i)); 
        FoundAt := FindText(IntToStr(i), StartPos, ToEnd, [stWholeWord]); 
      end; 
    end; 
  end;
  for i := 0 to 20 do 
  begin 
    with RichE do 
    begin 
      StartPos := 0;
      ToEnd := Length(Text) - StartPos; 
      FoundAt := FindText(CodeC1[i], StartPos, ToEnd, []); 
      while (FoundAt <> -1) do 
      begin 
        SelStart := FoundAt;
        SelLength := Length(CodeC1[i]); 
        SelAttributes.Color := C2; 
        StartPos := FoundAt + Length(CodeC1[i]); 
        FoundAt := FindText(CodeC1[i], StartPos, ToEnd, []); 
      end;
    end; 
  end; 
  for i := 0 to 44 do 
  begin 
    with RichE do
    begin 
      StartPos := 0; 
      ToEnd := Length(Text) - StartPos; 
      FoundAt := FindText(CodeC2[i], StartPos, ToEnd, [stWholeWord]); 
      while (FoundAt <> -1) do
      begin 
        SelStart := FoundAt; 
        SelLength := Length(CodeC2[i]); 
        SelAttributes.Color := C3; 
        SelAttributes.Style := [fsBold];
        StartPos := FoundAt + Length(CodeC2[i]); 
        FoundAt := FindText(CodeC2[i], StartPos, ToEnd, [stWholeWord]); 
      end; 
    end; 
  end;
  Startpos := 0; 
  with RichE do 
  begin 
    FoundAt := FindText('''', StartPos, Length(Text), []); 
    while FoundAt <> -1 do
    begin 
      SelStart := FoundAt; 
      Startpos := FoundAt+1; 
      FoundAt := FindText('''', StartPos, Length(Text), []); 
      if FoundAt <> -1 then
      begin 
        SelLength := (FoundAt - selstart)+1; 
        SelAttributes.Style := []; 
        SelAttributes.Color := strC; 
        StartPos := FoundAt+1;
        FoundAt := FindText('''', StartPos, Length(Text), []); 
      end; 
    end; 
  end; 
  Startpos := 0; 
  with RichE do 
  begin 
    FoundAt := FindText('/', StartPos, Length(Text), []);
    while FoundAt <> -1 do
    begin 
      SelStart := FoundAt; 
      Startpos := FoundAt+1; 
      FoundAt := FindText('}', StartPos, Length(Text), []); 
      if FoundAt <> -1 then
      begin 
        SelLength := (FoundAt - selstart)+1; 
        SelAttributes.Style := []; 
        SelAttributes.Color := strC1; 
        StartPos := FoundAt+1;
        FoundAt := FindText('/', StartPos, Length(Text), []);
      end;
    end;
  end;   
  if InVisible then
  begin 
    RichE.Visible := True; 
    Form.Caption := OldCap;
  end; 
  RichE.SelStart := 0;
end;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.