当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>在BCB中利用VCL控件数组2</b>[VC/C++编程]

赞助商链接



  本文“<b>在BCB中利用VCL控件数组2</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

我的《BCB中利用VCL控件数组》中,提到了用TList来实现时无法释放资源的问题,后果本日就得到了答案,邬彦华等等网友都指教了TList实现的释放办法,定义代码同前文:

for (int i=1;i<=ButtonCount;i++)
{
TSpeedButton *spdBtn=new TSpeedButton(this);
spdBtn->Parent=ScrollBox;//指定父控件
spdBtn->Caption=IntToStr(i);
spdBtn->Width=80;
spdBtn->Height=80;
spdBtn->OnClick=ButtonClick;
spdBtn->Left=intLeft;
spdBtn->Top=intTop;
spdBtn->GroupIndex=1;
spdBtn->Flat=true;
intLeft=intLeft+80+intSpace;
if (i%LineCount==0)
{
intTop=intTop+80+intSpace;
intLeft=intSpace;
}
buttons->Add(spdBtn);//buttons是一个TList的指针
}

释放资源的代码以下:

int num = button->Count;
for(int i=0;i<num;i++)
{
delete (TSpeedButton *)button->Items[i];
}

其实说穿了就是删除TList的每一项,不过因为TList->Items的范例是void *,在C/C++中,void *可匹配任何范例,所以只要加一个强迫范例转换(TSpeedButton *)便可以了,当然用(TObject *)等也是可以的,因为TObject是VCL中全部类的基类,而基类的指针是可以指向它的直接或间接子类的.

两种办法的对比:我上次的办法可说是典型的C++办理办法,而这种办法可说是C++Builder的办理办法,用双重指针对比机动、高效,但大家都知道,多重指针可不那么好懂,想当初我曾用过4重指针(不要用那么目光看着我!),到后来我自已都胡涂了.而这次的办法对比好懂,并且能用TList类的办法,利用对比便利,但不如上一种高效,总的来说,两种办法各有优劣,具体利用那一种,就看个人的爱好了.


  以上是“<b>在BCB中利用VCL控件数组2</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .