![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
И все-таки проблема, однако!!!
Destroyer © (2002-05-21 09:59:00)Господа!! Все-таки объясните мне одну весчь: 2 кусочка кода:
1.
var ScaleX, ScaleY: Integer;
R: TRect;
begin
if PrintDialog.Execute then
begin
Printer.BeginDoc;
try
ScaleX:=Trunc((GetDeviceCaps(Printer.Handle,logPixelsX)*MainBitmap.Width)/PixelsPerInch);
ScaleY:=Trunc((GetDeviceCaps(Printer.Handle,logPixelsY)*MainBitmap.Height)/PixelsPerInch);
R:=Rect(0,0,ScaleX,ScaleY);
MainBitmap.SaveToFile("1.bmp");
I.Picture.LoadFromFile("1.bmp");
Printer.Canvas.StretchDraw(R,I.Picture.Graphic);
DeleteFile("1.bmp");
finally
Printer.EndDoc;
end;
end;
end;
2.
var ScaleX, ScaleY: Integer;
R: TRect;
begin
if PrintDialog.Execute then
begin
Printer.BeginDoc;
try
ScaleX:=Trunc((GetDeviceCaps(Printer.Handle,logPixelsX)*MainBitmap.Width)/PixelsPerInch);
ScaleY:=Trunc((GetDeviceCaps(Printer.Handle,logPixelsY)*MainBitmap.Height)/PixelsPerInch);
R:=Rect(0,0,ScaleX,ScaleY);
I.Picture.Assign(MainBitmap);
Printer.Canvas.StretchDraw(R,I.Picture.Graphic);
finally
Printer.EndDoc;
end;
end;
end;
Отличие небольшое, тем не менее 1 кусок кода работает, второй же в итоге выдает пустой лист.
McSimm (2002-05-21 10:12:00) [1]
> I.Picture.Assign(MainBitmap);
Попробуй
I.Picture.Bitmap.Assign(MainBitmap);