| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2188 人关注过本帖
标题:如何彩循环方式一次设置多个有规则命名的控件的属性
只看楼主 加入收藏
scandisk
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-7-31
收藏
 问题点数:0 回复次数:5 
如何彩循环方式一次设置多个有规则命名的控件的属性
如有5个控件分别是:sle_1,sle_2,sle_3,sle_4,sle_5

我想做个循环语句如下:
int Li_no

FOR LI_NO=1 TO 5

sle_"1"="aaaa" //" 应是这个"1",如果用变量处理"

next
搜索更多相关主题的帖子: 控件 规则 属性 
2006-08-02 22:48
fgypblt
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-6-27
收藏
得分:0 
li_no值使对应single..控件。
假设所用为sle的text 属性
choose case li_no
case 1
sle_1.text="t"
.
sle_5.text=""
case 2
.
end choose

if..end if 也可

如果功能比较清楚,建议写入function
参数为int (即li_no值),返回single...//cb控件就是返回commandbu...类型
编程中调用此函数,得到所需sle控件,再定义属性即可
gf_test(li_no).text=...

[此贴子已经被作者于2006-8-4 16:29:09编辑过]


2006-08-03 10:37
SCANDISK
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-7-31
收藏
得分:0 
可能我没说清!

有5个按钮控件分别是:
CB_1
CB_2
CB_3
CB_4
CB_5

想用循环的方式一次性设置全部按钮的ENABLED=False
想采用如下方式实现

INT li_no
For Li_no=1 to 5
CB_?.Enabled=False
Next

关键是"?"处不知道如何处理?可否用变量实现,好VFP中就可采用宏(&)的形式实现,也就是CB_&li_no

2006-08-03 16:31
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
收藏
得分:0 

0306 -- 用变量操作多个控件

http://www.51pb.com/viewthread.php?tid=1169&extra=page%3D1
我现在有60个相同的控件,控件名为cbx_1~cbx_61
现在我要对这60个控件做同样的处理,是否有办法用循环来处理呢?
就象
for i=1 to 61
messagebox('',cbx_i.text)
next
相似的处理,我上面用法当然是错误的,只是不知道有没有什么办法来解决呢?

Integer li_control
String ls_name
//This 是窗口,换成window的名字
FOR li_control = 1 TO UpperBound(This.Control[])
ls_name = This.Control[li_control].classname()
IF Left(ls_name,4) = 'cbx_' AND &
Integer(Right(ls_name(),Len(ls_name) - 4)) >= 1 AND &
Integer(Right(ls_name(),Len(ls_name) - 4)) <= 61 THEN
//此处处理
//此处处理
CheckBox cbx_which
cbx_which = This.Control[li_control]
messageBox('',cbx_which.Text)


乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-08-04 16:01
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
收藏
得分:0 

0277 -- 对控件如何使用数组

http://www.51pb.com/viewthread.php?tid=1140&extra=page%3D2
  比较简单的一种情况:对窗口中的所有控件,处理它们的公共属性。代码如下:
  integer li_Count
  integer li_index
  li_Count = UpperBound(parent.Control[])
  For li_index = 1 to li_Count
   MessageBox('',parent.control[li_index].tag)
  next


  上面程序中,替换城如下脚本可以显示每一个控件的名称:
  MessageBox('',parent.control[li_index].ClassName())
  下面的脚本根据控件的类型做处理:
  integer li_Count
  integer li_index
  li_Count = UpperBound(parent.Control[])
  For li_index = 1 to li_Count
   choose case parent.control[li_index].TypeOf()
       case CommandButton!
         MessageBox('','commandbutton name=' + parent.control[li_index].ClassName())
       case CheckBox!
       ...
   end choose
  next


乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-08-04 16:01
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
收藏
得分:0 

0284 -- PB控件的“宏替换”
http://www.51pb.com/viewthread.php?tid=1147&extra=page%3D1

  问:
  我想编写一个程序,代码如下:
  P_1.PictureName = 'help.gif'
  P_2.PictureName = 'help.gif'
  P_3.PictureName = 'help.gif'
  P_4.PictureName = 'help.gif'
  P_5.PictureName = 'help.gif'
  请问有没有一种简单的办法,能让我用循环语句来实现?

  如:
  for i = 1 to 5
    P_***.PictureName = 'help.gif'
  next

  答:
  假设这段代码写在WINDOW的OPEN事件,THIS就是当前WINDOW:
  int i
  picture lp
  for i=1 to upperbound(this.Control)
    if typeof(this.Control)=picture! then
     lp=parent.Control
     // 可以通过 lp.classname() 进一步确定是不是要修改的图像控件
     lp.picturename='help.gif'
    end if
  next
  你也可以定义一个 picture 变量数组来进行操作,通过OpenUserObject()使它们出现在window中。

  答:
  int i
  picture p_temp
  for i = 1 to Upperbound(w_test.control)
    if left(w_test.control.classname,2) = 'p_' then
      p_temp = w_test.control
      p_temp.picturename = '.......'
    end if
  next

问:我现在有60个相同的控件,控件名为cbx_1~cbx_61现在我要对这60个控件做同样的处理,是否有办法用循环来处理呢?
就象
for i=1 to 61
  messagebox('',cbx_i.text)
next
相似的处理,我上面用法当然是错误的,只是不知道有没有什么办法来解决呢?

Integer li_control
String ls_name
//This 是窗口,换成window的名字
FOR li_control = 1 TO UpperBound(This.Control[])
  ls_name = This.Control[li_control].classname()
  IF Left(ls_name,4) = 'cbx_' AND &
    Integer(Right(ls_name(),Len(ls_name) - 4)) >= 1 AND &
    Integer(Right(ls_name(),Len(ls_name) - 4)) <= 61 THEN
    //此处处理
    CheckBox cbx_which
    cbx_which = This.Control[li_control]
    messageBox('',cbx_which.Text)
  END IF
NEXT


乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-08-04 16:02
快速回复:如何彩循环方式一次设置多个有规则命名的控件的属性
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048287 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved