PDA

View Full Version : تبدیل RICHEDIT به Bitmap



Shahriyari
دوشنبه 11 تیر 1386, 14:46 عصر
چطوری میشه یک richedit را به یک تصویر Bitmap تبدیل کرد
با تشکر
شهریاری

Touska
دوشنبه 11 تیر 1386, 16:28 عصر
با سلام


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;
// rect needs to be specified in twips (1/1440 inch) as unit
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));
// next call frees some cached data
RichEdit.Perform(EM_FORMATRANGE, 0, 0);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
RichEditToCanvas(RichEdit1, Image1.Canvas, Self.PixelsPerInch);
Image1.Refresh;
end;موفق باشید :)

ali_abbasi22145
دوشنبه 11 تیر 1386, 16:59 عصر
سلام
این کد را در یک سایت دیدم و نتوانستم اجرایش کنم کسی اگر مثال کاملش را دارد در اینجا آپلود کند:

Touska
سه شنبه 12 تیر 1386, 16:24 عصر
اینم مثال :