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

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

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

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

Beitrag von Martin Altmann »

Hallo Jimmy,
Danke für den Hinweis.
Aber ich weiß jetzt, dass mein erster Ansatz vorhin richtig war. Dieter und Marcus machen das bei ihrem dsReport genau so und da klappt es - denke ich mal, sonst würden sie den Aufwand mit 2 verschiedenen PresantionSapce()s sicherlich nicht treiben.
Leider hatte ich heute auf Arbeit nicht genug Zeit - aber ich werde mir das morgen mal näher ansehen. Vor allem, ob es bei ihnen klappt und wenn ja, wo die Unterschiede zu meinen Versuchen sind.

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: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

So,
bei der dsReport-Klasse von Dieter und Marcus funktioniert das!
Muss ich mal schauen, warum das bei mir heute Mittag nicht ging.

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: 12913
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 »

hi,

em, äh ... hast du es, unter Win7+SL1, auch mal auf einem "anderen" PC versucht ?
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Jimmy,
was meinst Du genau?
Die Klasse von Dieter und Marcus habe ich gestern Abend mal eben kurz zu Hause unter Windows 7 64 Bit probiert - geht!
Meine eigenen Probleme habe ich - wie vorne beschrieben - unter Windows 7 64 Bit und XP mit SP2 - jeweils mit zwei verschiedenen Druckertreibern probiert, davon jeweils einer von Microsoft.
Steht aber alles in meinen ersten Postings.

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: 12913
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 »

hi,
Martin Altmann hat geschrieben:

Code: Alles auswählen

GraSetFont( oPS, oFontnvsmall )
nY -= 55
blocksatz( oPS, nY, 60, 665, "Nach der neuen Tierschutz-Hundeverordnung gilt ab" )
nY -= 25
blocksatz( oPS, nY, 60, 665, "01. Mai 2002 ein Ausstellungsverbot für folgende" )
nY -= 25
GraStringAt( oPS, { 60, nY }, "Hunde aus dem " )
aTextBox := GraQueryTextBox( oPS, "Hunde aus dem " )
lb := ( aTextBox[ 3, 1 ] - aTextBox[ 2, 1 ] )
GraSetFont( oPS, oFontfvsmall )
GraStringAt( oPS, { 60 + lb, nY }, "In- und Ausland:" )
GraSetFont( oPS, oFontnvsmall )
nY -= 32

Code: Alles auswählen

oFontnvsmall := XbpFont():new( ::oPresSpace ):create( "7.Arial" )
oFontfvsmall := XbpFont():new( ::oPresSpace ):create( "7.Arial" + FONT_STYLE_BOLD )
also ich bin der Meinung es liegt an der Font GRÖSSE, den bei mir passiert bei 7.Arial nichts. Sobald ich 8.Arial nehme geht es :)
Blocksatz.JPG
Blocksatz.JPG (16.28 KiB) 5363 mal betrachtet
hier mein TestCode:

Code: Alles auswählen

#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Font.ch"

PROCEDURE Appsys
RETURN

PROCEDURE Main
LOCAL nEvent, oXbp, mp1, mp2
LOCAL oDlg
LOCAL lExit := .F.
LOCAL oPS
LOCAL nSegId   := 0                              // immer 0 ?

   oDlg := XbpDialog():New(AppDesktop(),,{0,0},{800,400})
   oDlg:taskList := .T.
   oDlg:titlebar := .T.
   oDlg:title    := "Test"
   oDlg:Icon     := 1
   oDlg:border   := XBPDLG_DLGBORDER
   oDlg:maxButton := .F.
   oDlg:drawingArea:paint := {|| DrawGraphic(oPS, @nSegId ) }
   oDlg:close := {|| lExit := .T.  }
   oDlg:create():show()

   oPS  := XbpPresSpace():new()
   oPS:create( oDlg:drawingArea:winDevice() )

   SetAppFocus(oDlg)

   nEvent := xbe_None
   DO WHILE .NOT. lExit
      nEvent := AppEvent ( @mp1, @mp2, @oXbp )
      DO CASE
         CASE nEvent == xbeP_Quit
            QUIT   // AppQuit()

         CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_ALT_F4
            EXIT

      OTHERWISE
      oXbp:HandleEvent ( nEvent, mp1, mp2 )
      ENDCASE
   ENDDO
   oDlg:Destroy()
RETURN

PROCEDURE DrawGraphic( oPS, nSegId )

