UserLib JHPrinter_xxx für PB 540

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

UserLib JHPrinter_xxx für PB 540

Beitrag von sharkpeter »

//Edit 16.10.2015
Aktuelle Version: V1.29 vom 16.10.2015 hier (PB 5.40): meine Lib Seite

Hallo,

eine weitere UserLib für PB, JHPrinter_400.

Sind wieder ein paar Sachen die ich für ein Projekt benötige:

- Drucker Blatt- und Druckgröße in Pixel und mm
- Druckerauflösung

Ich hoffe es funktioniert alles so wie es soll. Tests haben nichts
gegenteiliges ergeben. Die Lib habe ich auch unter 4.01 und 4.02
laufen lassen.

Im Paket ist die Library, eine Hilfe (de/und mein schlechtes en) sowie
ein Beispiel-Code enthalten.

Wer die aktuellste Version oder eine der letzten Versionen von JHReg
hat, die Installation läuft gleich ab wie dort. Das Example wird auch in den
gleichen Ordner kopiert. Installationsordner der Lib ist der der zuletzt
aktiven PB-Version. Man kann auch überall anders hin installieren, aber
nur per Auswahländerung.

Bei Problemen bitte ich um Information, am besten auf meiner HP im
Forum, wer mag, sonst halt hier.

Gruß Jens

Edit: 05.10.2013 Themenname geändert
Zuletzt geändert von sharkpeter am 17.10.2015 08:14, insgesamt 7-mal geändert.
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

neue Version mit neuen Befehlen zur Formatierung von Texten und deren
Anpassung an die Druckumgebung. Zusätzlich eingebaut habe ich auch
einen Befehl mit dem man Texte für Gadget in Blocksatz darstellen kann.

Außerdem ist jetzt auch das Anwendungsbeispiel fertiggestellt.

//Edit: 16.02.2007

Hilfe noch um die neuen Befehle ergänzt.

Hier mal ein Beispiel (Lib muß installiert sein :D )

Code: Alles auswählen

