ScrollAreaGadget komplett ausdrucken

Anfängerfragen zum Programmieren mit PureBasic.
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

ScrollAreaGadget komplett ausdrucken

Beitrag 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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
computerfreak
Beiträge: 112
Registriert: 23.07.2012 19:19

Re: AW: ScrollAreaGadget komplett ausdrucken

Beitrag von computerfreak »

Wie bildet es die seiten ab , bzw was ist in dem gandget ? Web,Image,Canvas oder editor ?
PureBasic: Immer das neueste
Windows 8.1 / AMD FX 6100 / R9280X / 8GB RAM
Macbook Pro 2015 Retina
Dell Inspiron 1720 mit Linux Mint
...Und diverse Kleinstcomputer
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: ScrollAreaGadget komplett ausdrucken

Beitrag von gnaps »

Hallo computerfreak,

ich habe hier 3x Imagegadgets und jede menge Textgadgets plaziert.
Jetzt müssen die noch auf Papier.

Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
computerfreak
Beiträge: 112
Registriert: 23.07.2012 19:19

Re: ScrollAreaGadget komplett ausdrucken

Beitrag 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
PureBasic: Immer das neueste
Windows 8.1 / AMD FX 6100 / R9280X / 8GB RAM
Macbook Pro 2015 Retina
Dell Inspiron 1720 mit Linux Mint
...Und diverse Kleinstcomputer
computerfreak
Beiträge: 112
Registriert: 23.07.2012 19:19

Re: ScrollAreaGadget komplett ausdrucken

Beitrag 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
PureBasic: Immer das neueste
Windows 8.1 / AMD FX 6100 / R9280X / 8GB RAM
Macbook Pro 2015 Retina
Dell Inspiron 1720 mit Linux Mint
...Und diverse Kleinstcomputer
computerfreak
Beiträge: 112
Registriert: 23.07.2012 19:19

Re: ScrollAreaGadget komplett ausdrucken

Beitrag 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
PureBasic: Immer das neueste
Windows 8.1 / AMD FX 6100 / R9280X / 8GB RAM
Macbook Pro 2015 Retina
Dell Inspiron 1720 mit Linux Mint
...Und diverse Kleinstcomputer
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: ScrollAreaGadget komplett ausdrucken

Beitrag 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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: ScrollAreaGadget komplett ausdrucken

Beitrag 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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Antworten