2 weixin 37736913 weixin_37736913 于 2017.09.15 07:38 提问

最近在自学c++ builder,但遇到了一些困扰,对里面的控件和属性之间的关系,本质不了解

我也正在学c++,对c++ builder的一些代码还是理解的。我查过控件是对数据和方法的封装,应该是可以看作为类吧,那属性是不是就类似于类呢?
但为什么控件,属性之间是用“->”运算符呢?附上如下代码

void __fastcall TForm1::Button1Click(TObject *Sender)

{
Graphics::TBitmap*Bitmap;
TRect MyRect;
MyRect=Rect (10,200,100,250); //四个参数,分别代表矩形左边X坐标,Y左坐标,
Bitmap=new Graphics::TBitmap; //矩形右边X坐标,Y坐标
Bitmap->LoadFromFile("f:\美女.bmp");

 PaintBox1->Canvas->Draw(10,10,Bitmap);
 PaintBox1->Canvas->StretchDraw(MyRect,Bitmap);

 BitmapBack->Height=PaintBox1->Height;
 BitmapBack->Width=PaintBox1->Width;
 BitmapBack->Canvas->CopyRect(RectCopy,PaintBox1->Canvas,RectCopy);
 delete Bitmap;


 delete Bitmap;

}
为什么之间都是用那个运算符,这不是指针才用的吗?
希望有人指出错误,谢谢。还有我想用builder做一个游戏,应该从什么地方下手,
是要完全理解builder代码吗?

4个回答

qq_38204686
qq_38204686   2017.09.15 17:42
已采纳
weixin_37736913
weixin_37736913 nice
2 个月之前 回复
caozhy
caozhy   Ds   Rxr 2017.09.15 08:29

属性不是类,而是类的成员变量。
用->是因为对象定义的都是指针。

weixin_37736913
weixin_37736913 是不是说。这控件类就是一个指针类?
2 个月之前 回复
weixin_37736913
weixin_37736913 有点难理解,paint box1是一个对象吧,那么它和成员之间用"->"而不是"."呢,->,根据c++ ,它不是指针才用的吗
2 个月之前 回复
TA_tan
TA_tan   2017.09.15 08:36

现在用C++ Builder 的人不多了啊,之前用过一段时间。个人认为每个控件的属性方法都是类变量和类方法。至于为什么用“->”,我想看这个例子中的TBitmap *Bitmap就很好理解。

Bitmap->LoadFromFile("f:\美女.bmp");
因为Bitmap就是指针,所以用->。

BitmapBack->Canvas->CopyRect(RectCopy,PaintBox1->Canvas,RectCopy);
因为BitmapBack是指针使用->调用Canva,然后Canvas也是指针所以有使用->。

至于做游戏的话,我不了解builder有什么简单上手的教程,要做也可以做,但是你可以去了解一下cocos2dx在VS上还是很好上手的。

weixin_37736913
weixin_37736913 paint box1是控件类对象吧。它们都是指针?
2 个月之前 回复
u011046042
u011046042   2017.09.15 08:47

对象:是一件事、一个实体、一个名词,是可以获得的东西,可以想像有自己的标识的任何东西,是类的实例化
控件:窗体中的组件,也可以理解为工具
属性:对象的特性,可以描述的特性
事件:对象对外部动作进行的响应
过程:C#中没有过程的概念,你要问的应该是方法:
方法:特殊的子程序,用于完成一定的操作
一个控件可以理解为同一类中的一个对象,不同的控件有不同属性、事件和方法

u011046042
u011046042 回复weixin_37736913: 你这个是用的画布的方式,有可能就是你这样的,你打断点调试一下
2 个月之前 回复
weixin_37736913
weixin_37736913 为什么它们之间用->运算符?莫非它们都是指针。这不符合逻辑啊。
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片