I have a component which has a form with an array listbox,
the listbox is defined in the design environment and has 4 columns.
1 column (the first) is a picture, the other 3 are text.
When I execute the form from the component, interpretedly everything is
fine.
When I execute the form from a host, interpretedly, everything is fine.
When I execute the form from a host (or from the component), compiled,
I get runtime error:
Argument types are incompatible
The line of code that is failing is :
APPEND TO ARRAY(aptr_Column_Vars{l_Pic_Column}->;$Pic_Pointer->)
- aptr_Column_Vars - array of pointers to the listbox columns --
populated by 'get listbox arrays'
- l_Pic_Column - is a (component) process variable which holds the
longint value of the column which is a picture column; in this specific
instance = 1
- $Pic_Pointer - is a pointer to a picture variable, loaded from the
picture library, the picture is about 700 bytes.
In the excution of the code, the current state is:
- Form with listbox is open.
- listbox is displayed, but has NO rows.
- The action occurring when I get the error is a Drag-n-Drop of a file
onto the list box. In an attempt to populate the listbox with the
file(s)/folder(s) being dropped.
- The picture column is supposed to hold a small picture to indicate
either a file or folder
So...In the component source I added the following to try to figure out
What is going on.
ALL of the below pass when interpreted.
Compiled... all pass except the last one
ASSERT(l_Pic_Column>0;"Invalid Pic index") //pass - true
ASSERT(Type($Pic_Pointer)=Is Pointer;"pic pointer not a pointer")
//pass - true
ASSERT(Type($Pic_Pointer->)=Is Picture;"not a pic") //pass - true
ASSERT(Picture size($Pic_Pointer->)>0;"size") //pass - true
ASSERT(Size of array(aptr_Column_Vars)>0;"pointer Array") //pass - true
ASSERT(Type(aptr_Column_Vars{l_Pic_Column})=Is Pointer;"Pic pointer")
//pass - true
This one fails.....but does NOT fail interpretedly.
ASSERT(Type(aptr_Column_Vars{l_Pic_Column}->)=Picture array;"array el
pic")
If I remove the code for the picture array (commented out) the other
columns/arrays are fine and throw no error!
SO I tried one more thing.
I inserted the following just before the append to array command.
ARRAY PICTURE(aptr_Column_Vars{l_Pic_Column}->;0)
ASSERT(Type(aptr_Column_Vars{l_Pic_Column}->)=Picture array;"array el
pic")
compiled this throws an error on compiler declaration Array Picture....
again, the same error, incompatible argument types.
Interpretedly, in the debugger,
Type(aptr_Column_Vars{l_Pic_Column}->) = 19
Picture array (konstant) = 19
I have no idea what is join on.... any one else have a clue??
Thanks
Chip
---------------
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ: http://lists.4d.com/faqnug.html
Archive: http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub: mailto:[email protected]
**********************************************************************