Seite 1 von 1

Linksbündige Anzeige mit SAYVAR

Verfasst: Fr, 18. Jan 2019 8:56
von uwe.24
Hallo.

Bei der Verwendung von eXprsss++ gelingt es mir nicht eine Variable linksbündig anzuzeigen.
Was mache ich falsch?

Code: Alles auswählen

   @ 2, 1 dcsay "StartSatzNr" size 0 parent oTabPage2
   @ 2,10 dcsay nStartRec SAYVAR nStartRec SAYSIZE 12 SAYOPTION XBPSTATIC_TEXT_LEFT saycolor GRA_CLR_BLACK,GRA_CLR_WHITE parent oTabPage2
Hier wird die richtige Variable immer mittig zentriert angezeigt.
Auch bei Verwendung von SAYLEFT statt SAYOPTION XBPSTATIC_TEXT_LEFT.

Code: Alles auswählen

 @ 3, 1 dcsay "Links      " size 0 parent oTabPage2
   @ 2,10 dcsay nStartRec SAYSIZE 12 SAYOPTION XBPSTATIC_TEXT_LEFT saycolor GRA_CLR_BLACK,GRA_CLR_WHITE parent oTabPage2
Hier wird zwar linksbündig angezeigt, aber immer 0, der Startgrösse der Variable.

mfG
Uwe aus OS

Re: Linksbündige Anzeige mit SAYVAR

Verfasst: Fr, 18. Jan 2019 10:25
von Koverhage
Da n.... ja auch führende Nullen (angezeigt als Leerzeichen ist es schon richtigen.
Entweder mit LTRIM(str(n...)) oder mit der entsprechenden PICT Anweisung.

Re: Linksbündige Anzeige mit SAYVAR

Verfasst: Fr, 18. Jan 2019 10:50
von uwe.24
Hallo Klaus.

Viele Dank für die Antwort.

Aber weder LTRIM (STR(variable)) noch PICTURE "!B 99999999" ändert was an der zentrierten Darstellung.

Uwe aus OS

Re: Linksbündige Anzeige mit SAYVAR

Verfasst: Fr, 18. Jan 2019 11:18
von Tom
Hallo, Uwe.

Also, erstens. Die richtige Syntax ist diese hier:

Code: Alles auswählen

@ x,y DCSAY 'Irgendwas' SIZE 20 SAYOPTIONS XBPALIGN_LEFT
Bitte beachte das "S" am Ende von "SAYOPTIONS" - und die andere Konstante. Sie kann mit anderen XBPALIGN_*-Konstanten kombiniert werden. XBPALIGN_LEFT+XBPALIGN_VCENTER sollte den Text linksbündig und bezogen auf die Größe des Labels vertikal zentriert anzeigen.

Wenn das DCSAY mit einem GET verbunden ist, gibt es Klauseln wie SIZE oder EVAL für die SAY- und die GET-Anteile getrennt (SAYSIZE/SAYEVAL, GETSIZE, GETEVAL).

Und zweitens. Über die DCGETOPTIONS kannst Du das für einen gesamten Dialog festlegen, mit Hilfe der Funktion DC_GetOptDefault(<aGetOptions>) auch für alle Dialoge (Einzeleinstellungen können dann aber wieder abweichen):

Code: Alles auswählen

FUNCTION MyDialog()
LOCAL GetList := {}, GetOptions := {}
DCGET OPTIONS SAYOPTIONS XBPALIGN_VCENTER+XBPALIGN_HCENTER ...

DCREAD GUI OPTIONS GetOptions // für diesen Dialog
* oder:
DC_GetOptDefault(GetOptions) // für alle jetzt folgenden
RETURN NIL
Und drittens. Linksbündige Anzeige sollte eigentlich der Standard sein. Wie schaffst Du es, das mit einer zentrierten Darstellung zu überschreiben? 8)