Update checkboxes

Post Reply
User avatar
Silvio.Falconi
Posts: 7132
Joined: Thu Oct 18, 2012 7:17 pm
Been thanked: 1 time

Update checkboxes

Post by Silvio.Falconi »

I save the value of a checkbox in an ini file and then I try to update the checkbox with setcheck but it doesn't update

I explain U how I made

Code: Select all | Expand

Function test()
   local oCheckSerie:=  array(5)
   local lcheckSerie:=  array(5)
   local aChechSeries:=  {"ChkSerie1","ChkSerie2","ChkSerie3"}

   lcheckSerie[1] := GetIni( cIniFile, cSection, aChechSeries[1], )
   lcheckSerie[2] := GetIni( cIniFile, cSection, aChechSeries[2], )

DEFINE DIALOG.....

  @ 20,10 CHECKBOX  oCheckSerie[1] VAR lcheckSerie[1] PROMPT "Serie 1" of oDlgEvidenzia SIZE 30,10 PIXEL  UPDATE
  
 ACTIVATE DIALOG oDlgEvidenzia CENTER ;
          ON INIT ( SetCheckBoxes(oCheckSerie,lcheckSerie)   )


return nil 


static Function SetCheckBoxes(oCheckSerie,lcheckSerie)
   local n
    For n= 1 to 2
       oCheckSerie[n]:SetCheck( lcheckSerie[n] )
       oCheckSerie[n]:refresh()
    next
    return nil
function GetIni( cIni, cSection, cEntry, xDefault )

   local oIni
   local xVar := xDefault


   INI oIni FILE cIni
   get xVar            ;
      SECTION cSection ;
      ENTRY cEntry     ;
      default xDefault ;
      OF oIni
   ENDINI

   return xVar
 

where is the error ?
I check the value and it is .t.
on ini file

Code: Select all | Expand

ChkSerie1=.T.
ChkSerie2=.T.
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 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
User avatar
karinha
Posts: 7932
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Update checkboxes

Post by karinha »

Estimado Silvio, tal vez si muestra desde la creación de ARCHIVO.INI, será más fácil entender lo que está mal. Porque sin el archivo .INI, es complicado de probar, ¿sabes?

Dear Silvio, maybe if you show since the creation of the .INI FILE, it will be easier to understand what is wrong. Because without the .INI file, it's complicated to test, you know?

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Silvio.Falconi
Posts: 7132
Joined: Thu Oct 18, 2012 7:17 pm
Been thanked: 1 time

Re: Update checkboxes

Post by Silvio.Falconi »

karinha wrote:Estimado Silvio, tal vez si muestra desde la creación de ARCHIVO.INI, será más fácil entender lo que está mal. Porque sin el archivo .INI, es complicado de probar, ¿sabes?

Dear Silvio, maybe if you show since the creation of the .INI FILE, it will be easier to understand what is wrong. Because without the .INI file, it's complicated to test, you know?

Regards, saludos.
Dear Karinha,
I wrote what I have on ini.file

Image
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 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
User avatar
Silvio.Falconi
Posts: 7132
Joined: Thu Oct 18, 2012 7:17 pm
Been thanked: 1 time

Re: Update checkboxes

Post by Silvio.Falconi »

here there is the test.prg

Code: Select all | Expand

#include "fivewin.ch"

Function test()
   local cIniFile  :=  cFilePath( GetModuleFileName( GetInstance() ) ) + "test.ini"
   local cSection:="COLORI"

local oCheckSerie:= array(5)
local lcheckSerie:= array(5)
local aChechSeries:= {"ChkSerie1","ChkSerie2","ChkSerie3"}

lcheckSerie[1] := GetIni( cIniFile, cSection, aChechSeries[1], ".t.")
lcheckSerie[2] := GetIni( cIniFile, cSection, aChechSeries[2], ".t.")

DEFINE DIALOG oDlg size 100,200

