XBP_ORIGIN_TOPLEFT gesetzt ?

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

XBP_ORIGIN_TOPLEFT gesetzt ?

Beitrag von AUGE_OHR »

hi,

wie kann ich abfragen ob XBP_ORIGIN_TOPLEFT gesetzt wurde ?
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: XBP_ORIGIN_TOPLEFT gesetzt ?

Beitrag von brandelh »

mit der Methode :setPresParam() kann man die Presentation-Parameter abfragen oder bestimmen !
Gruß
Hubert
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: XBP_ORIGIN_TOPLEFT gesetzt ?

Beitrag von Tom »

oDialog:origin?
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: XBP_ORIGIN_TOPLEFT gesetzt ?

Beitrag von brandelh »

@ TOM
nein,
ie Instanzvariable : origin definiert den Bezugspunkt für den Parameter <aPos> , der bei der Methode :new() angegeben werden kann. Das ist der Ursprung des Koordinatensystems, auf das sich <aPos> bezieht. Für : origin können nur #define-Konstanten aus XBP.CH eingesetzt werden, die in der folgenden Tabelle aufgeführt sind:
Konstanten für den Bezugspunkt eines Dialogfensters
Konstante Beschreibung
XBPDLG_ORIGIN_OWNER *) Bezugspunkt ist {0,0} vom Owner Fenster
XBPDLG_ORIGIN_SCREEN Bezugspunkt ist {0,0} vom Desktop Fenster
XBPDLG_ORIGIN_MOUSE Bezugspunkt ist die aktuelle Mausposition
*) Standardwert
während die von Jimmy angesprochene Definition festlegt ob {0,0} oben links oder unten links im Fenster ist.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: XBP_ORIGIN_TOPLEFT gesetzt ?

Beitrag von AUGE_OHR »

kam gerade wieder auf das Thema.
habe diese Lösung im Einsatz :

Code: Alles auswählen

FUNCTION IsOriginTopLeft( oXbp )
LOCAL lRet     := .F.
LOCAL oDesktop := APPDESKTOP()
LOCAL aPP
LOCAL nPos

   DO WHILE oXbp <> oDesktop
      aPP := oXbp:setPresParam()
      nPos := ASCAN( aPP, { | a | a[ 1 ] == XBP_PP_ORIGIN } )

      IF aPP[ nPos ] [ 2 ] <> NIL
         IF aPP[ nPos ] [ 2 ] == XBP_ORIGIN_TOPLEFT
            lRet := .T.
         ENDIF
         EXIT
      ENDIF

      oXbp := oXbp:setParent()
   ENDDO

RETURN lRet
Frage : gibt es eine einfachere Lösung "wie" man feststellen kann das XBP_ORIGIN_TOPLEFT gewünscht wird ?
gruss by OHR
Jimmy
Antworten