| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3169 人关注过本帖
标题:根据微调按钮动态增加控件,表单实例化后,怎么加控件?
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用不懂才问在2015-12-21 15:39:41的发言:

提示我一下,如果已经添加了,为什么不显示出来呢?       谢谢

Visible
2015-12-21 16:10
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:34 
CLEAR ALL
CLOSE PROCEDURES
*SET PROCEDURE TO "MyForm", "MyLogin","otherForm" && 我没这个文件
PUBLIC addLineNum
addLineNum=2
runOtherForm1()

CLOSE PROCEDURES
&&CLOSE ALL
return

PROCEDURE runOtherForm1
    PUBLIC  otherForm1
    otherForm1=CREATEOBJECT("m1Form")
    otherForm1.show
    READ EVENTS
    RETURN
ENDPROC

*DEFINE CLASS m1Form as myForm
DEFINE CLASS m1Form as Form
    showWindow=2
    caption="功能模块1窗口"
    autoCenter=.t.
    windowType=1
    minLabelFontSize=8    &&定义最小标签的字号
    minOtherFontSize=9    &&定义最小文本框、列表框、按钮字号
    minTitleFontSize=18    &&定义标题标签小号字号
    minDistance=2    &&定义控件间最小间距
    minControlTop=24    &&定义最顶端控件的最小顶边
    minControlLeft=12    &&定义最左端控件的最小侧边距
    height=300 &&为了测试更多
   
    &&ADD OBJECT howManyLine as spinner WITH spinnerHighValue=4,spinnerLowValue=1,value=1,left=180
    ADD OBJECT addLine as commandButton WITH caption="增加行"&&,initValue=2  
    ADD OBJECT button1 as commandButton WITH caption="返回主程序",left=thisform.addLine.left+thisform.addLine.width+10
   
    &&根据微调按钮,增加条目开始
    ADD OBJECT clfl1 as clfl_C WITH top=135,left=12,height=24,width=48,value="材料分类1"
    ADD OBJECT clmc1 as clmc_C WITH top=135,left=63,height=24,width=77,value="材料名称1"
   
    PROCEDURE addLine.click
        flName="clfl"+ALLTRIM(STR(addLineNum))
        clName="clmc"+ALLTRIM(STR(addLineNum))
        thisform.addobject('&flName','TextBox')
        thisform.addobject('&clName','TextBox')
*        thisform.addobject('&flName','clfl_C')
*        thisform.addobject('&clName','clmc_C')



&&我没用你的类,用你的类,不会累加,只能显示1个,也就是直到 clmc2,clmc3以后就不动了,估计是top=135+30*addLineNum的addLineNum值问题,改为30*addLineNum,不是100*addLineNum
WITH thisform.&flName
    .top=135+30*addLineNum
    .left=12
    .height=24
    .width=48
    .value="材料分类"+ALLTRIM(STR(addLineNum))
    .visible=.t.
ENDWITH
        
WITH thisform.&clName
    .top=135+30*addLineNum
    .left=63
    .height=24
    .width=77
    .value="材料新名称"+ALLTRIM(STR(addLineNum))
    .visible=.t.
ENDWITH

        addLineNum=addLineNum+1

        &&thisform.height=thisform.&clName.top+200
        thisform.refresh
    ENDPROC

*!*        PROCEDURE howManyLine.valid
*!*            howLine=thisform.howManyLine.value
*!*            IF howLine>=2
*!*                FOR addLine=2 TO howLine
*!*                     flName="clfl"+ALLTRIM(STR(addLine))  &&用宏代实现分类名称和材料名称,不知道怎么样?
*!*                     clName="clmc"+ALLTRIM(STR(addLine))  &&或者用这个先确定名称
*!*                     MESSAGEBOX(clName,64,"运行了吗?")
*!*                     ADD OBJECT &flName as textBox WITH top=135+addLine,left=12,height=24,width=48,value="材料分类"+ALLTRIM(STR(addLine))
*!*                     ADD OBJECT &clName as textBox WITH top=135+addLine,left=63,height=24,width=77,value="材料名称"+ALLTRIM(STR(addLine))
*!*                ENDFOR
*!*               
*!*            ENDIF
*!*            thisform.refresh
*!*        ENDPROC   
   
    &&根据微调按钮,布局结束
   
    PROCEDURE button1.click
        RELEASE thisform
    ENDPROC
        
    PROCEDURE Destroy
        MESSAGEBOX(thisform.clmc2.value,64,"控件增加了吗?")
        MESSAGEBOX("模块1表单销毁了",64,"123")
        CLEAR EVENTS
    ENDPROC
   
ENDDEFINE

DEFINE CLASS clfl_C as TextBox
    top=135+30*addLineNum
    left=12
    height=24
    width=48
    value="材料分类"+ALLTRIM(STR(addLineNum))
    visible=.T.
ENDDEFINE

DEFINE CLASS clmc_C as TextBox
    top=135+30*addLineNum
    left=63
    height=24
    width=77
    value="材料新名称"+ALLTRIM(STR(addLineNum))
    visible=.T.
ENDDEFINE

[此贴子已经被作者于2015-12-21 16:27编辑过]

