2Asher
а в чем смысл для PreView делать битмап с разрешением принтера? делайте с размерами окна отображения.
хотелось сделать программу универсальней, а так как в разных принтерах разное dpi то и разное PageWidth,PageHeight.
Чем болеше значения, тем больше смогу вывести точек графика на печать.
P.S. памяти не хватает по причине ее фрагментации. Не может операционка выделить один блок такого размера.
2dimchik_b
А в каком именно месте выкидывает "Недостаточно памяти"?
меня это тоже заитересовало, провел научное изыскание , на нобелевскую премию не потянет но может кому и пригодиться
тестировал на таком коде
создал переносимый экзешник
Printer()->Orientation=poLandscape;
Printer()->BeginDoc();
Graphics::TBitmap *bmap=new Graphics::TBitmap;
bmap->Width=Printer()->PageWidth;
bmap->Height=Printer()->PageHeight;
Printer()->Canvas->Pen->Width=1;
for(int i=0;ibmap->Width;i+=350)
{
bmap->Canvas->MoveTo(i+350,0);
bmap->Canvas->LineTo(i,bmap->Height);
}
BitBlt(Printer()->Canvas->Handle,0,0,Printer()->PageWidth,Printer()->PageHeight,bmap->Canvas->Handle,0,0,SRCCOPY);
delete bmap;
Printer()->EndDoc();
проц память операционка принтер результат
Sempron 3GHz 512M WinXPsp2 Canon LBP 2900
Intel Core 2 2G WinXPsp2 Canon LBP 2900
AMD 900MHz 256M WinXP Epson R300
AMD 900MHz 256M WinXP HP LaserJet 1010
AMD 900MHz 256M WinXP Canon LBP 1120
Pentium 3GHz 1G WinXPsp2 Canon LBP 1120
Intel Core 2 2G WinXPsp1 Canon LBP 1120
AMD 2GHz 256М WinXPsp2 HP DeskJet 500
AMD 2GHz 256М WinXPsp2 Canon IP5200
Celeron 500 128M Win98 HP DeskJet 500
Celeron 500 128M Win98 Canon IP5200
вывод: ХЗ
подозреваю что есть зависимость от памяти принтера
P.S. народ, если у кого есть доступ к матричникам поновее(Epson LX300,Epson 2180, OKI Microline , и т.д.) для работы надо, заранее спасибо