说起来话长,找本DDG一看便知,或看看别人的例子

解决方案 »

  1.   

    哇!老兄,我等半天了,可算有人能回了,不过你这个回答太含混了,DDG是什么啊,上哪找这个书啊,能不能再详细些啊?
    再有就是:难道真的有这么复杂吗,Delphi声称自己功能多么强大、使用多么方便、代码多么简洁.....,没想到做个ActiveX控件还得看其他许多书。
    (我对VB比较熟悉,VB做个(.OCX)就非常简单,而且VB生成的.OCX在VC、HTML中也可以使用。)
      

  2.   

    DDG就是Delphi Developer's Guide,在DELPHI安装盘上有个电子版的。File——New——ActiveX——Active Form的方法没错,不过属性/方法/事件要在TypeLibraryEditor里加(在View-Typelib Editor里),加上后刷新一下即可。
    你对VB熟,当然觉得简单,如果你对DELPHI有对VB那么熟,也会很简单的,特别是做一些VB做不了的事的时候,比如多线程等。
      

  3.   

    在创建控件时所需的其它控件只能通过手工创建的方式来加入;
    with TLabel.Create(Self) do
    begin
      ...
      ...
    end;
      

  4.   

    “猛禽”老兄啊,谢谢你的回答,但是我按照你说的“在TypeLibraryEditor里加属性/方法/事件”也试了,还是不行啊,编译的时候同样提示错误。比如我在ActiveForm上放置了一个Label1,然后设置了一个“LabelCaption”属性,通过这个属性来读写控件内部Label1的Caption属性,但编译是提示我:[Error] ActiveFormImpl1.pas(332): Undeclared identifier: 'label1'——天啊!
    “东北人”,哥们,我也是东北人啊,呵呵。谢谢你的帮忙,不过说实话,看了你的回答我脑袋“翁”的一声。我准备做个漂亮的图形显示控件,可能需要用到许多的VCL基础控件,难道都得手工创建?那可完蛋了。
      

  5.   

    anshanchengang(刚) 我倒是头一次听说VB做的ActiveX控件能在VC中使用。VB根本不能生成标准的ActiveX组件
      

  6.   

    哎!Delphi在这点上照比VB差多了。
      

  7.   

    等你会利用DELPHI和VB两者的优势时,你就是高手了:)
    ---------
    其实没有楼楼上这位兄弟说得这么恐怖的,我用DELPHI做ACTIVEFORM时就没有
    觉得比VB复杂多少。补充一点,我的VB也比DELPHI要好
      

  8.   

    哇!江西的老表,我可算找到知音了。按你所说的,你一定也是曾做过这方面的尝试,能不能给我说的具体点啊。
    我用DELPHI做ActiveX Form时,可以设计界面,最后也可以编译生成.OCX控件——但还不是真正的ActiveX控件,因为在设计时我无法加入属性、方法、事件,否则一编译就出错。我也翻了许多Delphi书籍,对这部分讲的都比较含混,都是讲如何把VCL组件改造为.OCX格式的控件,却没有说如何设计一个界面丰富的ActiveX控件的。
    盼望您能帮助一下,最好能给我发个源代码过来 ([email protected]),十分感谢!
    wangang2436:你是不是也碰到同样的问题了,等我搞明白了会给你发一个的。
      

  9.   

    出现这个错误应该是你没有USES那个FORM的单元
    [Error] ActiveFormImpl1.pas(332): Undeclared identifier: 'label1'
      

  10.   

    我刚才试了一下,只有一个FORM单元,所以不应该出现这个错误的,做法如下:
    new activeForm : 名为 ActiveForm1
    在Form上放一个Label : 名为 Label1
    打开Type Library
    在IActiveForm1下增加一个属性property(Read|Write),名为 Label1Caption
    类型为 bstr
    刷新
    在 get_label1caption 中输入 result := label1.caption
    在 set_label1caption 中输入 label1.caption := value编译,搞定
      

  11.   

    我用ActiveForm做过很复杂的控件(画流程图的WorkFlow),怎么没出现你说的问题呢?可能是其它的问题吧
      

  12.   

    强烈感谢“猛禽”:)
    按照你所说的我做了一下——OK,原来我是被一本书误导了,所以总编译出错。我要给你加分,但怎么加啊——不是开玩笑的。
    现在我往控件里添加“属性”和“方法”都没有问题了,但是却不知道怎么添加事件?怎样在代码中引发这个事件?还有就是这个控件被用户调整大小的时候将引发哪个事件(类似于Form的Resize事件的),是OnPaint事件吗?wenzm:可不可以把你那个控件的源代码发给我一份啊?我很想学学。[email protected]各位朋友:等我学会了这部分后我将写个事例分发给需要的朋友,敬请关注。
      

  13.   

    放在panel里,楼上的兄弟,不知道可以,瞎说就不对了,你觉得DELPHI不如VB是因为你不了解,凭你我的功力都还不可以这么评论一种语言.
      

  14.   

    you can import it from delphi ide!the drop it from panel to the form, use the wrapped class to control the behavior of the control!if you are familiar with vc, you can understand it easily!^_^
      

  15.   

    谢谢Tony,确实,我可以放一个panel,设置它的 Align 属性为:alClient——可以随控件自动改变大小,它有OnResize事件——可以让我在里面添加代码,调整其他的控件的外观和位置,可以达到我的目的了,谢谢。
    肥仔:你说的也和Tony的是一个意思吧,我的英文 = Very Pool :),谢谢你。
    现在还有关于“事件”的问题了:怎么声明事件?怎样引发事件?
      

  16.   

    这个吗,一句话说不清的,可以找找现成的例子,不是很难。
    可以有这样的思路:
    在你的控件中你需要引发事件的地方生成一事件对象。这个对像其实提供了一个指向用户定义的事件处理程序的指针。这样你就可以提供事件了。
    有事可以联系。[email protected]
    那分?嘿嘿!
      

  17.   

    我也想要做好的ocx控件的代码~~
    [email protected]
      

  18.   

    我做了一个ActiveX控件,在VB下我试了可以运行,但一到VF下就把VF开发环境关闭了。为什么?我又试了把一个Button转换成ActiveX,什么也没添加,但一到VF也死了????