After object MOVE wrong position-return-values ?

After object MOVE wrong position-return-values ?

Postby ukoenig » Mon Apr 29, 2013 7:11 pm

Hello,

I need the new object-position afer move ( NO resize ) from inside a dialog.
I want to move the SAYS, to find the best textcolors in relation to the gradient.
The return-values are wrong. My test :

oSay1:bMoved := {|| ( nTxtTop1 := oSay1:nTop, nTxtLeft1 := oSay1:nLeft ) }
oSay2:bMoved := {|| ( nTxtTop2 := oSay2:nTop, nTxtLeft2 := oSay1:nLef2 ) }
oSay3:bMoved := {|| ( nTxtTop3 := oSay3:nTop, nTxtLeft3 := oSay1:nLef3 ) }


Image

I only moved to LEFT with the same TOP
A left mouseclick shows the values.

Image

The Top / Left of the 3 says are STATIC
The new values after MOVE I have to save.

nTxtTop1, nTxtLeft1
nTxtTop2, nTxtLeft2
nTxtTop3, nTxtLeft3

Code: Select all  Expand view

FUNCTION SHOW_DLG( oWnd )
LOCAL oBtn30, nRadio1 := 1, lCheck1 := .T.
LOCAL oSay1, oSay2, oSay3, oRadio1, oCheck1
LOCAL oSlide, oSlide1, oSlide2, oSlide3
LOCAL nVar1 := 150, nVar2 := 100, nVar3 := 150

lGDialog := .T.

DEFINE DIALOG oGDialog FROM nDlgTop, nDlgLeft TO nDlgHeight, nDlgWidth  OF oWnd PIXEL ;
TITLE "Dialog GRADIENT"

oGDialog:bLClicked := {|| MsgAlert( ;
                   "Dialog Top / Left / Width / Height : " + ALLTRIM(STR(oGDialog:nTop)) + " / " +  ALLTRIM(STR(oGDialog:nLeft)) + " / " + ;
                                                                                   ALLTRIM(STR(oGDialog:nWidth)) + " / " +  ALLTRIM(STR(oGDialog:nHeight)) + CRLF + ;
                   "Top / Left 1 : " + ALLTRIM(STR(nTxtTop1)) + " / " +  ALLTRIM(STR(nTxtLeft1)) + CRLF + ;
                   "Top / Left 2 : " + ALLTRIM(STR(nTxtTop2)) + " / " +  ALLTRIM(STR(nTxtLeft2)) + CRLF + ;
                   "Top / Left 3 : " + ALLTRIM(STR(nTxtTop3)) + " / " +  ALLTRIM(STR(nTxtLeft3)), "TextPosition" ) }

@ 10, 5 RADIO oRadio1 VAR nRadio1 OF oGDialog PIXEL ;
ITEMS "Option &1", "Option &2" _3D SIZE 70, 15 COLOR nWColorT1 ; // 16443068 ;
HELPID 100, 101 ;
ON CHANGE MsgBeep()
oRadio1:SetFont( oFont )
AEval( oRadio1:aItems, { | oRad | oRad:lTransparent := .T. } )

@ 40, 10 CHECKBOX oCheck1 VAR lCheck1  COLOR nWColorT1 PIXEL ;
PROMPT "&ClickMe" OF oGDialog SIZE 80, 15 ;
ON CHANGE oCheck1:SetText( "New Text" )
oCheck1:lTransparent := .T.
oCheck1:SetFont( oFont )

// ---------------------------

@ nTxtTop1, nTxtLeft1 SAY oSay1 PROMPT "Transparent Say" + CRLF + ;
                                                                                     "of Gradient 1" ;
OF oGDialog SIZE 90, 30 FONT oFont2 PIXEL
oSay1:bMoved := {|| ( nTxtTop1 := oSay1:nTop, nTxtLeft1 := oSay1:nLeft ) }
oSay1:SetColor( nWColorT1, )
oSay1:lTransparent := .T.
oSay1:lDrag := .T.

@ nTxtTop2, nTxtLeft2 SAY oSay2 PROMPT "Transparent Say" + CRLF + ;
                                                                                     "of Gradient 2" ;
OF oGDialog SIZE 90, 30 FONT oFont2 PIXEL
oSay2:bMoved := {|| ( nTxtTop2 := oSay2:nTop, nTxtLeft2 := oSay2:nLeft ) }
oSay2:SetColor( nWColorT2, )
oSay2:lTransparent := .T.
oSay2:lDrag := .T.

@ nTxtTop3, nTxtLeft3 SAY oSay3 PROMPT "Transparent Say" + CRLF + ;
                                                                                     "of Bottom Color" ;
OF oGDialog SIZE 90, 30 FONT oFont2 PIXEL
oSay3:bMoved := {|| ( nTxtTop3 := oSay3:nTop, nTxtLeft3 := oSay3:nLeft ) }
oSay3:SetColor( nWColorT3, )
oSay3:lTransparent := .T.
oSay3:lDrag := .T.

ACTIVATE DIALOG oGDialog  NOWAIT ;
ON INIT ( DisableX(oGDialog, .T.), ;
                  GRADBRUSH( oGDialog, nTop1, nBottom1, lWDirect1, ; // Top, Bottom 1
                                               nTop2, nBottom2, lWDirect2, ; // Top, Bottom 2
                           nTop3, nBottom3 ) ) // Top, Bottom 3
                           
RETURN NIL
 


Best Regards
Uwe :?:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
 
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany

Re: After object MOVE wrong position-return-values ?

Postby Antonio Mart. » Tue Apr 30, 2013 7:28 am

Mr Ukoenig,

Use oWnd:CoorsUpdate() after oWnd object movement.

Regards
Antonio Mart.
 
Posts: 174
Joined: Sat Feb 23, 2013 10:04 am


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 89 guests