Source Code for the Collection Programming Example
*
*
* COMPONENT: STD_FORM
*
*
Function Options(*DIRECT)
Begin_Com Role(*EXTENDS #PRIM_FORM) Clientheight(261) Clientwidth(545) Height(288) Layoutmanager(#ATLM_1) Left(247) Top(149) Width(553)
Define_Com Class(#PRIM_GPBX) Name(#GPBX_1) Caption('Define_Pty *Collection Example') Displayposition(1) Height(225) Left(16) Parent(#COM_OWNER) Tabposition(1) Tabstop(False) Top(16) Width(177)
Define_Com Class(#PRIM_PHBN) Name(#PHBN_1) Caption('One') Displayposition(1) Left(8) Parent(#GPBX_1) Tabposition(5) Top(26)
Define_Com Class(#PRIM_CKBX) Name(#CKBX_1) Caption('Add me') Displayposition(2) Left(96) Parent(#GPBX_1) Tabposition(8) Top(26) Width(73)
Define_Com Class(#PRIM_PHBN) Name(#PHBN_2) Caption('Two') Displayposition(3) Left(8) Parent(#GPBX_1) Tabposition(2) Top(58)
Define_Com Class(#PRIM_CKBX) Name(#CKBX_2) Caption('Add me') Displayposition(4) Left(96) Parent(#GPBX_1) Tabposition(4) Top(58) Width(73)
Define_Com Class(#PRIM_PHBN) Name(#PHBN_3) Caption('Three') Displayposition(5) Left(8) Parent(#GPBX_1) Tabposition(7) Top(90)
Define_Com Class(#PRIM_CKBX) Name(#CKBX_3) Caption('Add me') Displayposition(6) Left(96) Parent(#GPBX_1) Tabposition(10) Top(90) Width(73)
Define_Com Class(#PRIM_PHBN) Name(#PHBN_4) Caption('Four') Displayposition(7) Left(8) Parent(#GPBX_1) Tabposition(1) Top(122)
Define_Com Class(#PRIM_CKBX) Name(#CKBX_4) Caption('Add me') Displayposition(8) Left(96) Parent(#GPBX_1) Tabposition(3) Top(122) Width(73)
Define_Com Class(#PRIM_PHBN) Name(#PHBN_5) Caption('Five') Displayposition(9) Left(8) Parent(#GPBX_1) Tabposition(6) Top(154)
Define_Com Class(#PRIM_CKBX) Name(#CKBX_5) Caption('Add me') Displayposition(10) Left(96) Parent(#GPBX_1) Tabposition(9) Top(154) Width(73)
Define_Com Class(#PRIM_GPBX) Name(#GPBX_3) Caption('Collection') Displayposition(2) Height(217) Left(200) Parent(#COM_OWNER) Tabposition(2) Tabstop(False) Top(24) Width(337)
Define_Com Class(#PRIM_PHBN) Name(#INSERT) Caption('Insert') Displayposition(2) Left(16) Parent(#GPBX_3) Tabposition(2) Top(24) Width(89)
Define_Com Class(#PRIM_PHBN) Name(#REMOVEALL) Caption('Remove All') Displayposition(3) Left(16) Parent(#GPBX_3) Tabposition(3) Top(56) Width(89)
Define_Com Class(#PRIM_PHBN) Name(#ITERATECOLL) Caption('Iterate Collection') Displayposition(4) Left(16) Parent(#GPBX_3) Tabposition(4) Top(88) Width(89)
Define_Com Class(#PRIM_PHBN) Name(#ITERATEREF) Caption('Iterate Reference') Displayposition(5) Left(16) Parent(#GPBX_3) Tabposition(5) Top(120) Width(89)
Define_Com Class(#PRIM_GRID) Name(#GRID_1) Captionnoblanklines(True) Displayposition(1) Height(153) Left(120) Parent(#GPBX_3) Showbuttonselection(True) Showselection(True) Showselectionhilight(False) Showsortarrow(True) Tabposition(1) Top(24) Width(193)
Define_Com Class(#PRIM_GDCL) Name(#GDCL_1) Caption('Key') Captiontype(Caption) Displayposition(1) Parent(#GRID_1) Source(#STD_COUNT) Width(50)
Define_Com Class(#PRIM_GDCL) Name(#GDCL_2) Caption('Caption') Captiontype(Caption) Displayposition(2) Parent(#GRID_1) Source(#STD_DESCS) Width(57) Widthtype(Remainder)
Define_Com Class(#PRIM_ATLM) Name(#ATLM_1)
Define_Pty Name(Button1) Get(*Reference #Phbn_1)
Define_Pty Name(Button2) Get(*Reference #Phbn_2)
Define_Pty Name(Button3) Get(*Reference #Phbn_3)
Define_Pty Name(Button4) Get(*Reference #Phbn_4)
Define_Pty Name(Button5) Get(*Reference #Phbn_5)
Define_Com Class(#PRIM_ACOL<#PRIM_PHBN>) Name(#COLLECTION)
Define_Pty Name(TheCollection) Get(*Collection #Collection)
Evtroutine Handling(#INSERT.Click)
If Cond('#ckbx_1.ButtonState = Checked')
Invoke Method(#Collection.Insert) Item(#PHBN_1)
Endif
If Cond('#ckbx_2.ButtonState = Checked')
Invoke Method(#Collection.Insert) Item(#PHBN_2)
Endif
If Cond('#ckbx_3.ButtonState = Checked')
Invoke Method(#Collection.Insert) Item(#PHBN_3)
Endif
If Cond('#ckbx_4.ButtonState = Checked')
Invoke Method(#Collection.Insert) Item(#PHBN_4)
Endif
If Cond('#ckbx_5.ButtonState = Checked')
Invoke Method(#Collection.Insert) Item(#PHBN_5)
Endif
Endroutine
Evtroutine Handling(#REMOVEALL.Click)
Invoke Method(#Collection.RemoveAll)
Endroutine
Evtroutine Handling(#ITERATECOLL.Click)
Clr_List Named(#GRID_1)
For Each(#Current) In(#Collection) Key(#CurrentKey)
Change Field(#STD_COUNT) To('#CurrentKey.Value')
Change Field(#STD_DESCS) To('#Current.Caption')
Add_Entry To_List(#GRID_1)
Endfor
Endroutine
Evtroutine Handling(#ITERATEREF.Click)
Clr_List Named(#GRID_1)
For Each(#Current) In(#Com_Owner.TheCollection) Key(#CurrentKey)
Change Field(#STD_COUNT) To('#CurrentKey.Value')
Change Field(#STD_DESCS) To('#Current.Caption')
Add_Entry To_List(#GRID_1)
Endfor
Endroutine
End_Com