LOCAL oFontnvsmall := XbpFont():new( oPS ):create( "8.Arial" )
LOCAL oFontfvsmall := XbpFont():new( oPS ):create( "8.Arial" + FONT_STYLE_BOLD )
LOCAL oFontBig     := XbpFont():new( oPS ):create( "12.Arial" + FONT_STYLE_BOLD )
LOCAL nY       := 300
LOCAL aTextBox
LOCAL lb


  /*
   * Prfen, ob in nSegId eine gltige Id eines
   * grafischen Segments bergeben wurde.
   * Andernfalls wird ein neues Segment erzeugt
   * und die Grafik darin gespeichert.
   *
   * WICHTIG: nSegId muss per Referenz bergeben
   *          werden!
   */
   IF nSegId != 0
      GraSegDraw( oPS, nSegId )
      RETURN
   ENDIF

   nSegId := GraSegOpen( oPS )                   // hm ... how dows it work
*   GraSegDrawMode( oPS, GRA_DM_DRAW ) // Suppress display of graphics primitives during page calculations
   GraSegDrawMode( oPS, GRA_DM_RETAIN ) // Suppress display of graphics primitives during page calculations

   GraSetFont( oPS, oFontnvsmall )
   nY -= 55
   blocksatz( oPS, nY, 60, 200, "Nach der neuen Tierschutz-Hundeverordnung gilt ab" )
   nY -= 25
   blocksatz( oPS, nY, 60, 200, "01. Mai 2002 ein Ausstellungsverbot fr folgende" )
   nY -= 25
   GraStringAt( oPS, { 60, nY }, "Hunde aus dem " )
   aTextBox := GraQueryTextBox( oPS, "Hunde aus dem " )
   lb := ( aTextBox[ 3, 1 ] - aTextBox[ 2, 1 ] )
   GraSetFont( oPS, oFontfvsmall )
   GraStringAt( oPS, { 60 + lb, nY }, "In- und Ausland:" )
   GraSetFont( oPS, oFontnvsmall )
   nY -= 32

   nY -= 100

   GraStringAt( oPS, { 60, nY }, "Hunde aus dem " )
   aTextBox := GraQueryTextBox( oPS, "Hunde aus dem " )
   lb := ( aTextBox[ 3, 1 ] - aTextBox[ 2, 1 ] )
   GraSetFont( oPS, oFontbig )
   GraStringAt( oPS, { 60 + lb, nY }, "In- und Ausland:" )
   GraSetFont( oPS, oFontnvsmall )

   GraSegClose( oPS, nSegId )
   GraSegDrawMode( oPS, GRA_DM_DRAWANDRETAIN )
   GraSegDraw( oPS, nSegId )

RETURN
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Hallo Jimmy,
die Idee war gut - aber es ändert nur wenig:
GraQueryTextBox2.JPG
GraQueryTextBox2.JPG (92.08 KiB) 5373 mal betrachtet
Es fließt nicht mehr so stark ineinander, aber immer noch ein wenig.
Abgesehen davon, dass der Text jetzt zu groß ist, um in den Bereich insgesamt zu passen.
Bei dsReport hatte es mit Schriftgröße 7 geklappt (zwar nicht Arial, aber das kann ich noch mal 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
Jan
Marvin
Marvin
Beiträge: 14662
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 nicht richtig!

Beitrag von Jan »

Mein Beispiel funktioniert auch bei 7 Punkt.

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: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Also,
7 Punkt geht auch bei dsReport bei mir - auch verschiedene Schriftarten. Daran liegt es also nicht.
Jimmy, Du nutzt doch nicht den "vollen" SL1, oder?

Jan, soweit ich das gesehen habe, nutzt Du keine grafischen Segmente!

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: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Könnte es vielleicht daran liegen, wie ich meine Font-Objekte anlege?

Code: Alles auswählen

   // Größe der Druckseite abzüglich nicht bedruckbarer Ränder berechnen
   // Die Einheit ist 1/10 mm
   aSize       := ::printer:paperSize()
   ::aPageSize := { aSize[5]-aSize[3], aSize[6]-aSize[4] }

   // Presentation Space mit Drucker Device Context verknüpfen
   // Der PS bekommt die metrische Einheit 1/10 mm
   ::oPresSpace:create( ::printer, ::aPageSize, GRA_PU_LOMETRIC )

   IF ::oFont == NIL
		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 )
		::oFont := oFontnorm
		::oFont:configure()
   ENDIF

   // Presentation Space mit Window Device Context verknüpfen
   ::oPresSpace:configure( ::oView:drawingArea:winDevice() )
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: 14662
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 nicht richtig!

Beitrag von Jan »

Martin,

bei mir wird der Font so erstellt:

Code: Alles auswählen

oFont := xbpFont():new(oPs)
oFont:FamilyName := "Times New Roman"
oFont:nominalPointSize := 12
oFont:create()
GraSetFont(oPs, oFont)
...
// Diverse Druckausgaben in Standardschrift
...
// Umstellen auf die Zeile mit Fett- und Farbwechseln
oFont:configure("8.Arial")
GraSetFont(oPs, oFont)
Jan

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: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

