Seite 1 von 1

PresentationSpace Koordinaten nach oben links statt unten links

Verfasst: Do, 23. Apr 2020 15:08
von Benz
Hi,

Ich würde gerne über den PresentationSpace etwas drucken, aber wie in Xbase++ üblich, ist der Koordinatenursprung unten links.
Kann man den nach oben links setzen? Das würde es mir bei bestehnden Programmen sehr vereinfachen das mit der Xbase++-eigenen Klasse zu drucken.

Es geht vor allem um GraStringAt und GraBox im PresentationSpace.

Re: PresentationSpace Koordinaten nach oben links statt unten links

Verfasst: Do, 23. Apr 2020 16:23
von Jan
Es gibt zwei Punkte, an denen man das einbauen kann: In Dialogen und im Ausdruck.

Einfach als PresentationParameter ein {{XBP_PP_ORIGIN, XBP_ORIGIN_TOPLEFT}} einbauen. Das wird vererbt. Wenn man also z. B. den Hauptdialog so einstellt, ist alles darunter ebenfalls TopLeft.

Jan

Re: PresentationSpace Koordinaten nach oben links statt unten links

Verfasst: Fr, 24. Apr 2020 7:53
von Benz
Sorry, aber ich steh irgendwie auf dem Schlauch.
Kannst du mir ein Beispiel geben, an welcher Stelle man das einfügt ?
Ich will den PresentationSpace zum Drucken nutzen also mit der XbpPrinter Klasse. Sieht bei mir momentan so aus:

Code: Alles auswählen

    
    
    ::clPrinter:= XbpPrinter():NEW()
    ::clPrinter:setOrientation ( XBPPRN_ORIENT_LANDSCAPE )  
    
    ::clPrinter:create ( cDruckerName )  // Systemresource belegen
   memprnsize := ::clPrinter:papersize()
    
    ::clPresentationSpace  := XbpPresSpace():New()
    mempssize := { memprnsize [5] - memprnsize [3] ;    //x - Koordinate
                 , memprnsize [6] - memprnsize [4] ;    //y - Koordinate
                 }

    ::clPresentationSpace:create ( ::clPrinter ;
                                 , mempssize ;        // Grösse des Presetnationsspace
                                 , GRA_PU_LOMETRIC ;  // Einheit des Koordinatensystems des Presentations Space hier : 0,1 mm
                                 )
                                 
Wo kann ich hier die PresentationParamter von dir einbauen?
Und in welcher Datei werden die Konstanten XBP_PP_ORIGIN und XBP_ORIGIN_TOPLEFT definiert? Ich finde die leider in der Hilfe nicht.
Ich bin leider noch blutiger Anfänger mit diesen PresentationSpaces :banghead:

Re: PresentationSpace Koordinaten nach oben links statt unten links

Verfasst: Fr, 24. Apr 2020 8:01
von Jan
Moin,

z. B.

Code: Alles auswählen

oDlg := XbpDialog():new(AppDesktop(), , {100, 100}, {800, 800}, {{XBP_PP_ORIGIN, XBP_ORIGIN_TOPLEFT}})
Du mußt dann die xbp.ch einbinden.

Jan

Re: PresentationSpace Koordinaten nach oben links statt unten links

Verfasst: Fr, 24. Apr 2020 11:22
von Tom
XBP_PP_ORIGIN ist eine Eigenschaft, die nur für XbpDialog(e) gesetzt werden kann. XbpPresSpace() kennt sie nicht. Aber es gibt GRA_PO_TOPLEFT im PP für XbpPresSpace:setPageSize(), einfach mal in die GRA.CH schauen.

Schau mal einer guck. Das hast Du vor sieben Jahren selbst sehr gut erklärt, Jan: https://www.xbaseforum.de/viewtopic.php ... EFT#p78072

Re: PresentationSpace Koordinaten nach oben links statt unten links

Verfasst: Fr, 24. Apr 2020 11:50
von Jan
Tom,

ich hatte ja oben geschrieben, daß das für Dialoge und Drucken geht. Stimmt, Drucken läuft dann über den oPs. Und stimmt, da muß nicht das Array rein. Da hatte ich zumindest für diesen Fall den falschen Code kopiert.

Jan

Re: PresentationSpace Koordinaten nach oben links statt unten links

Verfasst: Di, 28. Apr 2020 12:13
von Benz
Super danke für die Hilfe euch beiden!