FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour After object MOVE wrong position-return-values ?
Posts: 4043
Joined: Wed Dec 19, 2007 06:40 PM
After object MOVE wrong position-return-values ?
Posted: Mon Apr 29, 2013 07: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 ) }




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



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 (fw): Select all Collapse
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.
Posts: 174
Joined: Sat Feb 23, 2013 10:04 AM
Re: After object MOVE wrong position-return-values ?
Posted: Tue Apr 30, 2013 07:28 AM

Mr Ukoenig,

Use oWnd:CoorsUpdate() after oWnd object movement.

Regards

Continue the discussion