@ 20,10 CHECKBOX oCheckSerie[1] VAR lcheckSerie[1] PROMPT "Serie 1" of oDlg SIZE 30,10 PIXEL UPDATE
@ 40,10 CHECKBOX oCheckSerie[2] VAR lcheckSerie[2] PROMPT "Serie 2" of oDlg SIZE 30,10 PIXEL UPDATE

ACTIVATE DIALOG oDlg CENTER ;
ON INIT ( SetCheckBoxes(oCheckSerie,lcheckSerie) )
return nil

//------------------------------------------------------------------------//
static Function SetCheckBoxes(oCheckSerie,lcheckSerie)
local n
For n= 1 to 2
oCheckSerie[n]:SetCheck( lcheckSerie[n] )
oCheckSerie[n]:refresh()
next
return nil
//-------------------------------------------------------------------------//
function GetIni( cIni, cSection, cEntry, xDefault )
local oIni
local xVar := xDefault
INI oIni FILE cIni
get xVar ;
SECTION cSection ;
ENTRY cEntry ;
default xDefault ;
OF oIni
ENDINI
return xVar
//-------------------------------------------------------------------------//


 

found the error it nor read the true or false

lcheckSerie[1] := If (GetIni( cIniFile, cSection, aChechSeries[1], ".t.")==".t.",.t.,.f.)
lcheckSerie[2] := If (GetIni( cIniFile, cSection, aChechSeries[2], ".t.")== ".t.",.t.,.f.)

instead of

lcheckSerie[1] := GetIni( cIniFile, cSection, aChechSeries[1], ".t.")
lcheckSerie[2] := GetIni( cIniFile, cSection, aChechSeries[2], ".t.")
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 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
User avatar
karinha
Posts: 7932
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Update checkboxes

Post by karinha »

Trataré de entender.

I will try to understand. I'll try.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 7932
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Update checkboxes

Post by karinha »

Dear Silvio, asi funciona bien con S/N SI o NO. Cambie el .INI y prueba.

Code: Select all | Expand

// C:\FWH..\SAMPLES\SETCHECK.PRG by Silvio Falconi.

#include "Fivewin.ch"

STATIC lcheckSerie1 := .F.
STATIC lcheckSerie2 := .F.

MEMVAR oCheck1, oCheck2

FUNCTION Main()

   LOCAL oDlg

   DEFINE DIALOG oDlg size 100, 200

   @ 20, 10 CHECKBOX oCheck1 VAR lcheckSerie1 PROMPT "Serie 1" of oDlg ;
      SIZE 30, 10 PIXEL UPDATE

   @ 40, 10 CHECKBOX oCheck2 VAR lcheckSerie2 PROMPT "Serie 2" of oDlg ;
      SIZE 30, 10 PIXEL UPDATE

   ACTIVATE DIALOG oDlg CENTER ON INIT( GetIni() )

RETURN nil

FUNCTION GetIni()

   LOCAL oIni, nColor, nColor2, nColori, nColori2

   INI oIni FILE ".\test.ini"  // SI O NO. Para Checkbox
      GET nColor  SECTION "COLORI" ENTRY "ChkSerie1" OF oIni DEFAULT nColor
      GET nColor2 SECTION "COLORI" ENTRY "ChkSerie2" OF oIni DEFAULT nColor2
   ENDINI

   nColori := ALLTRIM( nColor )  // SI O NO

   // ? nColori

   IF UPPER( nColori ) = [S] // YES  // SI

      lcheckSerie1 := .T.

   ELSE                  // NO

      lcheckSerie1 := .F.

   ENDIF

   oCheck1:VARPUT( lcheckSerie1 )
   oCheck1:Refresh()

   nColori2 := nColor2

   IF UPPER( nColori2 ) = [S] // YES  // SI

      lcheckSerie2 := .T.

   ELSE                       // NO

      lcheckSerie2 := .F.

   ENDIF

   oCheck2:VARPUT( lcheckSerie2 )
   oCheck2:Refresh()

