Type interval_type = [long] (weekly, fortnightly, monthly, bimonthly, quarterly, half_yearly, yearly); field_type = [long] (principal, rate, payment); Var input_fields : array [principal..payment] of record widget : Dwt$Widget; name : varying [30] of char; end; list_box : Dwt$Widget; selected_interval : interval_type := monthly; { Repayment Interval menu } Procedure Set_Interval (widget: Dwt$Widget; interval: interval_type; reason: Dwt$Any_CB_St); begin writeln ('in Set_Interval; selected interval = ', interval); selected_interval := interval; end; { Tracewrite } Procedure Text_Value_Changed (widget: Dwt$Widget; field: field_type; reason: Dwt$Any_CB_St); begin writeln('in Text_Value_Changed; field = ',field); end; { Quit button } Procedure Quit; begin writeln('in Quit'); goto Exit; end; { List Box } Procedure Create_List_Box (widget: Dwt$Widget); begin writeln('in Create_List_Box'); list_box := widget; end; { Text Input Fields } Procedure Create_Data_Field (widget: Dwt$Widget; f: field_type; reason: Dwt$Any_CB_St); begin writeln('in Create_Data_Field'); input_fields[f].widget := widget; end;