Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизВыручайте. Печать Bitmap. Найти похожие ветки
← →
siriusP (2004-04-14 18:18) [0]Друзья выручайте.
Access violation при печати.
procedure PrintMe(aPrinter: TPrinter; aBitmap: TBitmap); //aCanvas: TCanvas);
begin
aPrinter.Canvas.StretchDraw(aBitmap.Canvas.ClipRect, aBitmap); // вот здесь Access violation
//aPrinter.Canvas.CopyRect(aCanvas.ClipRect, aCanvas, aCanvas.ClipRect);
end;
procedure Printbill;
var //tmpCanvas: TCanvas;
tmpBitmap: TBitmap;
begin
tmpBitmap:= TBitmap.Create;
try
Printer.BeginDoc;
try
tmpBitmap:= Createbill();
PrintMe(Printer, tmpBitmap);
finally
Printer.EndDoc;
end;
finally
tmpBitmap.Free;
end;
end;
function CreateSticker(): TBitmap;
var tmpCanvas: TCanvas;
tmpBitmap: TBitmap;
begin
tmpBitmap:= TBitmap.Create;
try
//tmpCanvas.Handle:= GetDeviceContext(notUsed);
x:= 0; y:= 0;
tmpBitmap.Canvas.Font.Size:= 6;
tmpBitmap.Canvas.TextOut(x+130,y+5,"Текст0");
tmpBitmap.Canvas.TextOut(x+130,y+65,"Текст1");
tmpBitmap.Canvas.Rectangle(x+130,y+130,x+1000,y+127);
tmpBitmap.Canvas.TextOut(x+10,y+140,"Текст2");
tmpBitmap.Canvas.Font.Size:= 9;
tmpBitmap.Canvas.Font.Style:= [fsBold];
result:= tmpBitmap;//.Canvas;
finally
//tmpCanvas.Free;
tmpBitmap.Free;
end;
end;
← →
metalfan © (2004-04-14 18:26) [1]дааа...
что за функция CreateBill?
зачем ты создаешь/особождаешь tmpBitmap в куче мест?
> function CreateSticker(): TBitmap;
> var tmpCanvas: TCanvas;
> tmpBitmap: TBitmap;
> begin
> tmpBitmap:= TBitmap.Create;
> try
> //tmpCanvas.Handle:= GetDeviceContext(notUsed);
> x:= 0; y:= 0;
> tmpBitmap.Canvas.Font.Size:= 6;
> tmpBitmap.Canvas.TextOut(x+130,y+5,"Текст0");
> tmpBitmap.Canvas.TextOut(x+130,y+65,"Текст1");
> tmpBitmap.Canvas.Rectangle(x+130,y+130,x+1000,y+127);
> tmpBitmap.Canvas.TextOut(x+10,y+140,"Текст2");
> tmpBitmap.Canvas.Font.Size:= 9;
> tmpBitmap.Canvas.Font.Style:= [fsBold];
> result:= tmpBitmap;//.Canvas;
> finally
> //tmpCanvas.Free;
> tmpBitmap.Free; в частности ЗДЕСЬ???
> end;
> end;
← →
siriusP (2004-04-14 18:31) [2]Чтобы освободить память
← →
metalfan © (2004-04-14 18:35) [3]намана... значит ты типа создал битмап, нарисовал на нем и прибил...
а смысл? что функция то возвращает? указатель на освобожденный объект?
← →
siriusP (2004-04-14 18:41) [4]Да согласен, исправил на result.Canvas
← →
siriusP (2004-04-14 18:49) [5]Но на принтер ничего не приходит???
← →
metalfan © (2004-04-14 19:02) [6]в
> function CreateSticker(): TBitmap;
tmpBitmap убрать нафик, заменить на Result
> begin
> tmpBitmap:= TBitmap.Create; Лишнее создание битмапа - он создается в CreateSticker
> try
> Printer.BeginDoc;
> try
> tmpBitmap:= Createbill();
> PrintMe(Printer, tmpBitmap);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c