OK - und wie stellst Du fett und kursiv und gemischt ein?

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: 14662
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 nicht richtig!

Beitrag von Jan »

Code: Alles auswählen

aAttrString := Array(GRA_AS_COUNT)       // Schriftttribut bestimmen
aAttrString[GRA_AS_COLOR] := GRA_CLR_DARKGREEN
GraSetAttrString(oPs, aAttrString)
GraStringAt(oPs, {nPosStart += nBreite1, nOben - nFontHeight}, cText2)
aAttrString[GRA_AS_COLOR] := GRA_CLR_BLACK
GraSetAttrString(oPs, aAttrString)
GraStringAt(oPs, {nPosStart += nBreite2, nOben - nFontHeight}, cText3)
aAttrLine[GRA_AL_COLOR] := GRA_CLR_GREEN
aAttrLine[GRA_AL_WIDTH] := GRA_LINEWIDTH_THICK
GraSetAttrLine(oPs, aAttrLine)
GraLine(oPs, {nPosStart + nBreite3, nOben - (nFontHeight * 0.9)}, ;
             {nPosStart + nBreite3 + nBreite4 + nBreite5 + nBreite6, nOben - (nFontHeight * 0.9)})
aAttrLine[GRA_AL_COLOR] := GRA_CLR_BLACK
aAttrLine[GRA_AL_WIDTH] := GRA_LINEWIDTH_NORMAL
GraSetAttrLine(oPs, aAttrLine)
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: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Hallo Jan,
danke - aber das sind Attribute für Linien.

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: 12913
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:Könnte es vielleicht daran liegen, wie ich meine Font-Objekte anlege?
siehe anmerkung :winDevice()
Martin Altmann hat geschrieben:

Code: Alles auswählen

   // Größe der Druckseite abzüglich nicht bedruckbarer Ränder berechnen
   // Die Einheit ist 1/10 mm
   aSize       := ::printer:paperSize()
   ::aPageSize := { aSize[5]-aSize[3], aSize[6]-aSize[4] }
   // Presentation Space mit Drucker Device Context verknüpfen
   // Der PS bekommt die metrische Einheit 1/10 mm
   ::oPresSpace:create( ::printer, ::aPageSize, GRA_PU_LOMETRIC )
schon mal XBPPS_MODE_HIGH_PRECISION versucht ?
Martin Altmann hat geschrieben:

Code: Alles auswählen

   // Presentation Space mit Window Device Context verknüpfen
   ::oPresSpace:configure( ::oView:drawingArea:winDevice() )
ich würde den :winDevice() schon beim :create(), also vor den Fonts einstellen.
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14662
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 nicht richtig!

Beitrag von Jan »

Martin,

schau noch mal genauer hin. Stimmt, versehentlich habe ich zwischendurch ein paar Linien dazwischen kopiert. Aber die Schrift ist auch dabei. Das Prinzip ist das gleiche.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12913
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:die Idee war gut
und was passiert wen du mein Sample laufen lässt ?
die Function blocksatz() = justify() ist doch von dir ;)
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Hallo Jimmy,
den XBPPS_MODE_HIGH_PRECISION nutze ich sowieso. Beim Anlegen des PresentationSpace()s:

Code: Alles auswählen

::oPresSpace      := XbpPresSpace():new()
::oPresSpace:mode := XBPPS_MODE_HIGH_PRECISION
Der Hinweis mit dem Einstellen des :winDevice()s vor dem Erzeugen der Fonts war gut - vielen Dank.
Hat aber leider nicht geholfen.
Ich werde Dein Beispiel gleich mal 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: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Hallo Jan,
Jan hat geschrieben:schau noch mal genauer hin. Stimmt, versehentlich habe ich zwischendurch ein paar Linien dazwischen kopiert. Aber die Schrift ist auch dabei.
ich muss Dich enttäuschen! Da ist nur das Ändern der Schriftfarbe dabei.
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: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Jimmy,
bei Deinem Beispiel klappt es - mit 8.Arial und 7.Arial!
Allerdings muss bei dem Aufruf von blocksatz() der Parameter 200 auf über 300 (z.B. 350) geändert werden, damit man die Ausrichtung sieht.
Und warum klappt das dann weder bei mir noch bei dem XbpPreview() von Alaska?

Sehr merkwürdig!

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: 14662
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 nicht richtig!

Beitrag von Jan »

Hallo Martin,

OK, OK. hast ja gewonnen.

Ich hab mir das noch einmal genauer angesehen, ist alles schon eine Weile her gewesen. Und immerhin drucke ich da ja was in Fett. Aber nicht durch eingestellten Fettdruck, sondern ich drucke den betreffenden Text doppelt, einmal an der gewünschten Position, einmal um 1 Pixel verschoben. Hab das wohl damals auch nicht anders hinbekommen :cry:

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

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

