MyProcedure (const AValue: TObject );
I have a Variant array, and I am calling the procedure in a loop, as shown below:
for i:=0 to High(myArray) do
MyProcedure (myArray[i]);
The compiler gives an error saying: “Incompatible types: TObject and Variant”.
How can I do it? solve this problem?
More information: So far, I have been passing simple types (strings, numbers, dates) in variable arrays (arrays are usually a mix of different types-I ended up passing them as parameters to the database Stored procedure). Now I still need (in some cases) to pass a TObject.
What is the most suitable data type/structure for passing the value, it can contain simple types and objects? I think I can create my own TParam type, it has two fields, but I am not sure of the exact syntax. Does anyone have an example of this?
I recommend changing your array to the type you want instead of a variant. If you are not sure of the type of object you need, create a TObject array or the lowest base class of the object that the array will hold .
I have a program that requires a parameter of type TObject, as shown below:
MyProcedure (const AValue: TObject);
I have a Variant array, and I am calling the procedure in a loop, as shown below:
for i:=0 to High(myArray) do
MyProcedure (myArray[i]);
The compiler gives an error saying: “Incompatible types: TObject and Variant”.
What can I do to solve this problem?
More information: So far, I have been passing simple types (strings, numbers, dates) in variable arrays (arrays are usually a mix of different types-I ended up passing them as parameters to the database Stored procedure). Now I still need (in some cases) to pass a TObject.
What is the most suitable data type/structure for passing the value, it can contain simple types and objects? I think I can create my own TParam type, it has two fields, but I am not sure of the exact syntax. Does anyone have an example of this?
Variant cannot save objects, it can only contain basic types such as integers and strings.
I suggest that your Change the array to the type you want instead of a variant. If you are not sure about the type of object you need, create a TObject array or the lowest base class of the object that the array will hold.