RETURN NIL

/*
// Cambie el .INI para S(I) o (N)O  YES OR NO, ok? asi funciona bien.
[HTML]
TH=12|normale|5|#8DB3E2|#548DD4|#FFFFFF
TD=12|normale|5|#8DB3E2|#548DD4|#FFFFFF
[COLORI]
ChkSerie1=S
ChkSerie2=S
*/
// fin / end
 
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 7932
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Update checkboxes

Post by karinha »

Dear Silvio, Model 1 complete:

Code: Select all | Expand

// C:\FWH..\SAMPLES\SETCHECK.PRG by Silvio Falconi.

#include "Fivewin.ch"

STATIC lcheckSerie1 := .F.
STATIC lcheckSerie2 := .F.

MEMVAR oCheck1, oCheck2

FUNCTION Main()

   LOCAL oDlg, oBtn2, oFont, oSay, cPrompt, cPrompt2
   LOCAL cTitle, NOME_ARQ, NREGISTRO

   cTitle := "GET INI For Silvio Falconi - Modelo Exclusivo"

   DEFINE FONT oFont  NAME "Ms Sans Serif"  SIZE 00, -14 BOLD

   DEFINE DIALOG oDlg SIZE 350, 350 TITLE cTitle FONT oFont            ;
      COLOR CLR_BLACK, CLR_WHITE TRANSPARENT

   oDlg:lHelpIcon := .F.

   @ 20, 10 CHECKBOX oCheck1 VAR lcheckSerie1 PROMPT "Serie 1" of oDlg ;
      SIZE 50, 10 PIXEL UPDATE                                         ;
      COLORS nRgb( 250,   0,   0 ), nRgb(  72, 180, 215 )

   @ 40, 10 CHECKBOX oCheck2 VAR lcheckSerie2 PROMPT "Serie 2" of oDlg ;
      SIZE 50, 10 PIXEL UPDATE                                         ;
      COLORS nRgb( 250,   0,   0 ), nRgb(  72, 180, 215 )

   cPrompt := "GET INI For Silvio Falconi"

   @ 09, 07 SAY oSay PROMPT cPrompt SIZE 100, 12 OF oDlg               ;
      COLORS CLR_CYAN, CLR_WHITE UPDATE

   cPrompt2 := "By kapiabafwh@gmail.com"

   @ 10, 07 SAY oSay PROMPT cPrompt2 SIZE 100, 12 OF oDlg               ;
      COLORS CLR_CYAN, CLR_WHITE UPDATE

   @ 100, 70 BTNBMP oBtn2 FILENAME "..\bitmaps\Exit.bmp" OF oDlg SIZE 30, 30 ;
      ACTION( oDlg:End() )

   oBtn2:lCancel := .T.

   IF FILE( "SILVIO.INI" )

      GETINI_SILVIO()

   ELSE

      NOME_ARQ := FCREATE("SILVIO.INI")

      NREGISTRO := "[MAIN]"                                                  ;
                   + CRLF                                    +               ;
                   "Tipo=1"                                  +               ;
                   + CRLF                                    +               ;
                   "Style=BRICKS"                            +               ;
                   + CRLF                                    +               ;
                   "Colori=32768"                            +               ;
                   + CRLF                                    +               ;
                   "File=.\ARANHA.BMP"                       +               ;
                   + CRLF+CRLF                               +               ;
                   "[HTML]"                                  +               ;
                   + CRLF                                    +               ;
                   "TH=12|normale|5|#8DB3E2|#548DD4|#FFFFFF" +               ;
                   + CRLF                                    +               ;
                   "TD=12|normale|5|#8DB3E2|#548DD4|#FFFFFF" +               ;
                   + CRLF+CRLF                               +               ;
                   "[COLORI]"                                +               ;
                   + CRLF                                    +               ;
                   "ChkSerie1=S"                             +               ;
                   + CRLF                                    +               ;
                   "ChkSerie2=S"                             +               ;
                   + CRLF+CRLF                               +               ;
                   "[THANKS]"                                +               ;
                   + CRLF                                    +               ;
                   "Special Thanks = "+"Ednaldo Rolim"                      +;
                   + CRLF                                                   +;
                   "Propriet rio.. = "+"JoÆo Santos-kapiabafwh@gmail.com   "+;
                   + CRLF                                    +               ;
                   "Meu Site:..... = "+"Visite: http://www.fivewin.com.br"         +;
                   + CRLF                                                   +;
                   "Autor......... = "+"JoÆo Santos-kapiabafwh@gmail.com   "+;
                   + CRLF                                                   +;
                   "Special Guest Star: "+"Silvio Falconi - Italia         "

      FWRITE( NOME_ARQ, NREGISTRO )
      FCLOSE( NOME_ARQ )

      GETINI_SILVIO()

   ENDIF

   ACTIVATE DIALOG oDlg CENTERED

   oFont:End()

