SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.! [Erl.

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15701
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 69 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert nicht richtig!

Beitrag von brandelh »

Hallo Martin,

darum kümmern sich meine Methoden. Es gibt einen zentralen Schalter in dem die Nummer der aktuellen Vorschauseite gespeichert ist.
die Print() Methode durchläuft alles bis zu dieser Seite, wobei aber alle aufgerufenen Methoden zwar die "Vorschübe" berechnen
und zurückgeben, aber eben nicht wirklich die Gra...() Funktionen aufrufen. Die Seiteneinschränkung wurde eingebaut um "von - bis" Druckbereiche festlegen zu können. Als ich dann meinen DruckDialog nachgerüstet habe (den muss man nicht verwenden), habe ich das aufgebort. Beim Drucken selbst spielt es keine Rolle, dass er nochmals alles durch muss, da der Rechner wesentlich schneller als der Drucker ist, aber bei der Vorschau ist die erste Seite sofort da. Beim Blättern geht das auch sofort, man sieht hat die einzelnen Seiten "einlaufen" bei den per segment gecachten Seiten sieht man das nicht, die sind "sofort da" aber ich finde "einlaufen" sogar schöner ;-)

Ich muss zugeben, dass mein TEST.EXE nur 12 Seiten erstellt und sogar auf die 15 Seite wechseln kann :shock: aber das werde ich noch ändern ;-)
Die größten Dokumente die ich erzeuge (auch mit Block-Grafik) nutzen allerdings nicht die Vorschauversion, daher kann ich jetzt nicht schnell prüfen was passiert wenn ich auf Seite 800 will ...

Was mir noch fehlt (wird wohl bald kommen) ist, dass ich in den Text Steuerzeichen einbauen kann, die dann PrintText() selbst interpretiert und die Fonts schaltet z.B. <b> FETT </b> im Moment muss ich das noch selbst im Quellcode machen.
Aber es wäre viel einfacher wenn ich das im String steuern könnte und die Anwender könnten dann auch einzelne Wörter fett drucken.

Ich selbst habe vor Jahren halt viel Arbeit in meine Druckerklasse gesteckt, damit ich mir im täglichen Druckgeschäft darum nicht
mehr kümmern muss. Ich bin halt bequem :D

Bei dir ist die manuelle Korrektur jetzt bestimmt die einfachste Lösung !
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15701
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 69 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert nicht richtig!

Beitrag von brandelh »

so ich habe mal jetzt in TEST.EXE über 1200 Seiten erzeugt.

Wenn ich von 800 auf 801 wechsle, braucht er 2 Sekunden um die Seite anzuzeigen.
Bei 1200 auf 1201 sind es dann fast 4 - allerdings verbrauche ich so kaum Hauptspeicher,
da ja nur eine Seite im Speicher ist.

