Seite 1 von 1
ScrollAreaGadget komplett ausdrucken
Verfasst: 07.09.2013 15:04
von gnaps
Hallo Froum,
Mein ScrollAreaGadget bildet 3 Seiten ab,
wie kann ich jetzt das ScrollAreaGadget komplett wie abgebildet an den Drucker senden ?
Gruß
gnaps
Re: AW: ScrollAreaGadget komplett ausdrucken
Verfasst: 07.09.2013 17:20
von computerfreak
Wie bildet es die seiten ab , bzw was ist in dem gandget ? Web,Image,Canvas oder editor ?
Re: ScrollAreaGadget komplett ausdrucken
Verfasst: 07.09.2013 17:58
von gnaps
Hallo computerfreak,
ich habe hier 3x Imagegadgets und jede menge Textgadgets plaziert.
Jetzt müssen die noch auf Papier.
Gruß
gnaps
Re: ScrollAreaGadget komplett ausdrucken
Verfasst: 07.09.2013 18:37
von computerfreak
Das müsste dann schwierig werden. könnte mit BitBlt_() gehen, weis es aber nicht genau.
Ich schau mir das nochmal an und poste wenns geht einen Beispielcode.
Schönen Abend Dir

Re: ScrollAreaGadget komplett ausdrucken
Verfasst: 07.09.2013 18:45
von computerfreak
Code: Alles auswählen
OpenWindow(0,100,100,800,600,"Test")
ScrollAreaGadget(0,0,0,800,600,1000,900)
ButtonGadget(1,10,10,100,20,"hallo")
StringGadget(2,10,50,100,20,"hallo")
CreateImage(0,1000,900)
iDC=StartDrawing(ImageOutput(0))
BitBlt_(iDC,0,0,1000,900,GetWindowDC_(GadgetID(0)),0,0,#SRCCOPY)
StopDrawing()
OpenWindow(1,190,190,800,600,"Test")
ImageGadget(3,0,0,800,600,ImageID(0))
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Das Kopiert nur das Scroll Area selber,jedoch nicht die Gadgets drinnen. Lag ich wohl doch falsch mit BitBlt

. wäre es möglich alle Gadgets in eine Liste zu schreiben und einzeln zu
"bitblten" ?
Mfg
Re: ScrollAreaGadget komplett ausdrucken
Verfasst: 07.09.2013 19:01
von computerfreak
Es Geht !
Text und ImageGadgets werden kopiert! (Button und String jedoch nicht kp warum)
Code: Alles auswählen
OpenWindow(0,100,100,800,600,"Test")
ScrollAreaGadget(0,0,0,800,600,1000,900)
TextGadget(1,10,10,100,20,"hallo")
CreateImage(2,100,100)
ImageGadget(2,50,50,100,100,ImageID(2))
CreateImage(0,1000,900)
iDC=StartDrawing(ImageOutput(0))
BitBlt_(iDC,0,0,1000,900,GetDC_(GadgetID(0)),0,0,#SRCCOPY)
StopDrawing()
OpenWindow(1,190,190,800,600,"Test - Copy")
ImageGadget(3,0,0,800,600,ImageID(0))
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
damit es Ausgedruckt wird musst du halt PrinterOutput nehmen
Mfg Computerfreak
Re: ScrollAreaGadget komplett ausdrucken
Verfasst: 08.09.2013 19:54
von gnaps
Hallo Forum,
ich habe mich nun dafür entschlossen die Ausgabe an den Drucker mit DrawImage() und DrawText() zu realisieren.
Jetzt habe ich schon das erste Problem, ich möchte die Druckausgabe mit einer Schleife umsetzten damit ich
0-? Seiten drucken kann.
Code: Alles auswählen
UsePNGImageDecoder()
abstand.i=0
LoadImage(20,"D:\Bild1.png")
LoadImage(21,"D:\Bild2.png")
LoadImage(22,"D:\Bild3.png")
OpenWindow(0,100,100,900,600,"Test")
ScrollAreaGadget(0,0,0,900,600,900,3426)
For i=0 To 2
ImageGadget(10+i,10,10+abstand.i,793,1122,ImageID(20+i))
abstand.i=abstand.i+1142
Next
abstand.i=0
If PrintRequester()
If StartPrinting("Print window")
If StartDrawing(PrinterOutput())
For i=0 To 2
DrawImage(ImageID(20+i),10,10+abstand.i,793*6,1122*6)
abstand.i=abstand.i+1142*6
Next i
EndIf
StopDrawing()
EndIf
StopPrinting()
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
In meinem Code werden die 3 Seiten im ScrollAreaGadget richtig angezeigt, beim drucken kommt nur 1 Seite.
Was mache ich falsch ?
Gruß
gnaps
Re: ScrollAreaGadget komplett ausdrucken
Verfasst: 08.09.2013 20:00
von gnaps
Hi nochmal ich,
habs gefunden
Code: Alles auswählen
UsePNGImageDecoder()
abstand.i=0
LoadImage(20,"D:\Bild1.png")
LoadImage(21,"D:\Bild2.png")
LoadImage(22,"D:\Bild3.png")
OpenWindow(0,100,100,900,600,"Test")
ScrollAreaGadget(0,0,0,900,600,900,3426)
For i=0 To 2
ImageGadget(10+i,10,10+abstand.i,793,1122,ImageID(20+i))
abstand.i=abstand.i+1142
Next
abstand.i=0
If PrintRequester()
If StartPrinting("Print window")
If StartDrawing(PrinterOutput())
For i=0 To 2
DrawImage(ImageID(20+i),10,10,793*6,1122*6)
NewPrinterPage()
abstand.i=abstand.i+1142*6
Next i
EndIf
StopDrawing()
EndIf
StopPrinting()
EndIf
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
So gehts.
Gruß gnaps
__________________________________________________
Code-Tags hinzugefügt
08.09.2013
RSBasic