PDA

View Full Version : پرینت قسمتی از فرم



bootshow
جمعه 17 مهر 1388, 22:51 عصر
خیلی وقت پیش دنبال این موضوع بودم بالاخره شانسی پیداش کردم
این قطعه کد را از یونیت Forms برداشتم.میخواهم از این کد در قسمتی از برنامه ام استفاده کنم.مشکلی که نداره؟نه؟
با ابزارهای گزارشگیری کار کردم ولی برای پرینت از یک فلش در فرم میخواهم استفاده کنم
function PrintObj(obj:TWinControl):TBitmap;
var
Ofs: Integer;
begin
Result := TBitmap.Create;
try
Result.Width := obj.ClientWidth;
Result.Height := obj.ClientHeight;
Result.Canvas.Brush := obj.Brush;
Result.Canvas.FillRect(obj.ClientRect);
Result.Canvas.Lock;
try
if GetWindowLong(obj.Handle, GWL_STYLE) and WS_BORDER <> 0 then
Ofs := -1 // Don't draw form border
else
Ofs := 0; // There is no border
obj.PaintTo(Result.Canvas.Handle, Ofs, Ofs);
finally
Result.Canvas.Unlock;
end;
except
Result.Free;
raise;
end;
end;

راستی خروجیش BitMap هست که به راحتی میشه از اون پرینت گرفت