社区
Delphi
帖子详情
大虾们请进:一个小问题(VCL控件的动态创建)----在线等待
toperscj
2003-10-17 12:27:31
我需要在程序中动态创建一些Button,数量较大,我现在用While循环做的。速度不是令人满意。(切换界面明显感到慢)能否用线程动态创建?如何创建。俺是个新手,请大家给点儿方法
...全文
38
15
打赏
收藏
大虾们请进:一个小问题(VCL控件的动态创建)----在线等待
我需要在程序中动态创建一些Button,数量较大,我现在用While循环做的。速度不是令人满意。(切换界面明显感到慢)能否用线程动态创建?如何创建。俺是个新手,请大家给点儿方法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liusiyan
2003-10-25
打赏
举报
回复
555555
支持中文和英文
2003-10-24
打赏
举报
回复
除了做扫雷这样傻的游戏,估计日常事务也不会有这么多button!
如果是日常事务,还不如不用button,否则岂不是在用鼠标点键盘一样!!!
radandgreensky
2003-10-23
打赏
举报
回复
只是要功能的话没必要建那么多按钮吧
建议用动态挂接处理函数的方法
这样,你一共就只需要建最初界面上看得到的几个按钮就够了
要换功能的话直接把按钮的名字一改,再把OnClick属性一改,就OK了
feng93017
2003-10-23
打赏
举报
回复
楼主该不是做扫雷吧?
toperscj
2003-10-17
打赏
举报
回复
观点:占用内存是肯定的,但是256的内村,感觉也非常明显,我的办法肯定是存在问题,请大伙儿给点儿建议。该如何处理?
huojiehai
2003-10-17
打赏
举报
回复
建得太多肯定会慢的,占内存
用线程动态创建也一样
aiirii
2003-10-17
打赏
举报
回复
如果多到會讓界面切換慢的程度,我建議你是要修改顯示的算法, 有些不顯示的, 就不要創建了, 這種思路可能性更好!!! 用線程只會生成的更慢!!!
gold_future
2003-10-17
打赏
举报
回复
利用多线程并不能提高创建速度,只能用于在创建时维护用房界面不让看起来向死机一样。
为了加一进度条可以用:
for i:=1 to 300 do
bein
创建按钮;
if i mod 10 =0 then
刷新进度条;
end;
不要每创建一个按钮应刷新一次进度条;刷新一次进度条的占用cpu量要远远大于执行一次条件判断语句的cpu占用量
gold_future
2003-10-17
打赏
举报
回复
aButton:=TButton.Create(nil);
try
//do something;
finally
aButton.Free;
end;
在创建时Create参数应为(nil),如果你在创建时指定一个宿主(如:Create(Self)),会影响创建速度,因为当内部会有个通知机制.
Alanwn
2003-10-17
打赏
举报
回复
删除多余的按钮,动态变化他的功能好了
toperscj
2003-10-17
打赏
举报
回复
能不能够把按纽的创建放在多个线程里?如果可以,应该怎么做?大虾们救命啊
toperscj
2003-10-17
打赏
举报
回复
有用,我的程序需要根据用户需要动态来满足用户的下一步操作。应该有100~300个。
剑神,能够详细给说明一下吗?我需要把Button放到Form上,然后根据执行button的事件。
ZyxIp
2003-10-17
打赏
举报
回复
为什么要创建那么多的按钮,有用吗?
pankun
2003-10-17
打赏
举报
回复
放在另一个线程中创建吧.创建完后一起显示出来.
如下
procedure CreateButton;
begin
//创建按钮
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ThreadID, ThreadHwnd:THandle;
begin
ThreadHwnd := CreateThread(nil, 0, @CreateButton, nil, 1, ThreadID)
end;
hthunter
2003-10-17
打赏
举报
回复
除了占用内存,还占用CPU时间啊,如果太慢,窗口里面的东西创建完之前不要显示出来,加个类似于进度条的窗口,显示:“正在载入窗口,请稍候……”,呵呵,那样用户就可以忍受了
Delphi与Word之间的融合技术
问题
:Delphi与Word之间的融合技术 ( 积分:0, 回复:325, 阅读:37835 )分类:OLE/Automation ( 版主:g622, satanmonkey ) 来自:yzhshi, 时间:2001-11-18 17:52:00, ID:737517[显示:小字体 | 大字体]
链接:MSDN UserNet等
Q我想知道如何在VC中实现可塌陷的PanelBar界面(类似于OutlookBar)? T可塌陷的PanelBar界面比outlookbar更有吸引力,Windows XP左边的导航工具面版就是采用这种风格,采用这种风格的应用程序也越来越多,比如各种杀毒软件,可能delphi提供的
vcl
组件可以简化这种操作,对于这种“傻瓜式”的实现我不喜欢。我还是想用C++,实现这种界面,而且我不喜欢附带额外的动
跨
进
程获取其他程序的DBGrid内容
转发自:点击打开链接 一、思考与启发 1.对于Windows的Standard Controls,基本上大家应该是都会的: GetWindowText,WM_GETTEXT可以获取EDIT的文本内容; LB_GETTEXT可以获取LISTBOX列表项的文本内容; CB_GETLBTEXT可以获取COMBOBOX下拉列表项的文本内容; 这里我就不多说了。 对
DELPHI 跨
进
程获取其他程序的DBGrid内容
一、思考与启发 1.对于Windows的Standard Controls,基本上大家应该是都会的: GetWindowText,WM_GETTEXT可以获取EDIT的文本内容; LB_GETTEXT可以获取LISTBOX列表项的文本内容; CB_GETLBTEXT可以获取COMBOBOX下拉列表项的文本内容; 这里我就不多说了。 对于Windows的Com
关于FindControl的
问题
我的动手能力很弱。。。http://topic.csdn.net/u/20101008/16/fbf7d1aa-ad19-489c-abae-6090da38bc50.html
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章