自己控件的图片怎么显示不出来?控件为什么又delete不掉?(100分)

  • 主题发起人 主题发起人 Town
  • 开始时间 开始时间
T

Town

Unregistered / Unconfirmed
GUEST, unregistred user!
自己从Delphi改写到CBuilder的控件,编译和安装倒是混过去了,
但是有很多毛病:
1.设想:控件从TGraphicControl继承而来,当把控件拖动到Form上时,控件从mytest.res中调用一幅图片,并把它显示出来.
实际结果:在Form上只能显示与图片大小一致的方块,图片没有画上.
2.在设计时,delete这个控件,发生存取错误,delete不了,CBuilder程序也
关闭不了,只好Ctrl+Alt+Del来处理 :(
请大虾帮帮我吧,我好痛苦的说!!

如果想看看俺的源代码,可以点
<a href=http://202.112.83.191/town/component/cardctrl.zip">这里</a>
 
小同志精神可嘉 ;)

这个问题可能系Parent的设置不正确(见您的上一个问题).
由于这几天我的mail服务器坏了,所以没有看到您的问题.

那句话应该写成:

Parent = (TWinControl*)Owner;

BTW:设计时加上的控件不要用Delete
 
对不起,理解错了您的一句话.忽略那句BTW :)
 
呵呵,怪俺没说清楚.
俺的delete的意思是说, 不是在程序运行的时候用代码delete,
而是设计界面时,放了这个控件,然后不想要了,就敲一下Del键,把它删除.
可是俺的破东东,一敲Del,就说存取错误,删不了;Unit文件也关闭不了,
只能通过任务管理器,结束任务,关闭整个CBuilder才行,真是奇怪.

我试了把Parent那句加上,毛病依旧 :(

俺是Beginner,不懂的地方太多,请各位前辈不吝赐教! :)
 
哇,就差几秒钟,呵呵 ,俺等一会就好了 :)
 
怎么代码看不到?连接错误!
如果不能DELETE,多数是DESTROY的问题吧

还有,是否在 PAINT 中写了东西
 
到 "32 Bit Delphi 深度历险" 中去下载一个 Card Game 类的控件做参考, 看一看
人家是怎样做的.
 
我跟踪了一下,好象您的Paint函数根本没有画
card的图案?您只是将背景的刷子画在了牌的
4个角.您再改改.

BTW:调试控件的方法:将BCB.EXE设为Host Application
 
To CJ: 呀,不好意思,才发现, html写错了,多了一个",真是抱歉 :)
应该是这样:
http://202.112.83.191/town/component/cardctrl.zip
,Cernet内,外边访问速度可能慢一些.:(

To huizhang: 俺这个就是改写别人的控件呀,是TomCard.可是俺
没经验,请多关照,呵呵.

To lhz:
调试控件俺真的没经验的说 :)只会Install,remove,麻烦死了.能
稍详指点一下吗?或者,在哪俺可以看到中文帮助?

谢谢几位了 :)
 
1.控件包本身是一个DLL(后缀为bpl的DLL),所以调试DLL的方法就可以调试控件包.
2.DLL不能单独运行,要一个调用它的EXE作为Host Applicatio.对BPL来说这个
Host Application当然就是BCB.EXE了.
3.先为要调试的控件单独生成一个Package,并设置为Full Debug,编译成BPL
(注意:BCB3将BPL放在BPK的目录,而BCB4将BPL放在$(BCB)/Projects/Bpl).
不要安装.
4.BCB自己不知道BPL的Host,所以要在Run|Parameters...下设置.
5.设置好后,Run.此时可以看到第二个BCB启动.
6.待这个BCB启动完成后,安装刚才生成的BPL.此时可以看到源文件左边有了
指定代码行是否有效的绿点.
7.添加/删除要调试的控件,修改属性,并可以在函数中设置断点.
 
接受答案了.
 
后退
顶部