Entwickler-Ecke
Windows API - GrafikDruck Skalieren
schulle - So 11.05.03 20:57
Titel: GrafikDruck Skalieren
Guten tag.
Meinem Problem liegt folgender Quelltext zugrunde:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| begin if printdialogQC.Execute then Begin Datei:=workdir+'Print.prt'; temp:=TStringlist.Create; temp.LoadFromFile(Datei); for i:=0 to temp.Count-1 do temp[i]:=XORString(temp[i],'abc123'); temp.SaveToFile(Datei); temp.Free; with Printer do begin BeginDoc; Struktogramm1P.PaintTo(Handle,610,10); EndDoc; end; end; end; |
Nach dem obengeschrieben funktioniert zwar das ausdrucken von grafiken die auf einem panel sind-aber diese sind bei einer auflösunmg von 600x600 nur etwa 4x4cm groß-ich hätte damit aber gern das ganze blatt gefüllt! kann mir jemand helfen wie ich das vergrößern kann!?
Moderiert von
Tino: Code-Tags hinzugefügt.
Alibi - So 11.05.03 21:06
Hi,
du hattest schonmal ein Thread gestartet, wo es ums Drucken ging. Ich habe dir dort alle nötigen Funktionen genannt, die auch weitaus einfacher anzuwenden sind, als das, was du da versuchst. Unter anderem hab ich dort auch die Funktion SetMapMode genannt.
schulle - So 11.05.03 21:11
schön und gut-aber egal welche einstellung ich über setmapmode vornehme-es sieht immer gleich aus! nützt mir also nicht viel
Alibi - So 11.05.03 21:17
Das mag an deiner seltsamen Methode liegen, mit der du momentan druckst.
schulle - So 11.05.03 21:19
mag ja sein-aber so druckt er wenigstens! nur eben nicht so wie ich es gern hätte!
schulle - So 11.05.03 21:34
Und wie sieht es mit der Variante aus-kann man hiermit das besser einstellen? die druckt nämlich auch-aber eben auch zu klein!
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| begin Datei:=workdir+'test4.stg'; temp:=TStringlist.Create; temp.LoadFromFile(Datei); for i:=0 to temp.Count-1 do temp[i]:=XORString(temp[i],'abc123'); temp.SaveToFile(Datei); temp.Free;
with Printer do begin BeginDoc; Struktogramm1P.PaintTo(Handle, 10, 10); EndDoc; end; End; |
ist das gleiche jetzt was oben steht-hab das oben mittlerweile geändert!
trotzdem ist mein problem nicht gelöst!
Moderiert von
Tino: Code-Tags hinzugefügt.
Alibi - So 11.05.03 23:00
Jemine, nungut, egal, hier die Lösung.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var DestRec: TRect; begin DestRec := Panel123.Canvas.ClipRect; DestRec.Top := - DestRec.Top; destRec.Bottom := - DestRec.Bottom; Printer.BeginDoc; SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); Printer.Canvas.CopyRect(DestRec,Panel123.Canvas,Panel123.Canvas.ClipRect); Printer.EndDoc; end; |
Fertig, das ganze ist ungetestet, aber das ist auf jeden Fall ein möglicher Weg.
Hoffe, du versuchst das wenigstens nachzuvollziehen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!