我在EXE程序中的代码拷贝到我 ACTIVEX的代码上。XXX.MyImageMouseDown(Sender : TObject; Button: TMouseButton; shift: tshiftstate; x, y :integer)
begin
if button = mbleft then // 把这句代码去掉编译就通过了, 可是在我的原来是对的
begin
///////
end;end;InComPatible types 错误
begin
if button = mbleft then // 把这句代码去掉编译就通过了, 可是在我的原来是对的
begin
///////
end;end;InComPatible types 错误
Button是 TMouseButton类型,而TMouseButton是个枚举类型,他定义在
Controls单元中,如果要使用此类型,你必须引用Controls单元。
他的定义如下:
TMouseButton = (mbLeft, mbRight, mbMiddle);因此在你uses部分加入Controls单元就好了。
原因是:在ActiveForm中响应鼠标事件的,鼠标事件是定义在Use中的*_TLB单元中的。interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ActiveX, AxCtrls, ActiveFormProj1_TLB, StdVcl, ExtCtrls, StdCtrls;
改成这样就行了!
interface
uses
ActiveFormProj1_TLB, Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, ActiveX, AxCtrls, StdVcl, ExtCtrls, StdCtrls; 既把ActiveFormProj1_TLB前提到use最前。这里的ActiveFormProj1是你的工程名。重新编译即可以。
+ union set set Set1 + Set2
- difference set set S - T
* intersection set set S * T
<= subset set Boolean Q <= MySet
>= superset set Boolean S1 >= S2
= equality set Boolean S2 = MySet
<> inequality set Boolean MySet <> S1
in membership ordinal, set Boolean A in Set1所以正确操作是用 inif mbleft in Button then
.,...