开发图形控件的两个初级问题
控件头文件中下面两个地方编译出错:
class PACKAGE TMyGraphic : public TGraphicControl
{
protected:
void __fastcall MouseDown(TMouseButton Button,TShiftState Shift,
int x,int y);
void __fastcall MouseUp(TMouseButton Button,TShiftState Shift,
int x,int y);
//错误:这两个函数和基类Tcontrol冲突,请问该怎么修改?
—Published:
__property int Height ;
__property int Width ;
__property int Left ;
__property int Top ;
//错误:这四个属性需要初始化,请问在哪里初始化?
}
问题点数:100、回复次数:8Top
1 楼pp616(坏蛋)回复于 2003-11-03 22:37:40 得分 100
修改函数名字啊。如FMyMouseDown,FMyMouseUp
Height Width Left Top 这四个成员是基类就发布的。
你只需要
__property Height ;
__property Width ;
__property Left ;
__property Top ;
不需要指定类型了。
初始化可以在你的构造函数中。
Top
2 楼vdragon(紫龙)回复于 2003-11-04 08:33:30 得分 0
谢谢你:)
还请教两个问题:
1。怎么在paint函数里获取当前鼠标位置来设置 Left,Top的值呢?
2。请问怎么给分啊?上次我给别人100分,结果显示的还是0分:(Top
3 楼pzoon(杀死日本人)回复于 2003-11-04 08:47:27 得分 0
pp616(游戏全删了)
他说的很对
你在FormMouseMove里获得鼠标的位置
要不很麻烦Top
4 楼vdragon(紫龙)回复于 2003-11-04 09:08:17 得分 0
e...我知道了,在Paint函数中用ClientRect就可以了,但是
if (ClientRect.Height==0)
ClientRect.Height=FLineWidth;
这两行出错:
E2235 Member function must be called or its address taken
请问是怎么回事?Top
5 楼vdragon(紫龙)回复于 2003-11-04 16:35:23 得分 0
谢谢pp616,先给50分,帮我看看最后一个问题啊Top
6 楼pp616(坏蛋)回复于 2003-11-05 00:08:08 得分 0
这个错误停到那行代码上。贴出来。Top
7 楼myy()回复于 2003-11-05 00:14:18 得分 0
if (ClientRect.Height()==0)
ClientRect.Height()=FLineWidth; //????????
Top
8 楼vdragon(紫龙)回复于 2003-11-05 08:33:30 得分 0
pp616,不好意思,是我用错了属性
应该用ClientHeight取得控件的高度。
如果用myy的方法,会出现一个错误:Lvalue required
不知道怎么改...Top




