El código de creacion de checkbox es común , pero no coge el mismo "sistema de dimensiones" si se crea el folder desde el código antes de activar el Dialogo o a posteriori en el init .
Pongo el código que lo reproduce
- Code: Select all Expand view
#include "FiveWin.ch"
//----------------------------------------------------------------------------//
function Main()
local oDlg, oFld
local avar:= {}
local acheckbox:= {}
local i
local x,y
DEFINE DIALOG oDlg TITLE "FiveWin Dynamic folders" ;
FROM 5, 5 TO 40, 120 COLOR "N/G"
@ 30,10 FOLDER oFld PROMPT "1-99" OF oDlg PIXEL SIZE 400,175
AAdd( aVar, Array(100) )
AAdd( aCheckbox, Array(100) )
x:=0
y:=0
for i = 1 to 99
acheckbox[1,i] := TCheckBox():New(8+x,5+y, , MakeChkBox( aVar[1], i ), oFld:aDialogs[ 1 ],40,12,,,,,,,,.t. )
y:=y+44
if y > 360
y:= 0
x:=x+13
endif
next
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT ( Another(oFld,aVar,aCheckbox) )
return nil
//----------------------------------------------------------------------------//
Function MakeChkBox( valor, a )
Return { | u | If( PCount()==0, valor[ a ], valor[ a ]:= u ) }
//----------------------------------------------------------------------------//
function Another(oFld,aVar,aCheckbox)
local i
local x,y
oFld:addItem("100-199")
AAdd( aVar, Array(100) )
AAdd( aCheckbox, Array(100) )
x:=0
y:=0
for i = 1 to 99
acheckbox[2,i] := TCheckBox():New(8+x,5+y, , MakeChkBox( aVar[2], i ), oFld:aDialogs[ 2 ],40,12,,,,,,,,.t. )
y:=y+44
if y > 360
y:= 0
x:=x+13
endif
next
Return nil