Nach Exe erstellen keine Druckausgabe-- was fehlt?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
kayfr72
Beiträge: 129
Registriert: 12.09.2004 19:13
Wohnort: Ansbach/Weihenzell
Kontaktdaten:

Nach Exe erstellen keine Druckausgabe-- was fehlt?

Beitrag von kayfr72 »

Hey,

Nach dem ich mit einer eigenen Druckausgabe auseinander gesetzt hatte und die nach dem kompilieren erfolgreich funktionierte, erstellte ich das EXE-File. Beim Testen des fertigen Programm erschien in der Druckausgabe ein leeres Papier. Wirklich seltsam :o
Fehlt dem was?

Hier der Codeauszug:

Code: Alles auswählen

 doc2Info.DOC_INFO_1
  Druckerwahl =GetGadgetState(301)
  Drucker$ =GetGadgetItemText(301, Druckerwahl )
PrinterDC.i = CreateDC_("WINSPOOL",Drucker$,0,0)
PrintersWidth=GetDeviceCaps_(PrinterDC,#HORZRES)
Debug PrintersWidth
PrintEintrag = GetGadgetState(396)-1
EndePrint = GetGadgetState(395)-1
CloseWindow(3)
PrintersHeight=GetDeviceCaps_(PrinterDC,#VERTRES)
Debug PrintersHeight
mDI.DOCINFO 
    mDI\cbSize = 12 
    mDI\lpszDocName = @"EAN-Tabelle" 
    mDI\lpszOutput = 0 
    mDI\fwType = 0
    
    StartDoc_(PrinterDC,mDI)
    StartPage_(PrinterDC)
    Seite = 1
    CreateImage(10,1200,1700,24,RGB(255,255,255))
    ResetList(Liste())
    
    
    PrintSeitenEintrag = 0
    Font1 =LoadFont(1,"Arial",10,#PB_Font_Bold)
    Font2 =LoadFont(2,"Arial",10)
    While SelectElement( Liste(),PrintEintrag) <> 0
      CreateImage(11,64,64,32,RGB(255,255,255))
      CopyMemToImage(@Liste()\CoverSpeicher[0],11)
    ImagehDC = StartDrawing(ImageOutput(10))
      DrawingMode(#PB_2DDrawing_Outlined)
      Box(0,0,250,30,RGB(0,0,0))
      Box(250,0,420,30,RGB(0,0,0))
      Box(670,0,170,30,RGB(0,0,0))
      Box(840,0,358,30,RGB(0,0,0))

      DrawingFont(Font1)
      
      DrawText(100,8,"EAN-Nummer",RGB(0,0,0),RGB(255,255,255))
      DrawText(320,8,"Titel",RGB(0,0,0),RGB(255,255,255))
      DrawText(750,8,"Jahr",RGB(0,0,0),RGB(255,255,255))
      DrawText(930,8,"Cover",RGB(0,0,0),RGB(255,255,255))
      DrawingFont(Font2)
      DrawText(100,75+80* PrintSeitenEintrag,PeekS(@Liste()\EANNr[0]),RGB(0,0,0),RGB(255,255,255))
      DrawText(320,75+80* PrintSeitenEintrag,PeekS(@Liste()\Titel[0]),RGB(0,0,0),RGB(255,255,255))
      DrawText(750,75+80* PrintSeitenEintrag,PeekS(@Liste()\Jahr[0]),RGB(0,0,0),RGB(255,255,255))
      DrawImage(ImageID(11),920,43+80* PrintSeitenEintrag,64,64)
      StopDrawing()
      If EndePrint = Printeintrag
   Break
   EndIf
      PrintEintrag = PrintEintrag +1
      PrintSeitenEintrag = PrintSeitenEintrag+1
      If PrintSeitenEintrag = 19
        PrintSeitenEintrag = 0
        
        ResizeImage(10,PrintersWidth,PrintersHeight)
        comDC =CreateCompatibleDC_(PrinterDC)
   SelectObject_(comDC,ImageID(10))
   
   Debug  BitBlt_(PrinterDC,1,1,PrintersWidth-1,PrintersHeight-1,comDC,1,1,#SRCCOPY)
   DeleteDC_(comDC)
   EndPage_(PrinterDC)
   CreateImage(10,1200,1700,24,RGB(255,255,255))
   StartPage_(PrinterDC)
   
 EndIf
 
 
    Wend   
    ResizeImage(10,PrintersWidth,PrintersHeight)
        comDC =CreateCompatibleDC_(PrinterDC)
   SelectObject_(comDC,ImageID(10))
   
   Debug  BitBlt_(PrinterDC,1,1,PrintersWidth-1,PrintersHeight-1,comDC,1,1,#SRCCOPY)
   DeleteDC_(comDC)
   
   
   
    
    
   EndPage_(PrinterDC)
   EndDoc_(PrinterDC)
 DeleteDC_(PrinterDC)
Hab da keine Erklärung dafür!!!
:iamwithstupid:
Gruß Kayfr72
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Nach Exe erstellen keine Druckausgabe-- was fehlt?

Beitrag von STARGÅTE »

Schon mal geguckt, ob in der EXE überuaot die ganzen Handels gültig sind, da sehe ich keinerlei abfragen in deinem Code.

Unterschiede zwischen IDE-Start und Kompilieren der EXE sind vorallem, dass sich das Arbeitsverzeichnis ändert!
Das kann fehler bei relativen Dateipfaden erzeugen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Nach Exe erstellen keine Druckausgabe-- was fehlt?

Beitrag von Danilo »

Das ist auch zweimal Folgendes drin:

Code: Alles auswählen

   Debug  BitBlt_(PrinterDC,1,1,PrintersWidth-1,PrintersHeight-1,comDC,1,1,#SRCCOPY)
Alles hinter 'Debug' ist in der finalen EXE nicht enthalten, wird also (ohne Debugger) einfach ignoriert.
In der IDE, ohne Debugger, sollte das gleiche Ergebnis kommen wie mit der EXE.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
kayfr72
Beiträge: 129
Registriert: 12.09.2004 19:13
Wohnort: Ansbach/Weihenzell
Kontaktdaten:

Re: Nach Exe erstellen keine Druckausgabe-- was fehlt?

Beitrag von kayfr72 »

Danilo hat geschrieben:Das ist auch zweimal Folgendes drin:

Code: Alles auswählen

   Debug  BitBlt_(PrinterDC,1,1,PrintersWidth-1,PrintersHeight-1,comDC,1,1,#SRCCOPY)
Alles hinter 'Debug' ist in der finalen EXE nicht enthalten, wird also (ohne Debugger) einfach ignoriert.
In der IDE, ohne Debugger, sollte das gleiche Ergebnis kommen wie mit der EXE.
Genau das war's !! :bounce:

Danke für die schnelle Hilfe hier im Forum. Einfach Spitze!

KayFr72
Antworten