Linksbündige Anzeige mit SAYVAR

Moderator: Moderatoren

Antworten
Benutzeravatar
uwe.24
UDF-Programmierer
UDF-Programmierer
Beiträge: 52
Registriert: Di, 01. Aug 2006 15:47
Wohnort: Osnabrück
Danksagung erhalten: 1 Mal

Linksbündige Anzeige mit SAYVAR

Beitrag 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
Uwe aus OS
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Linksbündige Anzeige mit SAYVAR

Beitrag 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.
Gruß
Klaus
Benutzeravatar
uwe.24
UDF-Programmierer
UDF-Programmierer
Beiträge: 52
Registriert: Di, 01. Aug 2006 15:47
Wohnort: Osnabrück
Danksagung erhalten: 1 Mal

Re: Linksbündige Anzeige mit SAYVAR

Beitrag 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
Uwe aus OS
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: Linksbündige Anzeige mit SAYVAR

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