非可视 VCL Component => ActiveX (文体解决再加250)(100分)

  • 主题发起人 主题发起人 阿呆哥
  • 开始时间 开始时间

阿呆哥

Unregistered / Unconfirmed
GUEST, unregistred user!
我在ActiveX版发了这个问题,没有回答,所以贴在这里。原文在

http://www.delphibbs.com/delphibbs/dispq.asp?lid=564405

内容如下:

1)
我作了一个基于TComponent的不可视VCL Component,为了使用 ActiveX Wizard,我把它
变为基于TCustomControl。这样就多了好多没用的Property,比如 Cursor, Height. 我
用 Type Library Editor 把它们删了,但一加到VB中就有出来了,怎么办?(我用的是
C++ Builder, Delphi我不太会)

2)
我想用写一个 Paint Event Handler, 然后自己画一个ICON,但是好象 Paint 根本就没
被调用。程序如下:

__fastcall TMyCom::TMyCom(TComponent* Owner)
: TCustomControl(Owner), FTimeOut(1000)
{
if (ComponentState.Contains(csDesigning)) {
// 我加了这一语句,但根本没有Dialog,怎么回事?
Application->MessageBox("1", "1", MB_OK);
DesignIcon = new Graphics::TBitmap();
DesignIcon->LoadFromResourceName((int)HInstance,
"VBDesignIcon");
Height = 26;
Width = 26;
Visible = true;
} else {
Visible = false;
}
}

void __fastcall THIDComm::Paint() {
TCustomControl::Paint();
if (ComponentState.Contains(csDesigning)) {
Width = 26;
Height = 26;
Canvas->Draw(0, 0, DesignIcon);
}
}

3)
我想写一个类似Property Editor的东西,要在VB中能用。Property Page好象不行,
Property Page只能控治整个ActiveX,而不是期中的一个Property,它好象VCL的
Component Editor,而我要Property Editor.

补充一句,我写了一些 Events,ex: void OnReadSuccess(int status),这些Event能在
VB Editor 右上方的 List 中出现(就是显示OnClick, OnLoad之类的那个List),但
当我选 OnReadSuccess 时,出现错误:

"Function or Interface marked as restricted, or the function uses an
Automation type not supported in Visual Basic"

我的Interface并没不是hidden或restricted,参数也只是 void 和 int呀?
 
没用的Property, 变成私有元素,再重载,
MessageBox等API不能用在这,自已写一个,EASY!
 
接受答案了.
 

Similar threads

I
回复
0
查看
769
import
I
I
回复
0
查看
515
import
I
I
回复
0
查看
820
import
I
I
回复
0
查看
869
import
I
后退
顶部