Beitrag von brandelh »

Hallo Martin,

versuche doch einmal die Befehle für die Segmente (Open Close ...) wegzulassen und die GraFunktionen direkt anzeigen zu lassen (oder Anzeige + speichern aktivieren).
Eventuell ist das ja gar nicht so langsam und wenn es danach stimmt ...

Was mich jetzt aber wundert ... du schreibst, dass das Problem beim Fontwechsel auftritt.
Aber dann müsste doch der erste Text, dessen Länge gemessen wurde, noch stimmen.
Somit müsste der Anfang des fetten Teils auf dieser Postion richtig gedruckt werden.
Nur der weitere Text müsste dann in den reinfliesen ?
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

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

Beitrag von brandelh »

Bei noch genaurem Betrachten deines Beispielbildes, stimmt schon vor etwas nicht. Das "G" von "gilt" überschreibt das von "Tierschutz-Hundeverordnung", aber ...

Code: Alles auswählen

blocksatz( oPS, nY, 60, 665, "Nach der neuen Tierschutz-Hundeverordnung gilt ab" )
das kommt alles in einem Font, in einem String in deine Funktion Blocksatz !
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Hallo Hubert,
das Problem tritt nicht nur beim Fontwechsel auf - wie Du ja selber richtig feststellst, ist es ja auch in der Prozedur blocksatz() der Fall.
Sollte ich also vorher tatsächlich geschrieben haben, dass es nur bei Fontwechsel auftritt (ich wüsste nicht, wo ich das geschrieben habe), dann ist das natürlich Blödsinn.
Ich muss leider mit den grafischen Segmenten arbeiten, da ich alle 798 Seiten in jeweils ein eigenes Segment drucke, so dass ich bequem blättern kann und auch einzelne Seiten drucken.
Ich wüsste nicht, wie ich das ohne Segmente machen sollte - ohne dass der Nutzer jedes mal beim Blättern wieder die Zeit warten muss, die er jetzt einmalig beim Aufbauen des Ausdruckes warten muss.

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: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

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

Beitrag von brandelh »

Hallo Martin,
Wegen einer Anfrage in der Alaska-Newsgroup habe ich mir (seit Monaten) mal wieder einen meiner Programmteile angeschaut. Ich drucke Text auf einer Seite und mische dabei unterschiedlich Schriftschnitte ...
daraus hatte ich geschlossen dass es mit dem Fontwechsel zusammenhängt, ohne ...
Die restlichen Blocksatzdrucke funktionieren auch nicht mehr korrekt - dort nutze ich ebenfalls GraQueryTextBox().
dies zu berücksichtigen.

Wie schon öfters geschrieben funktioniert mein Blocksatz einwandfrei, auch in der Vorschau wo ich mit segmenten arbeite.
Du darfst das gerne ausprobieren und meine Druckerklasse downloaden.

Ich verwende allerdings den GraSetDrawMode() nicht ! und beim Drucken selbst gar keine Segmente.
Eventuell sieht dein Programm auch ohne die Modusänderung gut aus und das wäre wenig zu ändern.

Ansonsten könntest du in den obigen "hart codierten" Ausdrucken das messen der Textlänge per Hand erledigen und die Werte manuell eingeben.
Bei Benutzereingaben geht das natürlich nicht ...

Ich habe mir meine Druckerklasse nochmals angeschaut. Ich verwende das Segment mit direkter Anzeige nur dafür,
die aktuelle Seite beim Focuswechsel sofort wieder zu sehen, ohne die neu berechnen zu müssen.
In meiner Druckerklasse kann ich per Parameter angeben, welche Seite der vielen Seiten gedruckt werden soll.
Diese Funktion nutze ich in der HBPrinterDialog() Klasse und wechsle dort den PresentationSpace auf das XbpStatic,
diese Funktion lässt immer nur die Seite generieren, die gerade jetzt benötigt wird.

Ich hatte einmal eine Segmentzwischenspeicherung eingebaut, die ist aber dann je nach Hauptspeicherausbau nach einigen 100 Seiten abgeschmiert.
Dennoch müssten 2 völlig getrennte Presentationspace Objekte mit gleichen Einstellungen auch gleiche Werte ausgeben ...
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Hallo Hubert,
vielen Dank für die Info.
Wie kannst Du denn einzelne Seiten gezielt anspringen bzw. ausdrucken lassen, wenn Du die nicht einmal am Anfang alle berechnet hast?
Ist ja nicht so, dass ich einfach sagen kann, gib mir die nächsten 47 Datensätze aus, beginnend bei Datensatz ((aktuelle_Seitenzahl - 1)*47) + 1.
Das geht (analog dem Beispiel von Alaska) ja nur im Falle eines Ausdruckes von Datenbanken.
Ich drucke ja auch Briefe oder andere Freitextauswertungen.

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