PresentationSpace Koordinaten nach oben links statt unten links

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

Moderator: Moderatoren

Antworten
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

PresentationSpace Koordinaten nach oben links statt unten links

Beitrag 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.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: PresentationSpace Koordinaten nach oben links statt unten links

Beitrag 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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: PresentationSpace Koordinaten nach oben links statt unten links

Beitrag 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:
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: PresentationSpace Koordinaten nach oben links statt unten links

Beitrag 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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: PresentationSpace Koordinaten nach oben links statt unten links

Beitrag 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
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: PresentationSpace Koordinaten nach oben links statt unten links

Beitrag 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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: PresentationSpace Koordinaten nach oben links statt unten links

Beitrag von Benz »

Super danke für die Hilfe euch beiden!
Antworten