RETURN nil

FUNCTION GETINI_SILVIO()

   LOCAL oIni, nColor, nColor2, nColori, nColori2

   INI oIni FILE ".\SILVIO.ini"  // SI O NO. Para Checkbox
      GET nColor  SECTION "COLORI" ENTRY "ChkSerie1" OF oIni DEFAULT nColor
      GET nColor2 SECTION "COLORI" ENTRY "ChkSerie2" OF oIni DEFAULT nColor2
   ENDINI

   nColori := ALLTRIM( nColor )  // SI O NO

   IF UPPER( nColori ) = [S] // YES  // SI

      lcheckSerie1 := .T.

   ELSE                  // NO

      lcheckSerie1 := .F.

   ENDIF

   oCheck1:VARPUT( lcheckSerie1 )
   oCheck1:Refresh()

   nColori2 := nColor2

   IF UPPER( nColori2 ) = [S] // YES  // SI

      lcheckSerie2 := .T.

   ELSE                       // NO

      lcheckSerie2 := .F.

   ENDIF

   oCheck2:VARPUT( lcheckSerie2 )
   oCheck2:Refresh()

RETURN NIL

// fin / end
 
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 7932
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Update checkboxes

Post by karinha »

Dear Silvio, Model 2 complete:

Code: Select all | Expand

// C:\FWH..\SAMPLES\SETCHEK2.PRG by Silvio Falconi.

#include "Fivewin.ch"

STATIC lcheckSerie1 := .F.
STATIC lcheckSerie2 := .F.

MEMVAR oCheck1, oCheck2

FUNCTION Main()

   LOCAL oDlg, oBtn2, oFont, oSay, cPrompt, cPrompt2
   LOCAL cTitle

   cTitle := "GET INI For Silvio Falconi - Modelo Exclusivo"

   DEFINE FONT oFont  NAME "Ms Sans Serif"  SIZE 00, -14 BOLD

   DEFINE DIALOG oDlg SIZE 350, 350 TITLE cTitle FONT oFont            ;
      COLOR CLR_BLACK, CLR_WHITE TRANSPARENT

   oDlg:lHelpIcon := .F.

   @ 20, 10 CHECKBOX oCheck1 VAR lcheckSerie1 PROMPT "Serie 1" of oDlg ;
      SIZE 50, 10 PIXEL UPDATE                                         ;
      COLORS nRgb( 250,   0,   0 ), nRgb(  72, 180, 215 )

   @ 40, 10 CHECKBOX oCheck2 VAR lcheckSerie2 PROMPT "Serie 2" of oDlg ;
      SIZE 50, 10 PIXEL UPDATE                                         ;
      COLORS nRgb( 250,   0,   0 ), nRgb(  72, 180, 215 )

   cPrompt := "GET INI For Silvio Falconi"

   @ 09, 07 SAY oSay PROMPT cPrompt SIZE 100, 12 OF oDlg               ;
      COLORS CLR_CYAN, CLR_WHITE UPDATE

   cPrompt2 := "By kapiabafwh@gmail.com"

   @ 10, 07 SAY oSay PROMPT cPrompt2 SIZE 100, 12 OF oDlg               ;
      COLORS CLR_CYAN, CLR_WHITE UPDATE

   @ 100, 70 BTNBMP oBtn2 FILENAME "..\bitmaps\Exit.bmp" OF oDlg SIZE 30, 30 ;
      ACTION( oDlg:End() )

   oBtn2:lCancel := .T.

   IF FILE( "SILVIO.INI" )

      GETINI_SILVIO()

   ELSE

      GRABAR_INI()

   ENDIF

   ACTIVATE DIALOG oDlg CENTERED

   oFont:End()

