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 :D

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 :oops: . 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