Meine riesen Druckausgaben gehen übrigens ausschließlich in PDF Dateien,
nicht dass einer meint wir wollen den Wald ausrotten :D [-X
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.![ERL.]

Beitrag von Martin Altmann »

Moins,
es war zum Glück alles viel harmloser (hoffe ich)!
Zumindest unter XP SP2 funzt das wieder.
Ich habe (analog zu Jans Hinweis) die Font-Objekte jetzt anders erzeugt - damit geht es.
Statt:

Code: Alles auswählen

oFontnorm    := XbpFont():new( ::oPresSpace ):create( "10.Arial" )
oFontkursiv  := XbpFont():new( ::oPresSpace ):create( "12.Arial" + FONT_STYLE_ITALIC )
oFontnkursiv := XbpFont():new( ::oPresSpace ):create( "10.Arial" + FONT_STYLE_ITALIC )
oFontnklein  := XbpFont():new( ::oPresSpace ):create( "9.Arial" )
oFontkklein  := XbpFont():new( ::oPresSpace ):create( "9.Arial" + FONT_STYLE_ITALIC )
oFontnsmall  := XbpFont():new( ::oPresSpace ):create( "8.Arial" )
oFontnvsmall := XbpFont():new( ::oPresSpace ):create( "7.Arial" )
oFontnsklein := XbpFont():new( ::oPresSpace ):create( "6.Arial" )
oFontngross  := XbpFont():new( ::oPresSpace ):create( "14.Arial" )
oFontfett    := XbpFont():new( ::oPresSpace ):create( "10.Arial" + FONT_STYLE_BOLD )
oFontfklein  := XbpFont():new( ::oPresSpace ):create( "9.Arial" + FONT_STYLE_BOLD )
oFontfsmall  := XbpFont():new( ::oPresSpace ):create( "8.Arial" + FONT_STYLE_BOLD )
oFontfvsmall := XbpFont():new( ::oPresSpace ):create( "7.Arial" + FONT_STYLE_BOLD )
oFontfsklein := XbpFont():new( ::oPresSpace ):create( "6.Arial" + FONT_STYLE_BOLD )
oFontfgross  := XbpFont():new( ::oPresSpace ):create( "14.Arial" + FONT_STYLE_BOLD )
habe ich jetzt dieses gemacht:

Code: Alles auswählen

oFontnorm    := XbpFont():new( ::oPresSpace )
oFontnorm:FamilyName := "Arial"
oFontnorm:nominalPointSize := 10
oFontnorm:create()
oFontkursiv  := XbpFont():new( ::oPresSpace )
oFontkursiv:FamilyName := "Arial"
oFontkursiv:italic := .t.
oFontkursiv:nominalPointSize := 12
oFontkursiv:create()
oFontnkursiv := XbpFont():new( ::oPresSpace )
oFontnkursiv:FamilyName := "Arial"
oFontnkursiv:italic := .t.
oFontnkursiv:nominalPointSize := 10
oFontnkursiv:create()
oFontnklein  := XbpFont():new( ::oPresSpace )
oFontnklein:FamilyName := "Arial"
oFontnklein:nominalPointSize := 9
oFontnklein:create()
oFontkklein  := XbpFont():new( ::oPresSpace )
oFontkklein:FamilyName := "Arial"
oFontkklein:italic := .t.
oFontkklein:nominalPointSize := 9
oFontkklein:create()
oFontnsmall  := XbpFont():new( ::oPresSpace )
oFontnsmall:FamilyName := "Arial"
oFontnsmall:nominalPointSize := 8
oFontnsmall:create()
oFontnvsmall := XbpFont():new( ::oPresSpace )
oFontnvsmall:FamilyName := "Arial"
oFontnvsmall:nominalPointSize := 7
oFontnvsmall:create()
oFontnsklein := XbpFont():new( ::oPresSpace )
oFontnsklein:FamilyName := "Arial"
oFontnsklein:nominalPointSize := 6
oFontnsklein:create()
oFontngross  := XbpFont():new( ::oPresSpace )
oFontngross:FamilyName := "Arial"
oFontngross:nominalPointSize := 14
oFontngross:create()
oFontfett    := XbpFont():new( ::oPresSpace )
oFontfett:FamilyName := "Arial"
oFontfett:bold := .t.
oFontfett:nominalPointSize := 10
oFontfett:create()
oFontfklein  := XbpFont():new( ::oPresSpace )
oFontfklein:FamilyName := "Arial"
oFontfklein:bold := .t.
oFontfklein:nominalPointSize := 9
oFontfklein:create()
oFontfsmall  := XbpFont():new( ::oPresSpace )
oFontfsmall:FamilyName := "Arial"
oFontfsmall:bold := .t.
oFontfsmall:nominalPointSize := 8
oFontfsmall:create()
oFontfvsmall := XbpFont():new( ::oPresSpace )
oFontfvsmall:FamilyName := "Arial"
oFontfvsmall:bold := .t.
oFontfvsmall:nominalPointSize := 7
oFontfvsmall:create()
oFontfsklein := XbpFont():new( ::oPresSpace )
oFontfsklein:FamilyName := "Arial"
oFontfsklein:bold := .t.
oFontfsklein:nominalPointSize := 6
oFontfsklein:create()
oFontfgross  := XbpFont():new( ::oPresSpace )
oFontfgross:FamilyName := "Arial"
oFontfgross:bold := .t.
oFontfgross:nominalPointSize := 14
oFontfgross:create()
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15701
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 69 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.![ERL.]

Beitrag von brandelh »

Hi,

nach der Message habe ich nochmals deine erstes Fonterzeugungsbeispiel (was für ein Wort) angesehen ...
Schon seit einigen Versionen von Xbase++ ist das Erzeugen der Fonts so

Code: Alles auswählen

oFontnorm    := XbpFont():new( ::oPresSpace ):create( "10.Arial" )
problemlos möglich, solange man nicht noch mehr einstellen will.
Unter OS/2 brauchte man mehr, daher die eigenen Funktionen ...
ABER du ordnest in dem Beispiel dann unten dein erstelltes FontObjekt einem anderen zu und ...

Code: Alles auswählen

::oFont := oFontnorm
::oFont:configure()
:configure() hat ab und zu ja Nebenwirkungen, bei Fonts habe ich die Erfahrung gemacht, einmal erzeugen nie ändern !
In deinen weiteren Beispielen nutzt du aber GraSetFont(oFontnorm) wieder direkt wie ich es in meiner Methode auch mache ...

Ich habe noch ein paar Test mit meiner TEST.EXE gemacht und konnte keine Unterschiede von 1.90.331 zu 1.90.355 feststellen (WinXP SP3).
Falls es jemand interessiert hänge ich mal die Druckausgaben als PDF an. Hier der Code-Teil der die Textzeile für Fettdruck in Zeile druckt:

Einmal mit kompletter Eingabe der Positionen ...

Code: Alles auswählen

 
   x := 1600
   Y := 1500
   ::SetFont(HB_FONT_7Arial)
   cTxt := "Test für "  // mit Blank
   ::PrintText(x,y,cTxt)
   x += ::GetTextLen(cTxt)

   ::SetFont(HB_FONT_7ArialFett)
   cTxt := "FETT EIN"  // ohne Blank
   ::PrintText(x,y,cTxt)
   x += ::GetTextLen(cTxt)

   ::SetFont(HB_FONT_7Arial)
   cTxt := " und wieder aus !"  // mit Blank
   ::PrintText(x,y,cTxt)
und hier einfacher mit automatischer Bestimmung, die geht jetzt - entgegen meiner Erinnerung - auch (einfach X auf NIL lassen):

Code: Alles auswählen

   x := 1600
   Y := 1550
   ::SetFont(HB_FONT_7Arial)
   ::PrintText(x,y,"Test für ")

   ::SetFont(HB_FONT_7ArialFett)
   ::PrintText(,y,"FETT EIN")  // eventuell die Blanks besser hier einbinden !

   ::SetFont(HB_FONT_7Arial)
   ::PrintText(,y," und wieder aus !")
HB-Printer-Testseite 1 und 2 mit 1.90.331.pdf
(28.05 KiB) 160-mal heruntergeladen
HB-Printer-Testseite 1 und 2 mit 1.90.355.pdf
(28.05 KiB) 157-mal heruntergeladen
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.![ERL.]

Beitrag von Martin Altmann »

Hmmm,
nachdem ich jetzt die Fonts anders generiere, läuft es wesentlich besser!
Trotzdem meldet GraQueryTextBox() noch immer eine falsche Länge bei fetten bzw. kursiven Schriften - aber jetzt zu viel!
Also einige Pixel mehr, als es eigentlich lang ist. Dies wird beeinflusst durch die Länge des entsprechenden Textes - je länger der Text, desto mehr Pixel kommen dazu.
Was mache ich denn jetzt wieder falsch beim Generieren der Schriftarten?
Habe auch probiert, das :generic-Attribut für jede Schriftart auf .T. zu setzen. Hat latürnich auch nichts geändert.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.![ERL.]

Beitrag von Martin Altmann »

Wenn ich mir die erzeugten Fontobjekte im Debugger anschaue, passt alles. Schriftart, Schriftschnitt und -größe.
Habe mal hier unter Windows 7 auf meinem HL-1250 gedruckt und mit dem Microsoft XPS Document Writer in eine Datei.
Beides mit dem selben Ergebnis.
Bei dem XPS-Dokument kann man ja den Text markieren und kopieren. Den habe ich dann mal in WinWord eingefügt und mir dort die Eigenschaften angeschaut. Die Schriftarten waren teilweise 0,5 Pixel größer! Also 10,5 statt 10 oder 7,5 statt 7! Das würde dann auch erklären, warum die Länge entsprechend falsch berechnet wird - nur, warum ist da auf einmal ein Versatz von 0,5 Pixel in der Schriftgröße?
Werde es morgen mal wieder unter XP SP2 probieren...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Martin Altmann »

Ich habe das jetzt mal unter XP SP2 versucht - mit dem selben Ergebnis!
Wenn ich hier in ein PDF drucke und dann in dem PDF den Text markiere und kopiere und in WinWord einfüge, habe ich bei einigen Texten auf einmal auch eine Schriftgröße, die um 0,5 größer ist, als von mir angegeben (die Schriftart ist auch Helvetica und nicht Arial - aber das setzt sicherlich der PDF-Druckertreiber so um).
Ich habe mal gedumpt, wie die einzelnen Fontobjekte bei mir zur Laufzeit angelegt wurden:
oFontnorm := XbpFont():new( ::oPresSpace )
oFontnorm:FamilyName := "Arial"
oFontnorm:nominalPointSize := 10
oFontnorm:create()
oFontnorm :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 42
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 10
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 15
{|o| o:widthClass }= 400

oFontkursiv := XbpFont():new( ::oPresSpace )
oFontkursiv:FamilyName := "Arial"
oFontkursiv:italic := .t.
oFontkursiv:nominalPointSize := 12
oFontkursiv:create()
oFontkursiv :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial Kursiv
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 50
{|o| o:italic }= .T.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 12
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 19
{|o| o:widthClass }= 400

oFontnkursiv := XbpFont():new( ::oPresSpace )
oFontnkursiv:FamilyName := "Arial"
oFontnkursiv:italic := .t.
oFontnkursiv:nominalPointSize := 10
oFontnkursiv:create()
oFontnkursiv :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial Kursiv
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 42
{|o| o:italic }= .T.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 10
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 15
{|o| o:widthClass }= 400

oFontnklein := XbpFont():new( ::oPresSpace )
oFontnklein:FamilyName := "Arial"
oFontnklein:nominalPointSize := 9
oFontnklein:create()
oFontnklein :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 40
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 9
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 14
{|o| o:widthClass }= 400

oFontkklein := XbpFont():new( ::oPresSpace )
oFontkklein:FamilyName := "Arial"
oFontkklein:italic := .t.
oFontkklein:nominalPointSize := 9
oFontkklein:create()
oFontkklein :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial Kursiv
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 40
{|o| o:italic }= .T.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 9
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 14
{|o| o:widthClass }= 400

oFontnsmall := XbpFont():new( ::oPresSpace )
oFontnsmall:FamilyName := "Arial"
oFontnsmall:nominalPointSize := 8
oFontnsmall:create()
oFontnsmall :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 37
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 8
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 13
{|o| o:widthClass }= 400

oFontnvsmall := XbpFont():new( ::oPresSpace )
oFontnvsmall:FamilyName := "Arial"
oFontnvsmall:nominalPointSize := 7
oFontnvsmall:create()
oFontnvsmall :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 32
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 7
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 11
{|o| o:widthClass }= 400

oFontnsklein := XbpFont():new( ::oPresSpace )
oFontnsklein:FamilyName := "Arial"
oFontnsklein:nominalPointSize := 6
oFontnsklein:create()
oFontnsklein :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 5
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 26
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 6
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 9
{|o| o:widthClass }= 400

oFontngross := XbpFont():new( ::oPresSpace )
oFontngross:FamilyName := "Arial"
oFontngross:nominalPointSize := 14
oFontngross:create()
oFontngross :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 10
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 58
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 14
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 22
{|o| o:widthClass }= 400

oFontfett := XbpFont():new( ::oPresSpace )
oFontfett:FamilyName := "Arial"
oFontfett:bold := .t.
oFontfett:nominalPointSize := 10
oFontfett:create()
oFontfett :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .T.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial Fett
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 42
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 10
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 700
{|o| o:width }= 16
{|o| o:widthClass }= 700

oFontfklein := XbpFont():new( ::oPresSpace )
oFontfklein:FamilyName := "Arial"
oFontfklein:bold := .t.
oFontfklein:nominalPointSize := 9
oFontfklein:create()
oFontfklein :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .T.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial Fett
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 40
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 9
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 700
{|o| o:width }= 15
{|o| o:widthClass }= 700

oFontfsmall := XbpFont():new( ::oPresSpace )
oFontfsmall:FamilyName := "Arial"
oFontfsmall:bold := .t.
oFontfsmall:nominalPointSize := 8
oFontfsmall:create()
oFontfsmall :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .T.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial Fett
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 37
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 8
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 700
{|o| o:width }= 14
{|o| o:widthClass }= 700

oFontfvsmall := XbpFont():new( ::oPresSpace )
oFontfvsmall:FamilyName := "Arial"
oFontfvsmall:bold := .t.
oFontfvsmall:nominalPointSize := 7
oFontfvsmall:create()
oFontfvsmall :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 5
{|o| o:bold }= .T.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial Fett
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 29
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 7
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 700
{|o| o:width }= 11
{|o| o:widthClass }= 700

oFontfsklein := XbpFont():new( ::oPresSpace )
oFontfsklein:FamilyName := "Arial"
oFontfsklein:bold := .t.
oFontfsklein:nominalPointSize := 6
oFontfsklein:create()
oFontfsklein :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 5
{|o| o:bold }= .T.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial Fett
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 26
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 6
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 700
{|o| o:width }= 10
{|o| o:widthClass }= 700

oFontfgross := XbpFont():new( ::oPresSpace )
oFontfgross:FamilyName := "Arial"
oFontfgross:bold := .t.
oFontfgross:nominalPointSize := 14
oFontfgross:create()
oFontfgross :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 10
{|o| o:bold }= .T.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial Fett
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 58
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 14
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 700
{|o| o:width }= 24
{|o| o:widthClass }= 700

oFont := XbpFont():new( ::oPresSpace )
oFont:FamilyName := "Arial"
oFont:nominalPointSize := 10
oFont:create()
oFont :arrow:
{|o| o:antiAliased }= .F.
{|o| o:baseLine }= 8
{|o| o:bold }= .F.
{|o| o:codePage }= 0
{|o| o:compoundName }= Arial
{|o| o:dbcs }= .T.
{|o| o:familyName }= Arial
{|o| o:fixed }= .F.
{|o| o:generic }= .T.
{|o| o:height }= 42
{|o| o:italic }= .F.
{|o| o:kerning }= .T.
{|o| o:mbcs }= .F.
{|o| o:nominalPointSize }= 10
{|o| o:outlined }= .F.
{|o| o:strikeout }= .F.
{|o| o:underscore }= .F.
{|o| o:vector }= .T.
{|o| o:weightClass }= 400
{|o| o:width }= 15
{|o| o:widthClass }= 400
Ich sehe da erst mal keinen Unterschied zwischen Wunsch (alles bis zum :create()) und Wirklichkeit (den Eigenschaften des jeweiligen Objektes) - ihr etwa :?:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Martin Altmann »

Hmm,
ist nicht nur GraQueryTextBox(), sondern (natürlich) auch GraPos(), das falsche Ergebnisse liefert!
Ich war nun kurz davor, alles hinzuschmeißen und Geld zu investieren, um mir das Tool von Edgar Borger zu kaufen (das, um PDFs zu erstellen und auch anzuzeigen).
Das wird aber auch nichts bringen! Ich habe mir mal seine Webseite angeschaut, dort stellt er ja die Doku in PDF-Form zur Verfügung.
Diese PDFs sind sicherlich mit seinen Tools erstellt - da laufen ebenfalls die Wörter teilweise ineinander.
Kann dazu vielleicht einer was sagen, der die Tools bereits einsetzt? Jan?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14659
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Jan »

Martin,

leider muß ich Dir sagen, daß ich hier bei Schriftwechseln (nur Farbwechsel bislang, kein Fett/normal) innerhalb einer Zeile ebenfalls Probleme bekomme. Ich hatte das bislang auf Probleme in Edgars Code geschoben. Scheint aber wohl ganz woanders dran zu liegen.

Wir können uns das ja am Samstag mal zusammen ansehen, Edgar benutzt dafür nämlich ebenfalls die GRA...-Funktionen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Martin Altmann »

Gerne!
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2471
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 103 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Koverhage »

Martin,

ich habe damit keine größeren Probleme. Farbwechsel etc. funktioniert gut. Du kannst Dir
doch nicht nur die Doku laden, auch das Tool selbst.
Es wird lediglich auf jeder Seite Demo ausgedruckt.
In der Doku wird zwar einiges verschoben, aber das ist von Anfang an so.
Also Doku nehme ich die XBASEPDF.CHM
Gruß
Klaus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Martin Altmann »

Hallo Klaus,
was heißt "keine größeren Probleme" genau?
Den Tipp mit der Demo werde ich mal beherzigen - vielleicht schaffe ich das heute noch!
Wie sieht es denn mit dem PDFViP aus? Kann man damit nur PDFs anschauen oder enthält das auch das XbpPDF?
Also wenn, würde ich schon PDFs erstellen können (also XbpPDF) und auch anzeigen/ausdrucken! Brauche ich dazu beides?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Martin Altmann »

OK,
kann mir die Frage selber beantworten: Der Viewer, den es extra gibt, ist der selbe, der bei der Klasse zum Erstellen dabei ist.
Unbrauchbar!
Der einzelne Viewer kann die Demo.PDF, die man bei der XbpPDF erstellt, nicht fehlerfrei darstellen (sieht man sehr schon auf der ersten Seite oben bei den griechischen Symbolen, die ineinander laufen), dies klappt bei dem in XbpPDF integrierten jedoch!
Aber beide habe das Problem, dass die Beschriftungen (Zoom und Page) willkürlich verschwinden, wenn man einige Male auf das Zoom+-Symbol drückt und irgendwann wieder erscheinen!
Und beide Betrachter haben das Problem, dass sie nicht "von außen" konfigurierbar sind. Ich will andere Symbole und Texte haben.
Und "interessant" ist auch, dass der Betrachter bei XbpPDF der Meinung sei, das vierseitige Demo-PDF würde nur eine Seite lang sein!

@Klaus, wenn Du keine Probleme mit Formatwechsel innerhalb einer Zeile hast - wie sieht Dein Code denn aus?
Es geht nicht darum, absolut zu positionieren - das klappt ohne Probleme!
Das Problem taucht dann auf, wenn die Position berechnet werden soll (mittels GraQueryTextBox() des bereits gedruckten ersten Teils des zusammengesetzten Textes oder ermitteln der aktuellen Position mittels GraPos() direkt nach Ausgabe des ersten Teils des zusammengesetzten Textes)!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12911
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: SL1+Windows 7: GraQueryTextBox() funktioniert nicht richtig!

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben:

Code: Alles auswählen

::oPresSpace      := XbpPresSpace():new()
Der Hinweis mit dem Einstellen des :winDevice()s vor dem Erzeugen der Fonts war gut - vielen Dank.
Hat aber leider nicht geholfen.
ich glaube wir haben uns missverstanden
Auge_Ohr hat geschrieben:
Martin Altmann hat geschrieben:

Code: Alles auswählen

// Presentation Space mit Window Device Context verknüpfen
   ::oPresSpace:configure( ::oView:drawingArea:winDevice() )
Könnte es vielleicht daran liegen, wie ich meine Font-Objekte anlege?
ich würde den :winDevice() schon beim :create(), also vor den Fonts einstellen.
noch mal die Frage ob du mal versucht hast den windevice() schon beim :create() einzubinden ?

Code: Alles auswählen

oPS:create( oDlg:drawingArea:winDevice() )
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Martin Altmann »

Ok!
Sehr interessant!
Wenn ich das hier:

Code: Alles auswählen

::oView           := XbpDialog():new( self )
...
::oPresSpace      := XbpPresSpace():new()
::oPresSpace:mode := XBPPS_MODE_HIGH_PRECISION
...
::oPresSpace:create( ::printer, ::aPageSize, GRA_PU_LOMETRIC )
::oPresSpace:configure( ::oView:drawingArea:winDevice() )
ändere in:

Code: Alles auswählen

::oView           := XbpDialog():new( self )
...
::oPresSpace      := XbpPresSpace():new( ::oView:drawingArea:winDevice() )
::oPresSpace:mode := XBPPS_MODE_HIGH_PRECISION
...
::oPresSpace:create( ::printer, ::aPageSize, GRA_PU_LOMETRIC )
//::oPresSpace:configure( ::oView:drawingArea:winDevice() )
kommt die Druckausgabe am Ende korrekt auf dem Papier heraus - aber in der Vorschau am Bildschirm sehe ich nichts!
Ändere ich es dagegen in:

Code: Alles auswählen

::oView           := XbpDialog():new( self )
...
::oPresSpace      := XbpPresSpace():new()
::oPresSpace:mode := XBPPS_MODE_HIGH_PRECISION
...
::oPresSpace:create( ::oView:drawingArea:winDevice(), ::aPageSize, GRA_PU_LOMETRIC )
//::oPresSpace:configure( ::oView:drawingArea:winDevice() )
ändert sich gar nichts.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12911
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben:Ok!
Sehr interessant!
Wenn ich das hier:

Code: Alles auswählen

::oView           := XbpDialog():new( self )
...
::oPresSpace      := XbpPresSpace():new( ::oView:drawingArea:winDevice() )
::oPresSpace:mode := XBPPS_MODE_HIGH_PRECISION
...
::oPresSpace:create( ::printer, ::aPageSize, GRA_PU_LOMETRIC )
//::oPresSpace:configure( ::oView:drawingArea:winDevice() )
kommt die Druckausgabe am Ende korrekt auf dem Papier heraus - aber in der Vorschau am Bildschirm sehe ich nichts!
Naja es ging ja um den DRUCK und da muss wohl das :windevice() hin.

Was jetzt die Vorschau angeht ... wie geht bei dir den das :paint() ?
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Martin Altmann »

Hallo Jimmy,
der Einfachheit halber: genau so, wie im Beispielprogramm von Alaska:
XPPW32\SOURCE\samples\solution\Preview

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2471
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 103 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Koverhage »

Martin,

ich benutze xpppdf. Für meine Zwecke reicht mir das erstmal, was mir beim viewer fehlt sind eigentlich primär 2 Sachen.
1. Textsuche
2. Drucken Seite von- bis (geht meines Wissens nur wenn das Druckobjekt noch nicht angelegt ist

Wenn Du Edgar mitteilst was Du möchtest wird sich da sicherlich was machen lassen. Das Handbuch im PDF Format hat die Probleme
aber das liegt glaube ich an der Schrift die Edgar verwendet.
So wie ich das gelesen habe ist xpppdf ja auch mittlerweile in TopDown mit drin.

Gruß
Klaus
Gruß
Klaus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von Martin Altmann »

Hallo Klaus,
schade, dass Du am Samstag keine Zeit hast.
Aber wie geschrieben: XbpPDF hat (auf den ersten Blick) zumindest in der Demo zu viele Probleme, als dass ich es einsetzen würde.
Wie geschrieben, es kann nur die erste Seite der selbst erzeugten PDF-Datei angezeigt werden und die Beschriftungen verschwinden willkürlich.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15701
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 69 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.!

Beitrag von brandelh »

Hi,

ich habe die ältere Version, die ausschließlich PDF Dateien im Hintergrund direkt (ohne Druckertreiber) erzeugt.
Die funktioniert (für mich) perfekt. Für alles andere nehme ich meine Druckerklasse, auch in Verbindung mit
PDF Druckertreibern. Eines davon kann sogar Lesezeichen anhand von Schritart und Größe generieren.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.! [Erl.

Beitrag von Martin Altmann »

:blob8:
Das hat mich viele Haare gekostet! Aber nun klappt es endlich wieder zufriedenstellend!
War nur eine kleine Änderung in der Reihenfolge notwendig, wann das "Umbiegen" des PresentationSpaces auf den Bildschirm (:windevice) zu erfolgen hat.
Ist definitiv erst seit SL1 so - vorher hat es auch so funktioniert.

Vielen Dank an alle, die sich an dieser regen Diskussion beteiligt haben :thumbright:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12911
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.! [Erl.

Beitrag von AUGE_OHR »

Martin Altmann hat geschrieben:War nur eine kleine Änderung in der Reihenfolge notwendig, wann das "Umbiegen" des PresentationSpaces auf den Bildschirm (:windevice) zu erfolgen hat.
Ist definitiv erst seit SL1 so - vorher hat es auch so funktioniert.
könntest du die betreffenden Stellen nochmals zusammenfassend darstellen, danke.
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16551
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 114 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SL1+Windows 7: GraQueryTextBox() funktioniert n. rtg.! [Erl.

Beitrag von Martin Altmann »

Klar.
Dein erster Hinweis:
AUGE_OHR hat geschrieben:ich würde den :winDevice() schon beim :create(), also vor den Fonts einstellen.
ist vollkommen richtig und völlig falsch 8)
Der Ansatz war sehr gut, nur die Richtung des Verschiebens war falsch. Aber dank Deiner ganzen Hinweise wurde ich dann in die richtige Spur geschickt.
Also im Prinzip (ausgehend von dem Alaska-Sample) müssen die Zeilen 372 (Komentar, unwichtig) und 373 verschoben werden vor die ::zoom()-Zeile am Ende innerhalb der selben Methode.
Damit dann die restlichen Einstellung (Fonts und Hintergrund weiß) erhalten bleiben, müssen nach der Zeile mit dem :configure() noch die drei Zeilen kopiert werden:

Code: Alles auswählen

   // Font und Attribute gehen nach :configure() verloren -> neu setzen
   ::oPresSpace:setFont( ::oFont )
   ::oPresSpace:setAttrArea( ::aAreaAttr )
   ::oPresSpace:setAttrString( ::aCharAttr )
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Antworten