Entwickler-Ecke

Multimedia / Grafik - bpm wird nicht immer richtig gedruckt


delphCitn - Do 08.09.05 12:55
Titel: bpm wird nicht immer richtig gedruckt
hallo,
ich habe mit delphi ein formular erstellt indem ich auf dem canvas gezeichnet habe und per textout was darauf geschrieben habe. jetzt habe ich auch am rand ein bpm drauf gelegt was auch mit ausgedruckt werden soll. das funktioniert auch 100 mal hintereinander aber beim 101sten mal lässt der das bpm einfach weg. hat jmd ne idee wodran es liegt bzw was man dagegen tun kann?

thx


ebs - So 11.09.05 20:15

Aäm... :angel:
also wenn ich dich richtig verstanden habe, dann druckst du dein Form aus. Wahrscheinlich mit Form1.print. Ich würde es aber auf das Canvas von Printer zeichnen.

Delphi-Quelltext
1:
2:
uses Printer;
Printer.Canvas.//

Dein Bild(BMP) würde ich dann mit Suche in: Delphi-Forum, Delphi-Library DRAWIMAGE daraufzeichnen.


delphCitn - So 11.09.05 20:27


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
 BeginDoc;
    
    try
      ScaleX := (Printer.PageWidth/840);//(GetDeviceCaps(Handle, logPixelsX) / Dpi);
      ScaleY := (Printer.PageHeight/1190);//(GetDeviceCaps(Handle, logPixelsY) / Dpi);

//        bit.width := Round(840 * ScaleX);
//        bit.height := Round(1190 * ScaleY);

/// Logo :
        
         printer.Canvas.StretchDraw(Rect(Round(12 * ScaleX),Round(0 * ScaleY),Round((820+12) * ScaleX),Round(85 * ScaleY)),tmp);
     
Canvas.Pen.Width:=Round((ScaleX+ScaleY)/2);

        printer.canvas.MoveTo(Round(5 * ScaleX),Round(350 * ScaleY));
        printer.canvas.LineTo(Round(835 * ScaleX),Round(350 * ScaleY));


....
so in etwa sieht der code aus... ich mache also alles über printer.canvas.

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.


ebs - Mo 12.09.05 16:06

:gruebel: Und was funktioniert jetzt nicht, oder funktioniert es doch. Bitte etwas genauer :mahn:


delphCitn - Mo 12.09.05 19:51

naja, wie gesagt es funktioniert... aber ca alle 500 ausdrucke fehlt einmal das bmp. wenn ich es dann nochmal drucke also das 501. te mal gehts wieder... evtl sind auch 1000 ausdrucke.. ist schon ne ganze menge.