如何使用ActiveX参数将项目添加到列表框?

时间:2015-03-07 20:12:14

标签: delphi activex

我是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,但我不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

HTML <object>元素使用IPersistPropertyBagIPropertyBag接口将参数值加载到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;