Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.19;
Скачать: CL | DM;

Вниз

Как пустить на печать канву например PaintBox-а?   Найти похожие ветки 

 
Fletch   (2002-09-04 15:58) [0]

Сильно не бейте.
Есть PaintBox на его канве что-то нарисованно.
Обьясните плиз по шагам как ее пустить на печать.


 
Tihas ©   (2002-09-04 22:26) [1]

Вот попробуй, проверить этого не могу(принтера нет), но всё
прекрасно компилируеться, и выдаёться ошибка нет Принтера.
А вообще-то по теории обязанно работать.

procedure TForm1.formcreate(Sender: TObject);
var PaintBox:TPaintbox;
begin
PaintBox:=TPaintBox.Create(self);
PaintBox.Canvas.Ellipse(10,10,100,100);
Printer.BeginDoc;
Printer.Canvas.CopyRect(PaintBox.ClientRect,PaintBox.Canvas,Printer.Canvas.ClipRect);
Printer.EndDoc;
PaintBox.Destroy;
end;

Удачи. Всего хорошего.


 
Fletch   (2002-09-05 09:28) [2]

Увы не работает :(
Я уже пробовал и так:

var b:TBitmap;
begin
b:=TBitmap.Create;
b.Width:=200;
b.Height:=200;
b.Canvas.Pen.Color:=clBlack;
b.Canvas.Pen.Width:=2;
b.Canvas.Brush.Color:=clBlack;
b.Canvas.Rectangle(10,10,100,100);
Printer.BeginDoc;
Printer.Canvas.Draw(0,0, b);
Printer.EndDoc;
end;

и так:

с коэфициентами (R:TRect)

Printer.BeginDoc;
with Printer do
try
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(0, 0, b.Width * ScaleX, b.Height * ScaleY);
Canvas.StretchDraw(R, b);
finally
EndDoc;
end;

на печать выдает, вылезает пустой лист! :(
Единствнное когда печает, это когда рисуешь сразу на канве принтера:

Например

Printer.BeginDoc;
Printer.Rectengle(0,0,100,100);
Printer.TextOut(50,50,"dfdsfdsfdfdsfdsfdsfdsf");
Printer.EndDoc;

Во всех других случаях, если рисовать где в другом месте и потом копировать на канву принтера - печатает пустой лист.
Что я не так делаю?


 
sergn   (2002-09-05 10:46) [3]

В примере печати Bitmap, перед определением размеров Bitmap,
вставь
b.pixelformat:=pf24bit;

b.Width:=200;
b.Height:=200;



 
Fletch   (2002-09-05 10:58) [4]

sergn СПАСИБО ОГРОМНОЕ!!!



Страницы: 1 вся ветка

Текущий архив: 2002.12.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
4-61873
krokodill_gen
2002-11-06 15:22
2002.12.19
Алгоритмы нахождения пути


3-61491
$hade
2002-12-02 13:32
2002.12.19
IB 6.5 license


1-61614
Шурик Ш
2002-12-10 15:30
2002.12.19
Забыл основы Паскаля


3-61452
nick-from
2002-11-30 11:56
2002.12.19
Исходники БД


14-61773
Anatoly Podgoretsky
2002-11-20 07:33
2002.12.19
Именинники 20 ноября