Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Problem beim Drucken von *.wmf (mehrmals das selbe Bild) (https://www.delphipraxis.net/81442-problem-beim-drucken-von-%2A-wmf-mehrmals-das-selbe-bild.html)

Ravus80 27. Nov 2006 14:26


Problem beim Drucken von *.wmf (mehrmals das selbe Bild)
 
Hallo,

ich konnte zu meinem Problem leider nicht find, was mich weiter bringen konnte. Vielleicht hat von euch ja jemand die Lösung.
Nun zu meinem Problem:

ich möchte ein Logo, das ich als *.wmf in ein TImage geladen habe, mehrmals auf eine Seite drucken. Klappt auch soweit, allerdings
ist ab dem zweiten Logo alles verzerrt. Ich glaube es lieg daran, dass ich das TRect nicht initialisiere. Leider habe ich keine Ahnung wie das funktioniert. Oder liegt es vielleicht ganz wo anders dran? Ich bin über jede Hilfe dankbar!

Delphi-Quellcode:
procedure printCart;
var
rect : TRect;
begin
 with Printer.Canvas do begin
   rect := (Bounds(x,-y,(x+400),-(y+180)));
   StretchDraw(rect,FormMain.ImageLogoRot.Picture.Metafile);

 end;
end;

Delphi-Quellcode:
   y := 100;
   x := 200;
   z := 1;

     Table1.First;
     while not Table1.Eof do
     begin
       printCart;
       Table1.Next;
       if z/2 = Round(z/2) then begin
         y := y + 500; x := 200;
       end
       else x := 1000;

       z := z + 1;
     end;
das ist der Code-Auszug, um den es geht. Vielen Dank im Voraus.

igel457 27. Nov 2006 14:36

Re: Problem beim Drucken von *.wmf (mehrmals das selbe Bild)
 
Du weißt ja was "bounds" macht?
Bounds erstellt ein Rechteck mit an Position X,Y mit einer Breite und einer Höhe.

Ersetze "Bounds" durch "Rect".

Hoffe das hilft...

Ravus80 27. Nov 2006 14:50

Re: Problem beim Drucken von *.wmf (mehrmals das selbe Bild)
 
Danke erstmal! Aber das klappt leider nicht. Ohne Bounds geht es gar nicht. Das erste Logo wird auch perfekt angezeigt. Ab dem zweiten verzehrt sich dann jedes Logo ein kleines Stück mehr.

Der_Unwissende 27. Nov 2006 15:08

Re: Problem beim Drucken von *.wmf (mehrmals das selbe Bild)
 
Zitat:

Zitat von Ravus80
Danke erstmal! Aber das klappt leider nicht.

Hi,
wäre schön wenn du hier jetzt noch sagen würdest was genau nicht klappt!
An sich wird es an der Benennung deiner Variablen liegen, wenn du innerhalb der Prozedur einen Namen verwendest, wird dieser erst in den lokalen Variablen (und Funktionen) gesucht, danach in den globalen Variablen und erst dann in den anderen Untis. Deswegen einfach die Variable umbenennen und/oder das rect qualifizieren:

Delphi-Quellcode:
procedure printCart;
var
buffer : TRect;
begin
with Printer.Canvas do begin
   buffer := (rect(x,-y,(x+400),-(y+180)));
   StretchDraw(rect,FormMain.ImageLogoRot.Picture.Metafile);

end;
end;
oder

Delphi-Quellcode:
procedure printCart;
var
rect : TRect;
begin
with Printer.Canvas do begin
   rect := (Classes.Rect(x,-y,(x+400),-(y+180)));
   StretchDraw(rect,FormMain.ImageLogoRot.Picture.Metafile);

end;
end;
Gruß Der Unwissende

Ravus80 27. Nov 2006 15:20

Re: Problem beim Drucken von *.wmf (mehrmals das selbe Bild)
 
Vielen Dank! Da weiß "Der Unwissende" mehr als ich. ;-)

Mit der zweiten Lösung klappt es perfekt. thx


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz