终于弄明白了,原来Active Form 中的数据集是这样引入的(1分)

  • 主题发起人 主题发起人 星之瀚海
  • 开始时间 开始时间

星之瀚海

Unregistered / Unconfirmed
GUEST, unregistred user!
我们知道,在ActiveX中不支持DElphi提供的TTable类型
经过一天的奋斗,终于发现可以用下面的方法实现对这种类型的试验,
其它数据库有关的对象还未试验,请各位爱好者研究一下
在使用向导创建完一个ActiveX Form 后,
在其上加入:
1、Table1,
2、Datasource1,将其Dataset设为Table1.
3、DBGrid1,将其Datasource设为Datasource1;
接着,在类型库编辑器中声明以下三个属性
1.TableActive:布尔型;
2.TableName:BStr类型
2.DatabaseName:BStr类型
然后进行刷新
在窗体单元中对自动产生的六个方法写入相应的代码,如下:
function TAtest.Get_DatabaseName: WideString;
begin
Result:=widestring(Table1.DatabaseName);
end;

function TAtest.Get_TableActive: WordBool;
begin
Result:=Table1.Active
end;

function TAtest.Get_TableName: WideString;
begin
Result:=WideString(Table1.TableName);
end;

procedure TAtest.Set_DatabaseName(const Value: WideString);
begin
Table1.DatabaseName:=Value;
end;

procedure TAtest.Set_TableActive(Value: WordBool);
begin
Table1.Active:=Value;
end;

procedure TAtest.Set_TableName(const Value: WideString);
begin
Table1.Tablename:=Value;
end;
完成后编译为.ocx控件并进行安装。
试验:
新建一个工程文件,在其上放上一个刚注册完的ActiveX控件
和一个DataBase控件,配置数据源,设置databasename,
然后对ActiveX控件的databasename,Tablename,输入相应的值,
我想就不用细说了,设置TableActive为真
你发现了什么?
哈哈,不过这个东东在运行期就会没了数据,
但在窗体加载时重新设置以上属性,发现数据又有了
不知是何原因
 
我正在做这个方面的毕业设计,我用的是ADO,你把databasename在运行时动态添加进去
试试,也许会有不同的。我不明白为什么用Delphi开发的ActiveX控件在VF下不能运行。
在VB下就可以。
 
由于delphi无法保存开发时候的数据导致这个现象,希望能够把设计时候的属性
完整的应用起来,必须先做成delphi控件。然后继承就可以了。。
 
后退
顶部