Page 2 of 3
Re: FWH_2407 oSay does not assume nHeight
Posted: Sat Aug 24, 2024 9:33 am
by Antonio Linares
[ Eval( { | oSay, nWidth, nHeight | If( ! Empty( oSay ) .and. ! Empty( nWidth ), oSay:SetSize( nWidth, nHeight ),) }, <oSay>, <nWidth>, <nHeight> ) ]
Working!
Re: FWH_2407 oSay does not assume nHeight
Posted: Sat Aug 24, 2024 12:03 pm
by vinhesoft
Working! with DEFINE WINDOW
Code: Select all | Expand
function Main()
local oWnd, oTest1, oTest2
DEFINE WINDOW oWnd
@ 057,376 SAY oTest1 PROMPT 'Test1' PIXEL
? oTest1:nWidth,oTest1:nHeight // 28,16
@ 087,376 SAY oTest2 PROMPT 'Test2' PIXEL SIZE 015,007
? oTest2:nWidth,oTest2:nHeight // 15,07
oTest1:SetText('** Test1 **')
? oTest1:nWidth,oTest1:nHeight // 28,16
oTest2:SetText('** Test2 **')
? oTest2:nWidth,oTest2:nHeight // 15,07
oTest1:refresh()
? oTest1:nWidth,oTest1:nHeight // 28,16
oTest2:refresh()
? oTest2:nWidth,oTest2:nHeight //15,07
ACTIVATE WINDOW oWnd
return nil
not Working! with DEFINE DIALOG
Code: Select all | Expand
function Test()
local oWnd, oTest1, oTest2
DEFINE DIALOG oWnd
@ 057,376 SAY oTest1 PROMPT 'Test1' PIXEL
? oTest1:nWidth,oTest1:nHeight // 37,16
@ 087,376 SAY oTest2 PROMPT 'Test2' PIXEL SIZE 015,007
? oTest2:nWidth,oTest2:nHeight // 1,1
oTest1:SetText('** Test1 **')
? oTest1:nWidth,oTest1:nHeight // 27,16
oTest2:SetText('** Test2 **')
? oTest2:nWidth,oTest2:nHeight // 1,1
oTest1:refresh()
? oTest1:nWidth,oTest1:nHeight // 37,16
oTest2:refresh()
? oTest2:nWidth,oTest2:nHeight //1,1
ACTIVATE DIALOG oWnd
return nil
I believe that the best solution would be to change the Tsay class so as not to calculate nWidth/nHeigth when these values are defined by the user
Re: FWH_2407 oSay does not assume nHeight
Posted: Sat Aug 24, 2024 12:09 pm
by Antonio Linares
You are right as controls in dialogboxes don't exist until the dialog is activated
Could you please explain us what do you need this for ?
Maybe there is another way of doing it
Re: FWH_2407 oSay does not assume nHeight
Posted: Sat Aug 24, 2024 5:43 pm
by richard-service
Dear Antonio,
I want to move Say object position. I add 1400 not work. FWH2404 version only add 120 work fine.
FWH2407
Code: Select all | Expand
if nStyle < 2007
@ nRow, nCol + 1400 SAY ::oPage PROMPT FWString( "Page number:" ) + ;
LTrim( Str( ::nPage, 4, 0 ) ) + " / " + ;
LTrim( Str( Len( ::oDevice:aMeta ) ) ) ;
SIZE 180, 15 PIXEL OF ::oBar FONT ::oFont
::oPage:lTransparent = .T.
endif
FWH2404
Code: Select all | Expand
if nStyle < 2007
@ nRow, nCol + 120 SAY ::oPage PROMPT FWString( "Page number:" ) + ;
LTrim( Str( ::nPage, 4, 0 ) ) + " / " + ;
LTrim( Str( Len( ::oDevice:aMeta ) ) ) ;
SIZE 180, 15 PIXEL OF ::oBar FONT ::oFont
::oPage:lTransparent = .T.
endif
Re: FWH_2407 oSay does not assume nHeight
Posted: Sun Aug 25, 2024 1:09 pm
by nageswaragunupudi
vinhesoft wrote:good morning
via command does not assume nHeight
@ 057,376 SAY oTest PROMPT 'Test' PIXEL
? oTest:nHeight --> 22
@ 057,376 SAY oTest PROMPT 'Test' PIXEL SIZE 015,007
? oTest:nHeight --> 22
------------------------------------
via property yes
oTest:nHeight := 7
? oTest:nHeight --> 7
Working correctly for me.
Please try this program.
Code: Select all | Expand
#include "fivewin.ch"
function Main()
local oWnd, oSay1, oSay2, oBtn, aInfo
DEFINE WINDOW oWnd FROM 0,0 TO 500,500 PIXEL TITLE FWVERSION
@ 20,20 SAY oSay1 PROMPT "30 PIXEL HEIGHT" SIZE 200,30 PIXEL OF oWnd
? oSay1:nHeight // --> 31
@ 60,20 SAY oSay2 PROMPT "50 PIXEL HEIGHT" SIZE 200,50 PIXEL OF oWnd
? oSay2:nHeight // --> 51
@ 350,20 BTNBMP oBtn PROMPT "CHECK SIZES" + CRLF + "60 PIX HEIGHT" ;
SIZE 200,60 PIXEL OF oWnd FLAT ACTION ( ;
aInfo := {}, ;
AEval( oWnd:aControls, ;
{ |o| AAdd( aInfo, { o:ClassName(), o:nHeight } ) } ), ;
XBrowse( aInfo ) )
ACTIVATE WINDOW oWnd CENTERED
return nil
Note: There is always 1 pixel difference for some controls/windows. I will explain this in detail in a separate post. Otherwise oCtrl:nHeight gives wthe correct value.
Re: FWH_2407 oSay does not assume nHeight
Posted: Sun Aug 25, 2024 1:54 pm
by nageswaragunupudi
not Working! with DEFINE DIALOG
This is working for me here:
Code: Select all | Expand
#include "fivewin.ch"
function Main()
local oDlg, oSay1, oSay2, oBtn, aInfo
DEFINE DIALOG oDlg SIZE 500,500 PIXEL TRUEPIXEL TITLE FWVERSION
@ 20,20 SAY oSay1 PROMPT "30 PIXEL HEIGHT" SIZE 200,30 PIXEL OF oDlg
? oSay1:nHeight // --> 31
@ 60,20 SAY oSay2 PROMPT "50 PIXEL HEIGHT" SIZE 200,50 PIXEL OF oDlg
? oSay2:nHeight // --> 51
@ 350,20 BTNBMP oBtn PROMPT "CHECK SIZES" + CRLF + "60 PIX HEIGHT" ;
SIZE 200,60 PIXEL OF oDlg FLAT ACTION ( ;
aInfo := {}, ;
AEval( oDlg:aControls, ;
{ |o| AAdd( aInfo, { o:ClassName(), o:nHeight } ) } ), ;
XBrowse( aInfo ) )
ACTIVATE DIALOG oDlg CENTERED
return nil
Please run this also and see.
Re: FWH_2407 oSay does not assume nHeight
Posted: Sun Aug 25, 2024 3:47 pm
by nageswaragunupudi
I want to move Say object position. I add 1400 not work. FWH2404 version only add 120 work fine.
Adding 1400 pixels may move it outside the size of the Bar
Does it work if you add 120 pixels?
Re: FWH_2407 oSay does not assume nHeight
Posted: Mon Aug 26, 2024 5:21 pm
by richard-service
nageswaragunupudi wrote:I want to move Say object position. I add 1400 not work. FWH2404 version only add 120 work fine.
Adding 1400 pixels may move it outside the size of the Bar
Does it work if you add 120 pixels?
Adding 1400 and 120 always stay here not move.
FWH2407
Re: FWH_2407 oSay does not assume nHeight
Posted: Tue Aug 27, 2024 9:38 am
by nageswaragunupudi
How can you help us to test this at our end?
Re: FWH_2407 oSay does not assume nHeight
Posted: Wed Aug 28, 2024 3:15 pm
by vinhesoft
Dear Antonio
FHW_1912
FWH_2407
DEFINE WINDOW --> ok
DEFINE DIALOG --> not working
Re: FWH_2407 oSay does not assume nHeight
Posted: Wed Aug 28, 2024 3:21 pm
by Antonio Linares
Many thanks for your feedback
We are working to fix it
Re: FWH_2407 oSay does not assume nHeight
Posted: Wed Aug 28, 2024 3:24 pm
by nageswaragunupudi
Please provide one small sample program which we can test here with different versions with Window and dialog
Re: FWH_2407 oSay does not assume nHeight
Posted: Thu Aug 29, 2024 2:23 am
by richard-service
nageswaragunupudi wrote:How can you help us to test this at our end?
Mr.RAO
Thinking about FWH2404 working and FWH2407 not work. I just modify same code and Chinese word within rpreview.prg
Re: FWH_2407 oSay does not assume nHeight
Posted: Thu Aug 29, 2024 6:10 am
by nageswaragunupudi
richard-service wrote:nageswaragunupudi wrote:How can you help us to test this at our end?
Mr.RAO
Thinking about FWH2404 working and FWH2407 not work. I just modify same code and Chinese word within rpreview.prg
I have tried changing this here on my PC.
This is the original code in rpreview.prg:
Code: Select all | Expand
@ nRow, nCol + 100 SAY ::oPage PROMPT FWString( "Page number:" ) + ;
Without any changes this is how the preview bar looks like:
Now, I changed +100 as +300 like this:
Code: Select all | Expand
@ nRow, nCol + 300 SAY ::oPage PROMPT FWString( "Page number:" ) + ;
With this change, the Say is moved to the right by 200 pixels and looks like this:
Then I changed it to +600 like this:
Code: Select all | Expand
@ nRow, nCol + 600 SAY ::oPage PROMPT FWString( "Page number:" ) + ;
Then the Say moved by 300 pixels more to the right and looked like this:
So, this is working correctly for me here.
Re: FWH_2407 oSay does not assume nHeight
Posted: Thu Aug 29, 2024 7:16 am
by nageswaragunupudi
Mr. João Carlos,
Yes, we see the problem. We regret the inconvenience and also thank your for bringing the issue to our notice.
Can you make two small fixes to "say.prg" and use it to rebuild your application?
FIX:
1) Please locate these two lines. (lines 137 and 138)
Code: Select all | Expand
::nBottom = ::nTop + nHeight
::nRight = ::nLeft + nWidth
Change these two lines as:
Code: Select all | Expand
::nBottom = ::nTop + nHeight - 1
::nRight = ::nLeft + nWidth - 1
2. Please locate this line of code (line 151)
Code: Select all | Expand
::CalcSize( ::nTop, ::nLeft, @nWidth, @nHeight, lRelPix )
Please comment out this line, like this
Code: Select all | Expand
// ::CalcSize( ::nTop, ::nLeft, @nWidth, @nHeight, lRelPix )
These changes should resolve your issues.
Please provide your feed back.