I have a button on a dialog and also a menu pulldown
Menuitem oItem[1] prompt fwstring("test bla bla")
-....
@ n+ nlinea5,ncol1 BUTTON oBIvap PROMPT fwstring("+ Iva") OF oDlg ;
SIZE 63,25 ;
ACTION
when I change the language on another function I made :
oDlg:SetMenu( BuildMenu() )
aEval(oDlg:aControls,{|oC|iif(oC:ClassName()="TBUTTON",oC:SetText( oC:cCaption ),)})
aEval(oDlg:aControls,{|oC|iif(oC:ClassName()="TBUTTON",oC:refresh(),)})
it change only the menu pulldown while the buttons caption are not changed... WHY ?
I add astrings with { "+ Tax", "+ Tax", "+ Tax", "+ Tax", "+ Tax", "+ Iva" } sure...
here a test sample to try :
Menuitem oItem[1] prompt fwstring("test bla bla")
-....
@ n+ nlinea5,ncol1 BUTTON oBIvap PROMPT fwstring("+ Iva") OF oDlg ;
SIZE 63,25 ;
ACTION
when I change the language on another function I made :
oDlg:SetMenu( BuildMenu() )
aEval(oDlg:aControls,{|oC|iif(oC:ClassName()="TBUTTON",oC:SetText( oC:cCaption ),)})
aEval(oDlg:aControls,{|oC|iif(oC:ClassName()="TBUTTON",oC:refresh(),)})
it change only the menu pulldown while the buttons caption are not changed... WHY ?
I add astrings with { "+ Tax", "+ Tax", "+ Tax", "+ Tax", "+ Tax", "+ Iva" } sure...
here a test sample to try :
#include "FiveWin.ch"
#include "constant.ch"
#include "xbrowse.ch"
static nLanguage,cIniCalc
static oDlgTest
Function test()
//Dialog
Local nBottom := 16.5
Local nRight := 32
Local nWidth := Max( nRight * DLG_CHARPIX_W, 180 )
Local nHeight := nBottom * DLG_CHARPIX_H
Local oDlg
cIniCalc := cFilePath( GetModuleFileName( GetInstance() ) ) + "Calc.ini"
FWAddString( { "+Tax","+Tax", "+Tax", "+Tax", "+Tax", "+Iva" })
FWAddString( { "-Tax","-Tax", "-Tax", "-Tax", "-Tax", "-Iva" })
FWAddString( { "Show","", "", "", "", "Visualizza" })
FWAddString( { "Help","", "", "", "", "Aiuto" })
FWAddString( { "Ribbon","", "", "", "", "Nastro Operazioni" })
FWAddString( { "Options","", "", "", "", "Opzioni" })
FWAddString( { "Preferences","", "", "", "", "Preferenze" })
FWAddString( { "Authors","", "", "", "", "Autori" })
//FWEditStrings() trace to see there are the strings
FWSetLanguage( 6 ) // Italian language
SavePreferences() / save on ini file
LoadPreferences() // read fron ini file
DEFINE DIALOG oDlgTest SIZE nWidth, nHeight PIXEL
ACTIVATE DIALOG oDlgTest CENTER;
on INIt (Load_Buttons(oDlgTest), oDlgTest:SetMenu(BuildMenu() ) )
return nil
Function Load_Buttons(oDlgTest)
Local nlinea5:=10
Local ncol1:= 8.5
Local ncol5:= 30.5
Local n:= 0
Local oBIvap,oBRes
@ n+nlinea5,ncol5 BUTTON oBRes PROMPT ("Change") OF oDlgTest ;
SIZE 63,25 ;
ACTION Preferences()
@ n+ nlinea5,ncol1 BUTTON oBIvap PROMPT FWString( "+Iva" ) OF oDlgtest SIZE 45, 13 ACTION oDlgTest:End()
return nil
function LoadPreferences()
GetIni( cIniCalc, "Lang", "Language", )
return nil
function SavePreferences()
DEFAULT nLanguage := FWSetLanguage()
SetIni( cIniCalc, "Lang", "Language", nLanguage )
return nil
//fron fwdbu source
function Preferences()
local oDlgPref
DEFINE DIALOG oDlgPref TITLE FWString( "Preferences" ) SIZE 400, 300
@ 4.6, 1.5 SAY FWString( "Language" ) OF oDlgPref
DEFAULT nLanguage := FWSetLanguage()
@ 6, 1.2 COMBOBOX nLanguage ;
ITEMS { FWString( "English" ), FWString( "Spanish" ), FWString( "French" ),;
FWString( "Portuguese" ), FWString( "German" ) , FWString( "Italian" ) } ;
OF oDlgPref SIZE 180, 150 ;
ON CHANGE ( FWSetLanguage( nLanguage ), oDlgtest:SetMenu( BuildMenu() ) )
@ 7, 7 BUTTON FWString( "&Ok" ) OF oDlgPref SIZE 45, 13 ;
ACTION ( SavePreferences(), oDlgPref:End() )
@ 7, 18 BUTTON FWString( "&Cancel" ) OF oDlgPref SIZE 45, 13 ACTION oDlgPref:End()
ACTIVATE DIALOG oDlgPref CENTERED
return nil
Function BuildMenu()
Local oMenu
MENU oMenu
MENUITEM fwstring("Visualizza")
MENU
MENUITEM fwstring("Nastro Operazioni") ACTION NIL
ENDMENU
MENUITEM "&?"
MENU
MENUITEM fwstring("Aiuto") ACTION HelpIndex()
SEPARATOR
MENUITEM fwstring("Opzioni") ACTION NIL
MENUITEM fwstring("Preferenze") Action NIL
SEPARATOR
MENUITEM fwstring("Autori") ACTION NIL
ENDMENU
ENDMENU
RETURN (oMenu)
STATIC FUNCTION SetIni( cIni, cSection, cEntry, xVar )
LOCAL oIni
// DEFAULT cIni := oApp:cIniFile
INI oIni FILE cIni
SET SECTION cSection ;
ENTRY cEntry ;
TO xVar ;
OF oIni
ENDINI
RETURN nil
//------------------------------------------------------------------//
STATIC FUNCTION GetIni( cIni, cSection, cEntry, xDefault )
LOCAL oIni
LOCAL xVar := xDefault
//DEFAULT cIni := oApp:cIniFile
INI oIni FILE cIni
GET xVar ;
SECTION cSection ;
ENTRY cEntry ;
DEFAULT xDefault ;
OF oIni
ENDINI
RETURN xVarSince from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com