Autor Beitrag
JeanvanHees
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 146

win 2000
D6 Pers
BeitragVerfasst: Fr 27.09.02 09:56 
Tag :wink2: leute
So mach ich's jetzt:
ausblenden Quelltext
1:
Printer.Canvas.Draw(0,0,TGraphic(Mainform.Image2.Canvas));					

Aber das geht nicht gut. :cry:
Ich habe also verschiedene sachen gezeichnet aufs canvas und die mussen geprint werden.
Später muß ich auch etwas mehr parameter beim printen angeben können;also, von wo bis wo u.s.w.

_________________
Cause even though I know things won't get any better, they can certainly never get much worse!
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Fr 27.09.02 12:10 
Was funktioniert denn daran nicht?
Auf Anhieb würde ich raten, da du ein TGraphic an TCanvas.Draw übergeben musst, solltest du nicht den Canvas deines TImage konvertieren, sondern direkt das Image nehmen, also:
Zitat:

Printer.Canvas.Draw(0, 0, Mainform.Image2);

Weiß aber nicht, ob das funktioniert, ich arbeite damit nicht ;c)
Ansonsten kannst du aber doch auch alles, was du auf Image2.Canvas gezeichnet hast, auch auf Printer.Canvas zeichnen...

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
JeanvanHees Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 146

win 2000
D6 Pers
BeitragVerfasst: Fr 27.09.02 12:20 
Er gibt mit die draw funktion an:
incompatible types: Timage and TGraphic;

Darum hab ich's mal mit den typecasting probiert.
Das blöde ist, in der help steht das es so gehen muß wie du sagst...aber
dan übernimmt er nicht was ich zeichne auf den canvas...ich kriege ein weisses papier...

_________________
Cause even though I know things won't get any better, they can certainly never get much worse!
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Sa 28.09.02 03:58 
Hi,

das einfachste ist einfach:
ausblenden Quelltext
1:
Printer.Canvas.CopyRect(Rect(0,0,Mainform.Image2.Height,Mainform.Image2.Width),Mainform.Image2.Canvas,Rect(0,0,Mainform.Image2.Height,Mainform.Image2.Width));					


ABER, du mußt dran denken das ein bild mit sagen wir 200x200 Pixeln auf dem ausdruck Winzig ist :)
Ein DinA4 blatt hat bei 300dpi (TintenStrahl) eine größe von 3508x2480 Pixeln... bei 600dpi (LaserDrucker) halt das doppelte... (um die größe variabel herauszubekommen kannste Printer.PageHeight und Printer.PageWidth nehmen)

Au'revoir,
Aya
JeanvanHees Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 146

win 2000
D6 Pers
BeitragVerfasst: Mo 30.09.02 08:50 
Danke Aya aber ich krieg noch immer ein weisses papier...
Das image ist 20000*600
Ich mach es erst ganz weiß und dan zeichne ich linien und text aufs canvas...
Ich bin ziemlich ratlos und ein wenig frustriert :evil:
Ich hoffe das jemand jetzt weiß was das problem ist... :cry:

_________________
Cause even though I know things won't get any better, they can certainly never get much worse!
Maverick
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Mo 30.09.02 13:12 
Also erstmal : Das Bild is ziemlich groß, da machtWindows schon probleme: ich hab auch mal mit Bildern in der Größenordnung rumgespielt und bekam beim zeichnen schon schutzverletzungen in der dibeng.dll, und das ist ne Windows-Library, keine von Delphi.

irgendwo bei www.efg2.com im Computerlab gibts ne analyse über große Bitmaps in Windows.

An sonsten kann die API Bitblt bereiche von einer Canvas zur anderen kopieren, Source und Destination sind jeweils die Canvas.Handle

So kannst du ja die sachen von deiner Canvas auf die Printer.Canvas Blitten

_________________
There are 10 types of people: Those who can read binary and those who can't
JeanvanHees Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 146

win 2000
D6 Pers
BeitragVerfasst: Mo 30.09.02 14:05 
:D
Danke Maverick.
Funktioniert...nur ist es superklein (1200dpi)
und die printer.PageHeight und printer.PageWidth sind read only...also die kann ich nicht ändern

_________________
Cause even though I know things won't get any better, they can certainly never get much worse!