View Full Version : سوال: کامپوننت برای تغییر رنگ و اندازه ی متن خاصی در RichEdit
Felony
جمعه 04 بهمن 1387, 09:31 صبح
:لبخندساده:سلام
دوستان کسی هست کامپوننتی سراغ داشته باشه که بشه بهش گزینه های زیر رو داد و اون روی متن داخل RichEdit اعمال کنه ؟
( زیر رشته مورد نظر برای اعمال تغیرات ، رنگ ، بولد کردن متن )
میخوام یه چیز مثل کامپوننت SyntaxHilighter باشه ولی بشه بهش گفت چه چیزایی رو رنگشون و Bold بودن یا نبودنشون رو براش مشخص کرد ؟
مثلا :
( 'text',green,true )
در ضمن من از دلفی 2009 استفاده میکنم .
ممنون .
mafazel
جمعه 04 بهمن 1387, 11:32 صبح
کامپوننت که نمی خواد. یه همچین کدی باید بنویسی
var
FromPos,Siz :Integer;
SetBold :Boolean;
TextToFind :string;
ColorToSet :TColor;
begin
// For Example
SetBold := True;
TextToFind := 'Edit';
ColorToSet := clGreen;
Siz := Length(RichEdit1.Text);
FromPos := 0;
while (FromPos>=0) do
begin
FromPos := RichEdit1.FindText(TextToFind,FromPos,Siz,[]);
if FromPos>=0 then
begin
RichEdit1.SelStart := FromPos;
RichEdit1.SelLength := Length(TextToFind);
RichEdit1.SelAttributes.Color := clGreen;
if SetBold then RichEdit1.SelAttributes.Style := [fsBold]
else RichEdit1.SelAttributes.Style := [];
RichEdit1.SelLength := 0;
Inc(FromPos);
end;
end;
فقط باید برای رنگها یکم باید کار کنی چون دلفی رنگ رو بصورت مثلا Green نمیشناسه بصورت متن 'clGreen' یا متغیر clGreen میتونه بشناسه.
Felony
شنبه 05 بهمن 1387, 00:55 صبح
کامپوننت که نمی خواد. یه همچین کدی باید بنویسی
دوست عزیز منم نوشتن این کد رو بلدم ولی من میخوام یه چیز شیه Syntax HighLighter بسازم که حدودا باید 70 تا کلمه رو شناسایی کنه ، حتی اگراین کد رو بهشورت زیر برنامه هم در بیارم ، بازم 80 ، 90 خط کد میشه ...
mafazel
شنبه 05 بهمن 1387, 06:44 صبح
خوب من معذرت میخوام و چیزی سراغ ندارم. ولی فکر میکنید کامپوننت چیکار می کنه؟ همین کارها رو به اضافه یک سری کار اضافی دیگه که شاید شما لازم نداشته باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.