ورود

View Full Version : جواب سوالی که هیچکس پاسخ نداد (ارسال متنRichEdit به Canvas )



Ali_Hashemi
یک شنبه 25 مرداد 1383, 13:34 عصر
کافی است که به ویندوز دستور بدهیم Richedit را دوباره ترسیم کند
اما بر روی Canvas دلخواه ما :



procedure RichEditToCanvas(RichEdit: TRichEdit; Canvas: TCanvas; PixelsPerInch: Integer);
var
ImageCanvas: TCanvas;
fmt: TFormatRange;
begin
ImageCanvas := Canvas;
with fmt do
begin
hdc:= ImageCanvas.Handle;
hdcTarget:= hdc;
rc:= Rect(0, 0,
ImageCanvas.ClipRect.Right * 1440 div PixelsPerInch,
ImageCanvas.ClipRect.Bottom * 1440 div PixelsPerInch
);
rcPage:= rc;
chrg.cpMin := 0;
chrg.cpMax := RichEdit.GetTextLen;
end;
SetBkMode(ImageCanvas.Handle, TRANSPARENT);
RichEdit.Perform(EM_FORMATRANGE, 1, Integer(@fmt));
RichEdit.Perform(EM_FORMATRANGE, 0, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
RichEditToCanvas(RichEdit1, Image1.Canvas, Self.PixelsPerInch);
Image1.Refresh;
end;

این سوال رو چند ماه پیش پرسیدم آخر هم که مجبور شدم خودم حلش کنم. 8)
البته نمی دانید چقدر زحمت داشت پیدا کردن روشی برای همین خواهش کردن !
:wink: :wink: :wink:

Delphi-Clinic
یک شنبه 25 مرداد 1383, 14:38 عصر
آفرین به شما.

در ضمن کمی لحن طلبکارانه را از کلامت حذف کن. :)

SalarSoft
یک شنبه 25 مرداد 1383, 15:51 عصر
دوست عزیز از چیزایی که من در این مدت در این سایت یاد گرفتم فن سوال پرسیدن بود.

یعنی اگه یه سوال رو باید طوری بپرسی و کلماتی رو استفاده کنی که بیننده عنوان رو به خودش جلب کنه و در این صورت امکان جواب داده شدن سوال وجود داره. :?

البته جسارت به مدیران نباشه! ولی مدتی طول می کشه که انها تاپیکها رو ببینن و در این مدت تاپیک های دیگه میاد و تاپیک مورد نظر ما رو میندازه پایین و در دیر در نظر مدیران و استادان ظاهر میشه! :-x

و سرانجام اگه سوال کمی تحقیق بخواد که واویلا :lol: . ممکنه که اصلا پاسخ داده نشه!

امیدوارم عمو اینپرایز با این حرفا از سایت اخراجم نکنه!! :lol:

در ضمن روشی استفاده کردی جالبه.

Ali_Hashemi
چهارشنبه 28 مرداد 1383, 21:54 عصر
من از حضور شما مدیر بخش عذر می خواهم :oops:

خیلی قاط زده بودم :?

حق با شماست :(

saeed_82
چهارشنبه 28 مرداد 1383, 22:51 عصر
مثل خیلی از تاپیکهای بی جواب بنده !!!!!!!!!!!!!!!1 :cry: