Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > распечатка содержимого Paintbox


Автор: rthsobakas 12.6.2009, 21:49
как осуществить распечатку содержимого Painbox в c++ builder ?

Автор: rthsobakas 14.6.2009, 18:26
Нашел такой код
Код

void __fastcall TForm1::N5Click(TObject *Sender)
{
int X1,X2,Y1,Y2;
double PointsX,PointsY;
TPrintDialog PrintDlg;

// Создаю и отображаю на экране стандартное окно печати
PrintDlg=TPrintDialog->Create(Owner);
if PrintDlg->Execute{
//Начинаю новый документ
Printer->BeginDoc();
Printer->Canvas->Refresh();
//Получаю информацию о разрешении принтера
PointsX=GetDeviceCaps(Printer->Canvas->Handle,LOGPIXELSX)/10;
PointsY=GetDeviceCaps(Printer->Canvas->Handle,LOGPIXELSY)/70;
//Рассчитываю размеры изображения
X1=round((Printer->PageWidth -PaintBox1->Width*PointsX /2) ;
Y1=round((Printer.PageHeight -PaintBox1->Height*PointsY)/2);
X2=round(X1+PaintBox1->Width*PointsX);
Y2=round(Y1+PaintBox1->Height*PointsY);
//Вывод изображения на печать
Printer->Canvas->CopyRect(Rect(XI,Yl,X2,Y2),PaintBox1->Canvas,
Rect(0,0,PaintBox1->Width,PaintBox1->Height));
Printer->EndDoc();
}
//Уничтожаю созданное окно печати
PrintDig->Free();

}


Возникают ошибки.
[C++ Error] Unit1.cpp(1068): E2459 VCL style classes must be constructed using operator new
[C++ Error] Unit1.cpp(1068): E2285 Could not find a match for 'TPrintDialog::TPrintDialog()'

В этой строке
Код

TPrintDialog PrintDlg;


Походу объвил как то не так .
В справке порылся
Цитата

Example:
 [C++]voidfoo(void)
{
     Tobject   o1;     // Error;
     Tobject  *o2 = new TObject();
}

Пробывал 2 вариант но все равно ерор.


Автор: rthsobakas 14.6.2009, 19:51
Ну че? 

Автор: xvr 15.6.2009, 18:46
Код явно переводили с Delphi, причем не удосужились даже откомпилировать.
Вот это 
Код

TPrintDialog PrintDlg;
PrintDlg=TPrintDialog->Create(Owner);
if PrintDlg->Execute{
Должно быть так
Код

TPrintDialog* PrintDlg;
PrintDlg=new TPrintDialog(Owner);
if (PrintDlg->Execute()) {

Автор: A5uKa 16.6.2009, 17:09
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)