屏幕闪得利害,不知怎么解决????(关于画布)

hellolulu 2003-08-26 09:34:22
我需要多行的表格来作从表输入界面,比如10行的表格用于录入5行的数据,第1、3、5、7、9行的格式相同,第2、4、6、8、10行的格式相同,但1、3、5、7、9行与第2、4、6、8、10行的格式不同,
由于找不到合适的控件,我只好自己在TImage的画布上画一个多层的Grid,然后在TImage上摆两个Edit控件用于输入及捕获焦点及光标,不想在每次移动Edit位置时,整个Image就会闪一下,而我实际只在上面重画了一个Rectangle及填写一串字符而已,不知那位大侠有解决办法?
...全文
38 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellolulu 2003-08-26
  • 打赏
  • 举报
回复
我试过重画StringGrid,但还没试过ListView,等会试一下,
对了StringGrid的表头列宽调整没有可用的事件!!!
hellolulu 2003-08-26
  • 打赏
  • 举报
回复
试了Panel1->DoubleBuffered = true
有一些效果,可是由于单元输入内容不一样,我还要动态创建不同类型的录入控件如TDateTimePicker放到单元的位置上,结果整个屏幕都“地震”了,不知小海还有没有其它办法?
liux330 2003-08-26
  • 打赏
  • 举报
回复
Image1->Refresh();
Siney 2003-08-26
  • 打赏
  • 举报
回复
自己重画StringGrid或者ListView就可以,你查看一下以前的帖子,有详细的例子
hellolulu 2003-08-26
  • 打赏
  • 举报
回复
我试过用StringGrid,它不可以实现例如第一行与第二行格式(列宽)不一样的功能,要实现也得用上画布,我觉得直接用Timage方便许多
ghwhz 2003-08-26
  • 打赏
  • 举报
回复
另外我认为可以用StringGrid来实现你的功能啊,比画Image不是简单多了吗
ghwhz 2003-08-26
  • 打赏
  • 举报
回复
试一下用双缓冲,就是把放TImage的容器设置成双缓冲,例如TImage是放在Panel1上的,则Panel1->DoubleBuffered = true

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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