我是ActiveX新手。我正在尝试使用HTML参数将一些项添加到列表框中:
<object classid="clsid:B8F86405-G7YB-4BDF-AD70-55B265068G44" codebase="project.ocx" width="600" height="500">
<param name="item" value="item1">
<param name="item1 id " value="1">
</object>
我还不知道如何在Delphi中读取这些HTML值。我想我必须使用一些getter / setter,但我不知道从哪里开始。
答案 0 :(得分:0)
HTML <object>
元素使用IPersistPropertyBag
和IPropertyBag
接口将参数值加载到ActiveX对象中。 HTML主机(例如Web浏览器)创建指定的对象,如果成功则查询IPersistPropertyBag
,如果成功,则调用Load()
向其传递IPropertyBag
对象的对象可以根据需要Read()
值。
在Delphi中,您无需诉诸该级别。您可以直接设置属性:
uses
..., ComObj;
var
Obj: Variant;
begin
// if you have a ProgID name, use CreateOleObject() instead...
//Obj := CreateOleObject('progid');
Obj := CreateComObject(StringToGUID('{B8F86405-G7YB-4BDF-AD70-55B265068G44}'));
Obj.item := 'item1';
Obj.item1 := '1';
end;
当然,如果属性不是字符串,请使用适当的类型。例如,如果item1
是整数:
Obj.item1 := 1;