TPageControl的疑惑

springchina 2012-08-22 08:41:37
TFrom1上放置一个TPageControl,这个TPageControl上有两个TabSheet,设计的时候,ActivePage = TabSheet1.
TabSheet2上有一个TListView1,TListView1里有两个TListItem。
现在的情况是:
Form1 = new TForm1(Application);
ShowMessage(Form1->TListView->Items->Count);
显示的结果是0.
但是我设ActivePage = TabSheet2后,显示的结果就是2。

百思不得其解,这个是为什么啊?
大家行行好吧,折腾一天了,脑袋都快噜秃了!
...全文
226 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
springchina 2012-08-22
  • 打赏
  • 举报
回复
回复于:2012-08-22 22:36:40
你还是show之后再判断吧
-------------------------------------------------
嗯嗯,就这么干了!多谢!
springchina 2012-08-22
  • 打赏
  • 举报
回复
回复于:2012-08-22 22:33:20
的确有这个问题,貌似是设计时放入的数据,在构造的时候没有放入,只有显示后才会载入

楼主干脆就运行时载入数据来绕过这个问题吧
-----------------------------------------------------------------
我现在就这么做了!只能显示后再去做别的事情了!
缘中人 2012-08-22
  • 打赏
  • 举报
回复
你还是show之后再判断吧
LinuxCard 2012-08-22
  • 打赏
  • 举报
回复
的确有这个问题,貌似是设计时放入的数据,在构造的时候没有放入,只有显示后才会载入

楼主干脆就运行时载入数据来绕过这个问题吧
springchina 2012-08-22
  • 打赏
  • 举报
回复
最新的验证情况如下:
ActivePage=TabSheet1的情形下:
Form1 = new TForm1(Application);
Form1->Show();
ShowMessage(Form1->TListView1->Items->Count);
结果为0,错误的结果。Form1->Show()的位置对结果没有影响,结果依旧是0.

ActivePage=TabSheet2的情形下:
Form1 = new TForm1(Application);
Form1->Show();
ShowMessage(Form1->TListView1->Items->Count);
结果为2,正确的结果。注意:Form1->Show()必须在ShowMessage(Form1->TListView1->Items->Count);前执行才能得到正确的结果。否则结果为0.
dataxdata 2012-08-22
  • 打赏
  • 举报
回复
估计ListView内部对行和列的处理是不一样的,列的数量相对固定,而行的数量可能会在很大的范围内动态变化,所以会采用不同的处理策略
springchina 2012-08-22
  • 打赏
  • 举报
回复
回复于:2012-08-22 21:46:05
可能PageControl中TabSheet上的控件的数据是在Active的时候才加载上去,所以一开始在非Active的时候数据为空
----------------------------------------------------------------------------------
奇怪的是:ShowMessage(Form1->TListView->Columns->Count)是正确的!
springchina 2012-08-22
  • 打赏
  • 举报
回复

#1楼 得分:0回复于:2012-08-22 21:27:24
Form1->TListView->Items->Count?
ListView1吧
------------------------------------------------
是Form1->TListView1->Items->Count!笔误!

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

#2楼 得分:0回复于:2012-08-22 21:30:47
ListView1的两列是怎么添加的
右键listview,有2个菜单
Columns Editor
Itemss Editor,用这个
-----------------------------------------------------
就是用的这个添加的!
dataxdata 2012-08-22
  • 打赏
  • 举报
回复
可能PageControl中TabSheet上的控件的数据是在Active的时候才加载上去,所以一开始在非Active的时候数据为空
缘中人 2012-08-22
  • 打赏
  • 举报
回复
ListView1的两列是怎么添加的
右键listview,有2个菜单
Columns Editor
Itemss Editor,用这个
缘中人 2012-08-22
  • 打赏
  • 举报
回复
Form1->TListView->Items->Count?
ListView1吧
内容概要:本文围绕超导磁能储存系统(SMES)的建模与仿真展开,基于Simulink平台构建系统级动态仿真模型,涵盖超导线圈、功率转换系统(PCS)以及核心控制策略等关键模块。研究重点在于分析SMES在电网中实现快速能量存储与释放的能力,验证其在提升电力系统稳定性、抑制功率波动方面的有效性,尤其针对新能源发电带来的间歇性与波动性问题提供了有效的解决方案。通过仿真手段深入探讨系统的动态响应特性,为优化控制算法的设计与应用提供可靠的技术支撑。; 适合人群:适用于具备电力系统、自动控制理论或能源存储技术背景,熟悉Simulink仿真环境的科研人员、工程技术人员及研究生;同时适合有志于开展新型储能技术仿真研究的高年级本科生参考学习。; 使用场景及目标:①深入理解超导磁能储存系统的基本结构、工作原理及其在电力系统中的应用场景;②掌握在Simulink中搭建复杂电力电子与控制系统联合仿真模型的方法;③研究SMES在电网调频、电压支撑、瞬时功率补偿等典型工况下的动态性能表现;④为后续先进控制策略(如PID、模糊控制、现代控制理论等)的优化设计与验证提供仿真试验平台。; 阅读建议:建议读者结合文中模型逐步动手搭建仿真系统,重点关注各功能模块的参数设置与信号接口匹配,配合具体案例进行仿真调试,深入理解控制逻辑与系统动态行为之间的内在联系,并可进一步拓展至与其他储能形式(如锂电池、飞轮储能)的性能对比研究,以深化对不同类型储能技术特点的认知。
内容概要:本文围绕“考虑火-储联合调频(火电机组-混合储能)的协同控制策略”展开研究,提出一种基于Matlab仿真的协同控制方法,旨在提升电力系统频率调节的快速性与稳定性。通过构建火电机组与混合储能(如蓄电池、飞轮等)的联合调频模型,设计合理的功率分配机制与控制策略,充分发挥火电的持续调节能力与储能的快速响应优势,有效应对电网负荷波动与频率偏差。文中结合改进信号分解算法(如ICEEMDAN)与优化算法(如GWO),实现对调频信号的精准分频与储能单元的优化调度,提高系统整体调频效率与经济性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事新能源并网、电力系统稳定控制、储能技术应用等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于研究火电机组与混合储能在电网一次调频、二次调频中的协同作用机制;②为实际电力系统中储能配置与调频控制策略设计提供仿真验证平台与理论支持;③支撑相关课题研究、学术论文撰写及工程项目前期论证。; 阅读建议:建议结合Matlab代码深入理解控制算法实现细节,重点关注功率分配逻辑、信号分解过程与优化算法参数设置,并可通过修改系统参数进行对比仿真,以加深对协同控制效果的认识。

13,872

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