class FDStruct {//Use <CTRL-l> and sel "Data", "List" or "Check Box" //to generate the formats. F64 num1 format "$DA-TRM,A=\"Float 1:%12.8f\"$\n"; F64 num2 format "$DA-TRM,A=\"Float 2:%12e\"$\n"; I64 num3 format "$DA-TRM,A=\"Int 1:0x%016X\"$\n"; I64 num4 format "$DA-TRM,A=\"Int 2:%12d\"$\n"; I64 type format "$LS,D=\"ST_PERSON_TYPE\"$\n"; U8 name[32] format "$DA-P,A=\"Name :%s\"$\n"; U8 *address1 format "$DA+M,A=\"Address:%s\"$\n"; //+M is unlimited len U8 *. U8 *address2 format "$DA+M,A=\"Address:%s\"$\n"; //+M is unlimited len U8 *. CDate datetime format "$DA-TRM,A=\"Date :%8D\"$\n"; Bool check format "$CB,\"Check\"$\n"; }; U0 FormDemo() { FDStruct fds; DefineLstLoad("ST_PERSON_TYPE","Child\0Teen\0Adult\0"); fds.num1=12.3e-4; //Set defaults fds.num2=4.5e3; fds.num3=0x1234; fds.num4=-567; fds.type=1; StrCpy(&fds.name,"John"); fds.address1=StrNew("1234 Pine St."); fds.address2=NULL; //Init to NULL if empty. fds.datetime=Now; fds.check=TRUE; if (DocForm(&fds)) { "#1\t=%e\n",fds.num1; "#2\t=%e\n" ,fds.num2; "#3\t=%d\n" ,fds.num3; "#4\t=%d\n" ,fds.num4; "Type\t=%s\n" ,DefineSub(fds.type,"ST_PERSON_TYPE"); "Name\t=%s\n" ,fds.name; "Address1=%s\n" ,fds.address1; "Address2=%s\n" ,fds.address2; "Date\t=%D\n" ,fds.datetime; "Check\t=%d\n" ,fds.check; } else "Cancel\n"; "\n\nClassRep Example\n"; ClassRep(&fds); Free(fds.address1); Free(fds.address2); //See also ClassRepD(). } FormDemo;