#include "FiveWin.ch"
#include "common.ch"
function Main()
local oDlg, oFld
LOCAL Num := 100
LOCAL MemInpVal[0]
LOCAL n := 1 , oRadMenu , oGet
DEFINE DIALOG oDlg RESOURCE "test"
REDEFINE FOLDER oFld ID 110 OF oDlg ;
DIALOGS "dlg1", "dlg2" PROMPTS "One", "Two"
REDEFINE GET oGet VAR Num OF oFld:aDialogs[1] ID 100
REDEFINE RADIO oRadMenu VAR n ID 110 , 120 OF oFld:aDialogs[2]
REDEFINE BUTTON ID 120 OF oDlg ACTION CompInputValue(oDlg , @MemInpVal )
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT (SaveInputValue(oDlg , @MemInpVal))
return nil
PROC SaveInputValue(oDlg , Arr)
*************************
LOCAL el , elem , oRadMenu[0]
FOR EACH el IN oDlg:aControls
IF el:ClassName == "TFOLDER"
FOR EACH elem IN el:aDialogs
SaveInputValue(elem , @Arr)
NEXT
ELSE
IF el:ClassName = "TRADIO"
IF ASCAN(oRadMenu , {|j|j==el:oRadMenu}) == 0
AADD(oRadMenu , el:oRadMenu)
AADD(Arr,el:oRadMenu:nOption())
END
ELSEIF __ObjHasMethod(el,"VarGet")
// Maybe better : IF el:ClassName IN {"TGET","TCHECK", ......}
AADD(Arr,el:VarGet() )
END
END
NEXT
RETURN
**********************************************************************************************
FUNC CompInputValue(oDlg , MemInpVal )
***************************************
LOCAL Arr[0] , i
LOCAL lOk := .T.
SaveInputValue(oDlg,@Arr)
FOR i := 1 TO Len(MemInpVal)
IF Arr[i] <> MemInpVal[i]
lOk := .F.
EXIT
END
NEXT
RETURN lOk
************************************************************
Test DIALOG 19, 47, 233, 124
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "FiveWin Folders"
{
CONTROL "", 110, "SysTabControl32", 0 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 4, 5, 225, 99
PUSHBUTTON "&OK", 120, 98, 108, 37, 14
}
dlg1 DIALOG 18, 18, 205, 80
STYLE WS_CHILD | 4
{
LTEXT "Number : ", 90, 10 , 2 , 40 , 10 //, WS_BORDER | WS_TABSTOP
EDITTEXT 100, 37 , 2, 20 , 10, WS_BORDER | WS_TABSTOP
CONTROL "First", 110, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 37, 30, 28, 12
}
dlg2 DIALOG 18, 18, 205, 80
STYLE WS_CHILD | 4
{
CONTROL "Second", 110, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 37, 30, 28, 12
CONTROL "Third", 120, "BUTTON", BS_AUTORADIOBUTTON | WS_TABSTOP, 37, 43, 28, 12
}