DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: vic_168999
今日帖子: 3
在线用户: 23
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 smallmouse (小老鼠) ★☆☆☆☆ -
普通会员
2004/4/21 22:28:45
标题:
怎样将窗体上的除了“按钮”外的所有组件都清空? 浏览:989
加入我的收藏
楼主:  
老师,
  您好!
  我的窗体上有4种组件,分别是:TComboBox、TEdit、TListBox、TSpeedButton类型的组件。
  
窗体布局:
  这些组件中,需要进行特定排放的组件是TComboBox类组件和TEdit类组件,其它类组件的排放位置无所谓。。TComboBox类组件分为3列,每列的Left属性相同;每行TEdit类组件与TComboBox类组件的Top属性相同。

  排列后,窗体中TComboBox类组件和TEdit类组件布局如下:

  TComboBox(列1,行1)  TComboBox(列2,行1) TComboBox(列3,行1)   TEdit(行1)
  TComboBox(列1,行2)  TComboBox(列2,行2) TComboBox(列3,行2)   TEdit(行2)
  ...共6行

要实现的功能:
  在单击“清除”按钮后,将窗体中:TComboBox、TEdit、TListBox这三类组件的内容全部清空,要求在这三类组件中,TComboBox组件只能清空Text属性中的内容(即:只能清空目前选中的内容,而不能使用TComboBox.items.Clear这样的方法清空组件列表中的所有值)

对于这个目的,我是这样实现的:

procedure TfmBaseFilter.sbClearClick(Sender: TObject);
 var
   ComSum: integer;
begin
  inherited;
  for ComSum := 0 to ComponentCount - 1 do
   begin
    if Components[ComSum] is TComboBox then
      (Components[ComSum] as TComboBox).Text := '';
    if Components[ComSum] is TEdit then
      (Components[ComSum] as TEdit).Text := '';
    if Components[ComSum] is TListBox then
      (Components[ComSum] as TListBox).Items.Clear;
   end;
end;

  上述代码执行后,只清空了所有TListBox、TEdit类组件和第2列的TComboBox类组件的内容,而第1列和第3列的TComboBox组件的内容却没有清空(指这两列的所有行),这是为什么?这段代码该怎样改进?请老师指教。  
 

----------------------------------------------
-
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2004/4/21 23:03:45
1楼: (Components[ComSum] as TComboBox).items.Clear;
----------------------------------------------
维护世界和平,共创美好盒子。
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行898.4375毫秒 RSS