Symptom
If you assign the handle of an object (for example a window) to an array whose datatype is any, the result is incorrect: you always get 0.
Environment
PowerBuilder
Reproducing the Issue
-
Create an external DataWindow object with a column of type long
-
Assign this object to a DataWindow controldw_1
-
Code the following script in the Open event of the DataWindow control
any la_array[] la_array[1] = Handle(this) dw_1.InsertRow(0) dw_1.SetItem(1, 1, la_array[1]) dw_1.InsertRow(0) dw_1.SetItem(2, 1, Handle(this))
You will see that values of each row are different !! For your convenience, see attached example pb.zip.
Solution
As a workaround, you can cast the any array to a Long as follows:
la_array[1] = Long(Handle(this))