Linksbündige Anzeige mit SAYVAR

Moderator: Moderatoren

Antworten
Benutzeravatar
uwe.24
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 42
Registriert: Di, 01. Aug 2006 15:47
Wohnort: Osnabrück

Linksbündige Anzeige mit SAYVAR

Beitrag von uwe.24 » Fr, 18. Jan 2019 8:56

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
Uwe aus OS

Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2201
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Re: Linksbündige Anzeige mit SAYVAR

Beitrag von Koverhage » Fr, 18. Jan 2019 10:25

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.
Gruß
Klaus

Benutzeravatar
uwe.24
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 42
Registriert: Di, 01. Aug 2006 15:47
Wohnort: Osnabrück

Re: Linksbündige Anzeige mit SAYVAR

Beitrag von uwe.24 » Fr, 18. Jan 2019 10:50

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
Uwe aus OS

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7693
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Linksbündige Anzeige mit SAYVAR

Beitrag von Tom » Fr, 18. Jan 2019 11:18

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)
Herzlich,
Tom

Antworten