RETURN nil

FUNCTION GETINI_SILVIO()

   LOCAL oIni, nColor, nColor2, nColori, nColori2

   INI oIni FILE ".\SILVIO.ini"  // SI O NO. Para Checkbox
      GET nColor  SECTION "COLORI" ENTRY "ChkSerie1" OF oIni DEFAULT nColor
      GET nColor2 SECTION "COLORI" ENTRY "ChkSerie2" OF oIni DEFAULT nColor2
   ENDINI

   nColori := ALLTRIM( nColor )  // SI O NO

   IF UPPER( nColori ) = [S] // YES  // SI

      lcheckSerie1 := .T.

   ELSE                  // NO

      lcheckSerie1 := .F.

   ENDIF

   oCheck1:VARPUT( lcheckSerie1 )
   oCheck1:Refresh()

   nColori2 := nColor2

   IF UPPER( nColori2 ) = [S] // YES  // SI

      lcheckSerie2 := .T.

   ELSE                       // NO

      lcheckSerie2 := .F.

   ENDIF

   oCheck2:VARPUT( lcheckSerie2 )
   oCheck2:Refresh()

RETURN NIL

FUNCTION GRABAR_INI()

   LOCAL NOME_ARQ, NREGISTRO

   NOME_ARQ := FCREATE("SILVIO.INI")

   NREGISTRO := "[MAIN]"                                                   ;
                + CRLF                                    +                ;
                "Tipo=1"                                  +                ;
                + CRLF                                    +                ;
                "Style=BRICKS"                            +                ;
                + CRLF                                    +                ;
                "Colori=32768"                            +                ;
                + CRLF                                    +                ;
                "File=.\ARANHA.BMP"                       +                ;
                + CRLF+CRLF                               +                ;
                "[HTML]"                                  +                ;
                + CRLF                                    +                ;
                "TH=12|normale|5|#8DB3E2|#548DD4|#FFFFFF" +                ;
                + CRLF                                    +                ;
                "TD=12|normale|5|#8DB3E2|#548DD4|#FFFFFF" +                ;
                + CRLF+CRLF                               +                ;
                "[COLORI]"                                +                ;
                + CRLF                                    +                ;
                "ChkSerie1=S"                             +                ;
                + CRLF                                    +                ;
                "ChkSerie2=S"                             +                ;
                + CRLF+CRLF                               +                ;
                "[THANKS]"                                +                ;
                + CRLF                                    +                ;
                "Special Thanks = "+"Ednaldo Rolim"                      + ;
                + CRLF                                                   + ;
                "Propriet rio.. = "+"JoÆo Santos-kapiabafwh@gmail.com   "+ ;
                + CRLF                                    +                ;
                "Meu Site:..... = "+"Visite: http://www.fivewin.com.br"         + ;
                + CRLF                                                   + ;
                "Autor......... = "+"JoÆo Santos-kapiabafwh@gmail.com   "+ ;
                + CRLF                                                   + ;
                "Special Guest Star: "+"Silvio Falconi - Italia         "

   FWRITE( NOME_ARQ, NREGISTRO )
   FCLOSE( NOME_ARQ )

   GETINI_SILVIO()

RETURN NIL

// fin / end
 
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Post Reply