Seite 1 von 1

Nach Exe erstellen keine Druckausgabe-- was fehlt?

Verfasst: 30.06.2014 02:06
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

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

Verfasst: 30.06.2014 02:17
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.

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

Verfasst: 30.06.2014 06:53
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.

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

Verfasst: 30.06.2014 11:06
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