2015-12-21 16:25
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

上面红字部分,修改后效果
2015-12-21 16:30
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 11楼 吹水佬
图片附件: 游客没有浏览图片的权限,请 登录注册


呵呵  呵呵  呵呵呵  。。。   终于体会到这个属性的作用了

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-21 18:01
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
CLEAR ALL
CLOSE PROCEDURES
SET PROCEDURE TO "MyForm", "MyLogin","otherForm"
PUBLIC addLineNum
addLineNum=2
runOtherForm1()

CLOSE PROCEDURES
&&CLOSE ALL
return

PROCEDURE runOtherForm1
    PUBLIC  otherForm1
    otherForm1=CREATEOBJECT("m1Form")
    otherForm1.show
    READ EVENTS
    RETURN
ENDPROC

DEFINE CLASS m1Form as myForm
    showWindow=2
    caption="功能模块1窗口"
    autoCenter=.t.
    windowType=1
    minLabelFontSize=8    &&定义最小标签的字号
    minOtherFontSize=9    &&定义最小文本框、列表框、按钮字号
    minTitleFontSize=18    &&定义标题标签小号字号
    minDistance=2    &&定义控件间最小间距
    minControlTop=24    &&定义最顶端控件的最小顶边
    minControlLeft=12    &&定义最左端控件的最小侧边距
   
    &&ADD OBJECT howManyLine as spinner WITH spinnerHighValue=4,spinnerLowValue=1,value=1,left=180
    ADD OBJECT addLine as commandButton WITH caption="增加行"&&,initValue=2  
    ADD OBJECT button1 as commandButton WITH caption="返回主程序",left=thisform.addLine.left+thisform.addLine.width+10
   
    &&根据微调按钮,增加条目开始
    ADD OBJECT clfl1 as clfl_C WITH top=135,left=12,height=24,width=48,value="材料分类1"
    ADD OBJECT clmc1 as clmc_C WITH top=135,left=63,height=24,width=77,value="材料名称1"
   
    PROCEDURE addLine.click
        flName="clfl"+ALLTRIM(STR(addLineNum))
        clName="clmc"+ALLTRIM(STR(addLineNum))
        thisform.addobject('&flName','clfl_C')
            WITH thisform.&flName
                .top=135+(thisform.minDistance*2+24)*(addLineNum-1)
                .value="材料分累"+ALLTRIM(STR(addLineNum))
            ENDWITH  
        thisform.addobject('&clName','clmc_C')
            WITH thisform.&clName
                .top=135+(thisform.minDistance*2+24)*(addLineNum-1)
                .value="材料明称"+ALLTRIM(STR(addLineNum))
            ENDWITH
        addLineNum=addLineNum+1
        thisform.height=thisform.'&clName'.top+200   &&新问题在这,动态决定表单的高,想调用最后添加的控件的属性,不成功
        thisform.refresh
    ENDPROC
    &&根据微调按钮,布局结束
   
    PROCEDURE button1.click
        RELEASE thisform
    ENDPROC
        
    PROCEDURE Destroy
        MESSAGEBOX(thisform.clmc2.value,64,"控件增加了吗?")
        MESSAGEBOX("模块1表单销毁了",64,"123")
        CLEAR EVENTS
    ENDPROC
   
ENDDEFINE

DEFINE CLASS clfl_C as TextBox
    &&top=135+100*addLineNum
    left=12
    height=24
    width=48
    &&value="材料分类"+ALLTRIM(STR(addLineNum))
    visible=.t.
ENDDEFINE

DEFINE CLASS clmc_C as TextBox
    &&top=135+100*addLineNum
    left=63
    height=24
    width=77
    &&value="材料新名称"+ALLTRIM(STR(addLineNum))
    visible=.t.
ENDDEFINE

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-21 18:22
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
快帮帮我   不然无法解决下一个问题了

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-21 22:10
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
thisform.height=thisform.&clName. .top+200   &&新问题在这,动态决定表单的高,想调用最后添加的控件的属性,不功能


用两个点  解决问题  不过  不知道为什么 。。。
+++++++++++++++++++++++

查过帮助后   。。。。

哈哈哈哈

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2015-12-21 22:36编辑过]


报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-21 22:32
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
突然又想到一个问题,万一最终用户点多了,就想要两行,却点了三行???怎么删呢?

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-21 23:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
这样测试看得累也难明,无需“现场”测试。
个别问题个别处理,将无相关的暂时去掉,抓住主要问题,有针对性的写个简单的可行性测试就可以。
2015-12-22 08:18
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:0 
回复 19楼 吹水佬
。。。那就来个简单的  红字部分就是问题了,谢谢

窗体实例化
窗体.show

窗体类定义
  窗体属性若干

  添加“增加行”按钮实例
  添加“删除行”按钮实例

  “增加行”click方法
    form.addobject('新行的控件1','基类')
        调整窗体高度
  方法结束

  “删除行”click方法
    就这里不知道怎么删除,有delObject方法吗?还是逐个Release
    调整窗体高度
  方法结束

窗体类定义结束

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-22 09:43
快速回复:根据微调按钮动态增加控件,表单实例化后,怎么加控件?
数据加载中...
 
   



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

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