HBRINT -> Function GetPrinterName( cWindowsDruckerObjekt )

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 12 Mal
Danksagung erhalten: 5 Mal

HBRINT -> Function GetPrinterName( cWindowsDruckerObjekt )

Beitrag von Wolfgang_B »

Hallo,
mir ist in der Function -> GetPrinterName( cWindowsDruckerObjekt ) von Huberts Printerklasse nicht klar, warum die " if cPrinterName = NIL" verwendet wird. Aufgrund der Definition ist doch "cPrinterName" immer NIL??

Code: Alles auswählen

function GetPrinterName( cWindowsDruckerObjekt )
   static cPrinterName := NIL
   local oP, aL, i := 0
   
   if cPrinterName = NIL
      oP := XbpPrinter():new()
      if oP = NIL
         MsgBox("Druckerobjekt konnte nicht erzeugt werden","GetPrinterName()")
			USER_LOG("SYS", "Druckerobjekt konnte nicht erzeugt werden", "VWIN_HBDRUCK", "","GetPrinterName()", "" ) 
         quit
      else
         aL := oP:list()
         i := AScan( aL, {|x| lower(x) == lower(cWindowsDruckerObjekt) } )    // genau
         if i = 0
            i := AScan( aL, {|x| lower(cWindowsDruckerObjekt) $ lower(x) } )  // einigermassen, z.B. bei Netzwerkdrucker
         endif
      endif
      if i > 0
         cPrinterName := aL[i]
      else
         MsgBox("Drucker -> "+cDrucker+" konnte nicht gefunden werden ", "GetPrinterName()")
			USER_LOG("SYS", "Drucker -> "+cDrucker+" konnte nicht gefunden werden", "VWIN_HBDRUCK", "","GetPrinterName()", "" ) 
      endif
   endif
   
return cPrinterName
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2797
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 173 Mal
Danksagung erhalten: 11 Mal
Kontaktdaten:

Re: HBRINT -> Function GetPrinterName( cWindowsDruckerObjekt )

Beitrag von UliTs »

Wolfgang,

cPrinterName ist als lokale Static-Variable deklariert. Deshalb wird cPrinterName nur 1x initialisiert und nicht etwa bei jedem Aufruf von GetPrintername().

Edit: etwas -> etwa
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 475
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 12 Mal
Danksagung erhalten: 5 Mal

Re: HBRINT -> Function GetPrinterName( cWindowsDruckerObjekt )

Beitrag von Wolfgang_B »

ok, vielen Dank!
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2797
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 173 Mal
Danksagung erhalten: 11 Mal
Kontaktdaten:

Re: HBRINT -> Function GetPrinterName( cWindowsDruckerObjekt )

Beitrag von UliTs »

Gern geschehen. Es gibt auch oben rechts den Button "Daumen hoch". Damit kann man sich auf bedanken :D .
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten