Lyna
14 years agoOccasional Contributor
Edit a property which is and object (with ODT)
Hi,
I'm currently learning how to create classes and objects programmatically but i have a problem.
I create Classes with this procedure :
procedure CreateClasses;
var
menu,menu_item,find_properties;
begin
ODT.Data.Clear;
ODT.Classes.Clear;
find_properties := ODT.Classes.Declare('FindProperties');
find_properties.AddProperty('Prop');
find_properties.AddProperty('Values');
find_properties.AddProperty('Parent');
find_properties.AddProperty('Depth');
find_properties.AddMethod('GetObject','DescriptionMethodes.FindProperties_GetObject');
menu_item := ODT.Classes.Declare('MenuItem');
menu_item.AddProperty('Index');
menu_item.AddProperty('Name');
menu_item.AddPropOfArrayType('SubMenu');
menu := ODT.Classes.Declare('Menu');
menu.AddPropOfArrayType('Items');
menu.AddProperty('Name');
menu.AddPropOfClassType('Properties','FindProperties');
end;
Then to insert Data i use this method :
procedure CreateDatas;
var
data,arr,menu,menu_item,properties;
begin
ODT.Data.Clear;
data := ODT.Data.AddGroup('MenuData');
arr := data.AddVarOfArrayType('Menus');
menu := arr.AddItemOfClassType('Menu');
menu.Name := 'Nom_de_mon_Menu';
menu_item := menu.Items.AddItemOfClassType('MenuItem');
menu_item.Index := 0;
menu_item.Name := 'Ouvrir';
menu.Properties.Parent := 'Georgette';
menu.Properties.Prop := ['WndCaption','FullName','Visible'];
menu.Properties.Values := ['Nom_fenetre','Window.Truc.Machin.Bidule','True'];
menu.Properties.Depth := 3;
EnableAllMethods(menu);
end;
The creation of classes works, but when i insert my datas, At the line menu.Properties.Parent := 'Georgette'; an error occurs, specifying that i'm trying to put a value in a read-only property...
How can i set the value of this property ? I can't find the solution on the support of TestComplete.
Thanks
I'm currently learning how to create classes and objects programmatically but i have a problem.
I create Classes with this procedure :
procedure CreateClasses;
var
menu,menu_item,find_properties;
begin
ODT.Data.Clear;
ODT.Classes.Clear;
find_properties := ODT.Classes.Declare('FindProperties');
find_properties.AddProperty('Prop');
find_properties.AddProperty('Values');
find_properties.AddProperty('Parent');
find_properties.AddProperty('Depth');
find_properties.AddMethod('GetObject','DescriptionMethodes.FindProperties_GetObject');
menu_item := ODT.Classes.Declare('MenuItem');
menu_item.AddProperty('Index');
menu_item.AddProperty('Name');
menu_item.AddPropOfArrayType('SubMenu');
menu := ODT.Classes.Declare('Menu');
menu.AddPropOfArrayType('Items');
menu.AddProperty('Name');
menu.AddPropOfClassType('Properties','FindProperties');
end;
Then to insert Data i use this method :
procedure CreateDatas;
var
data,arr,menu,menu_item,properties;
begin
ODT.Data.Clear;
data := ODT.Data.AddGroup('MenuData');
arr := data.AddVarOfArrayType('Menus');
menu := arr.AddItemOfClassType('Menu');
menu.Name := 'Nom_de_mon_Menu';
menu_item := menu.Items.AddItemOfClassType('MenuItem');
menu_item.Index := 0;
menu_item.Name := 'Ouvrir';
menu.Properties.Parent := 'Georgette';
menu.Properties.Prop := ['WndCaption','FullName','Visible'];
menu.Properties.Values := ['Nom_fenetre','Window.Truc.Machin.Bidule','True'];
menu.Properties.Depth := 3;
EnableAllMethods(menu);
end;
The creation of classes works, but when i insert my datas, At the line menu.Properties.Parent := 'Georgette'; an error occurs, specifying that i'm trying to put a value in a read-only property...
How can i set the value of this property ? I can't find the solution on the support of TestComplete.
Thanks