发现了TPicture的一个有趣的现象(好像算是BUG) 我在使用Delphi6的TPicture时发现了一个现象,TPicture的Graphic成员必须在Bitmap使用后使用,因为使用Bitmap前Graphic并没有被Create。所以要想先用他,(因为你要设置图像,比如长,宽等)就要先调用TPicture对象.Graphic :=TPicture对象.Bitmap.Create;才能用。但用完就不用你free了。呵呵,这也应该算是VCL的一个毛病了吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TGraphic是个抽象类,TBitmap才是真正实现的类。不是VCL的毛病,而是你对VCL的认识不够。 原来如此,那我们使用TPicture时还要自己create TGraphic多不方便呀。vcl为什么不自己做这个工作呢? 就向stringlist和strings一样要创建strings必须用stringlist的create方法创建,因为strings只有一个虚构造函数 没错。但是我总觉得我们用的是TPicture,而不是TGraphic,那么她就应该在Create中自己对TGraphic的对象进行创建,因为这是TPicture的一个成员,所以TPicture 应该自己管理呀。 再说一次TGraphic是抽象类,它是不负责建立真正的图像的,真正建立图像的地方在它的子类中。当你给一个TPicture分配的时候,TPicture就会建立一个。仔细看看VCL的源码吧,会有帮助的。 同意GoldProgramer() 据我了解,这是为了扩展性,如果你想处理JPEG等图像,就可以自己写各子类来处理 啊..好困..我是没有看过VCL啦..但..这个就算不像楼上那些牛人所说的那样的话..呵呵..应该不算BUG吧...当然..我们菜鸟级人物应该相信牛人!!! 为什么要用TPicture?直接用TBitmap不是挺好吗?个人认为TPicture只是用来满足各种图片格式的兼容性要求的。 如何用同一个DLL注入到同一进程的不同窗口中 求delphi免费的OPC开发工具包 delphi中有防SQL注入的吗?谁能告诉我啊 不知道CodeGear对Kylix有什么打算吗? 现在的软件公司都这么嚣张吗? 组件包安装?????? 如何用'Delphi'写一个代理服务器? 关于dbchart的显示范围?? 请问这个错误怎么回事? RichEdit和Memo的字体显示是不一样的。如何在RichEdit(PlainTextMode)中像Memo那样显示字体? 控件自动创建并能自动换行的问题? 此问题已困扰许久,急盼高手指点迷津啊,,
要创建strings必须用stringlist的create方法创建,因为strings只有一个虚构造函数
当你给一个TPicture分配的时候,TPicture就会建立一个。仔细看看VCL的源码吧,会有帮助的。
据我了解,这是为了扩展性,如果你想处理JPEG等图像,就可以自己写各子类来处理
我是没有看过VCL啦..
但..这个就算不像楼上那些牛人所说的那样的话..呵呵..
应该不算BUG吧...
当然..我们菜鸟级人物应该相信牛人!!!