tx1.s="Eine Fließtextausgabe in ein Textgadget"
; Der Text
TxtWid.l=510; Die Breite des späteren Gadget vermindert um 4 Pixel
tx.s="Im folgenden werden Sie aufgefordert, den Drucker auszuwählen. "
tx  +"Ein Abbruch führt zur Beendigung des Programms. Verschiedene "
tx  +"Einstellungen sind abhängig vom verwendeten Drucker und dessen "
tx  +"Einstellungen. Auf diese nimmt das Programm Bezug. Ändern Sie "
tx  +"die Einstellungen für den Drucker separat, diese können von "
tx  +"hier nicht beeinflußt werden.  "
; den gesamten Fließtext anpassen in Blocksatz
; setzt den Font für das Gadget, sollte man machen ;)
FontHe.l=JHPrtSetGadgetFont("ARIAL",10,0,#PB_Font_Bold)
tx2.s=JHPrtGadgetBlockText(tx, TxtWid, 1, "ARIAL", FontHe, #PB_Font_Bold)
tx+Chr(13)+Chr(13)
tx+"Und nun das Ganze im Blocksatz wiederholen."
tx+Chr(13)+Chr(13)
tx+tx2
tx=tx1+Chr(13)+Chr(13)+tx

; Informationsfenster öffnen
win.l=OpenWindow(#PB_Any,  0,  0,520,290,"Testprogramm JHPrinter_400 UserLibrary",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If win
  If CreateGadgetList(WindowID(win))
    TextGadget  (#PB_Any,  5,  0,514,280,tx)
  EndIf
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Quit=#True
    EndSelect
  Until Quit
EndIf  
Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@All,

auch diese Lib sollte unter Vista funktionieren.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
teachco
Beiträge: 48
Registriert: 12.07.2005 19:44

Beitrag von teachco »

Habe die Lib(s) bzgl. Blocksatz ausprobiert. Funktioniert bestens. Gute Arbeit. Für das angegebene Beispiel braucht man aber alle drei Libs von Deiner HP, also Gadget-, Printer-, Registry-Lib, sonst kennt der Compiler immer irgendwelche Funktionen nicht. Das steht nirgends oder ich hab es übersehen.

Ich hab mal etwas umsortiert, um Fließ- und Blocksatz stärker zu trennen. Dabei ist mir eine Kleinigkeit aufgefallen. An einer Stelle wird zu früh umgebrochen.

Code: Alles auswählen

tx.s= ""
tx  +"Fließtextausgabe in ein Textgadget: " 
tx  + Chr(13) + Chr(10)
tx  + Chr(13) + Chr(10)
tx  +"Im folgenden werden Sie aufgefordert, den Drucker auszuwählen. " 
tx  +"Ein Abbruch führt zur Beendigung des Programms. Verschiedene " 
tx  +"Einstellungen sind abhängig vom verwendeten Drucker und dessen " 
tx  +"Einstellungen. Auf diese nimmt das Programm Bezug. Ändern Sie " 
tx  +"die Einstellungen für den Drucker separat, diese können von " 
tx  +"hier nicht beeinflußt werden." 

tx2.s = ""
tx2   +"Und nun das Ganze im Blocksatz wiederholen: " 
tx2   + Chr(13) + Chr(10)
tx2   + Chr(13) + Chr(10)
tx2   +"Im folgenden werden Sie aufgefordert, den Drucker auszuwählen. " 
tx2   +"Ein Abbruch führt zur Beendigung des Programms. Verschiedene " 
tx2   +"Einstellungen sind abhängig vom verwendeten Drucker und dessen " 
tx2   +"Einstellungen. Auf diese nimmt das Programm Bezug. Ändern Sie " 
tx2   +"die Einstellungen für den Drucker separat, diese können von " 
tx2   +"hier nicht beeinflußt werden." 

FontName.s = "Verdana"
FontStyles = #PB_Font_Bold|#PB_Font_Underline | #PB_Font_Italic
FontHe.l = JHPrtSetGadgetFont(FontName,9,0,FontStyles) 
TxtWid.l = 410 ; Die Breite des späteren Gadget. Für Blocktext vermindert um 4 Pixel 
tx2 = JHPrtGadgetBlockText(tx2, TxtWid-4, 1, FontName, FontHe, FontStyles)  

; Informationsfenster öffnen 
win.l=OpenWindow(#PB_Any,  0,  0, 600, 500, "Testprogramm JHPrinter_400 UserLibrary",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
If win 
  If CreateGadgetList(WindowID(win)) 
    TextGadget(#PB_Any,  5,  0 , 514, 100, tx) 
    TextGadget(#PB_Any,  5, 120, TxtWid, 300, tx2) 
  EndIf 
  Repeat 
    Select WaitWindowEvent() 
      Case #PB_Event_CloseWindow 
        Quit=#True 
    EndSelect 
  Until Quit 
EndIf
teachco
Beiträge: 48
Registriert: 12.07.2005 19:44

Beitrag von teachco »

Jetzt habe ich das Konzept verstanden. Innerhalb des Blocksatzes darf es keinen Umbruch geben. Andernfalls verrechnet sich die Funktion. Wenn man also allein den Text mit Blocksatz kapselt, dann geht alles gut. Die Überschrift mit zwei Zeilenumbrüchen muss man davon abtrennen und nachträglich zufügen. JHPrtGadgetBlockText darf also keine Umbrüche verarbeiten. Vielleicht läßt sich da ja noch ein Trick finden, um das DAU-sicher zu machen.
Hier die entsprechend modifizierte Version.

Code: Alles auswählen

tx.s= ""
tx  +"Fließtextausgabe in ein Textgadget: " 
tx  + Chr(13) + Chr(10)
tx  + Chr(13) + Chr(10)
tx  +"Im folgenden werden Sie aufgefordert, den Drucker auszuwählen. " 
tx  +"Ein Abbruch führt zur Beendigung des Programms. Verschiedene " 
tx  +"Einstellungen sind abhängig vom verwendeten Drucker und dessen " 
tx  +"Einstellungen. Auf diese nimmt das Programm Bezug. Ändern Sie " 
tx  +"die Einstellungen für den Drucker separat, diese können von " 
tx  +"hier nicht beeinflußt werden." 


tx2_title.s = "Und nun das Ganze im Blocksatz wiederholen: " 
tx2_title     + Chr(13) + Chr(10)
tx2_title     + Chr(13) + Chr(10)

tx2.s = ""
tx2   +"Im folgenden werden Sie aufgefordert, den Drucker auszuwählen. " 
tx2   +"Ein Abbruch führt zur Beendigung des Programms. Verschiedene " 
tx2   +"Einstellungen sind abhängig vom verwendeten Drucker und dessen " 
tx2   +"Einstellungen. " 
tx2   +"Auf diese nimmt das Programm Bezug. Ändern Sie " 
tx2   +"die Einstellungen für den Drucker separat, diese können von " 
tx2   +"hier nicht beeinflußt werden." 

FontName.s = "Verdana"
FontStyles = #PB_Font_Bold|#PB_Font_Underline | #PB_Font_Italic
FontHe.l = JHPrtSetGadgetFont(FontName,9,0,FontStyles) 
TxtWid.l = 410 ; Die Breite des späteren Gadget. Für Blocktext vermindert um 4 Pixel 
tx2 = JHPrtGadgetBlockText(tx2, TxtWid-4, 1, FontName, FontHe, FontStyles)  

tx2 = tx2_title + tx2 ; Überschrift voranstellen

; Informationsfenster öffnen 
win.l=OpenWindow(#PB_Any,  0,  0, 600, 500, "Testprogramm JHPrinter_400 UserLibrary",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
If win 
  If CreateGadgetList(WindowID(win)) 
    TextGadget(#PB_Any,  5,  0 , 514, 100, tx) 
    TextGadget(#PB_Any,  5, 120, TxtWid, 300, tx2) 
  EndIf 
  Repeat 
    Select WaitWindowEvent() 
      Case #PB_Event_CloseWindow 
        Quit=#True 
    EndSelect 
  Until Quit 
EndIf
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@teachco,

sorry für die fast einen Monat lange Wartezeit auf Antwort, ich war im
Urlaub.

Danke für den Hinweis. Ich habe die Libs neu hochgeladen. Durch einen
Fehler meinerseits erfolgten einige Zugriffe Library übergreifend, was
mir nicht aufgefallen ist, da ich ja alle drei logischer Weise geladen habe.

Das Problem sollte sich in Wohlgefallen aufgelöst haben.

Wegen dem Zeilenumbruch innerhalb des Übergabestrings, da bin ich
schon am fummeln, im Moment habe ich nur nicht wirklich Zeit mich
damit eingehender zu befassen.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@All,

die Lib ist 4.20 tauglich (Achtung, nicht rückwärtskompatibel)

Gruß Jens
Zuletzt geändert von sharkpeter am 05.10.2013 14:22, insgesamt 2-mal geändert.
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@All,

die Lib ist 4.30 tauglich (Achtung, nicht rückwärtskompatibel)

Gruß Jens
Zuletzt geändert von sharkpeter am 05.10.2013 14:23, insgesamt 2-mal geändert.
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@All,

die Lib ist 4.40 (Beta) tauglich (Achtung, nicht rückwärtskompatibel)

Gruß Jens
Zuletzt geändert von sharkpeter am 05.10.2013 14:23, insgesamt 1-mal geändert.
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Re: UserLib JHPrinter_4xx für PB 4.xx

Beitrag von sharkpeter »

@All,

die Lib ist nun auch Unicode und Threadsafe für 4.5x und steht zum Download bereit.

Gruß Jens
Zuletzt geändert von sharkpeter am 05.10.2013 14:23, insgesamt 1-mal geändert.
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Antworten