PDA

View Full Version : سوال: آیا راهی برای تعیین رنگ پس زمینه ناحیه انتخاب شونده توسط کاربر در RichEdit هست؟



mbshareat
پنج شنبه 01 تیر 1391, 10:39 صبح
سلام
من یه فایل رو توی RichEdit لود می کنم
می خوام کلربر بتونه قسمتی از متن رو کپی بگیره
حالا وقتی کاربر می خواد قسمتی از متن رو انتخاب کنه رنگ پس زمینه متن انتخاب شده سیاهه که چنگی به دل نمی زنه. چطور می تونم رنگ پس زمینه رو زرد کنم؟

BORHAN TEC
پنج شنبه 01 تیر 1391, 15:37 عصر
میتونی از کدی مثل این استفاده کنی:
uses
RichEdit;

procedure RE_SetSelBgColor(RichEdit: TRichEdit; AColor: TColor);
var
Format: CHARFORMAT2;
begin
FillChar(Format, SizeOf(Format), 0);
with Format do
begin
cbSize := SizeOf(Format);
dwMask := CFM_BACKCOLOR;
crBackColor := AColor;
RichEdit.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
// For Example (^_^)
RE_SetSelBgColor(RichEdit1, clYellow);
end;


منبع:
http://www.swissdelphicenter.ch/en/showcode.php?id=1438

mbshareat
پنج شنبه 01 تیر 1391, 21:58 عصر
سلام
از لطفتون ممنونم اما این کد در حال انتخاب کاری نمی کنه. من می خوام وقتی کابر داره متن رو درگ می کنه یا Shift و کلید جهت گرفته ناحیه انتخابی بارنگ زرد یا یه رنگ غیر از سیاه مشخص بشه.
در کد بالا بعد از انتخاب متن اگر دکمه رو فشار بدیم ناحیه انتخابی به رنگ زرد در میاد اما بخوایم یه جای دیگه رو انتخاب کنیم باز هم رنگ ناحیه Select شده سیاهه!!
یه سوال بی ربط دارم فرق Perform با SendMessage چیه؟