找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 15319|回复: 41

[原创] 原创 Proe二次开发UI对话框设计教程 真的是我自己一个一个字写的哦

 火.. [复制链接]

14

主题

58

回帖

0

积分

列兵

积分
0
发表于 2011-7-3 21:27:39 | 显示全部楼层 |阅读模式
大家好,我是精诚网二次开发板块的版主lovedongyao,最近在为我自己做的一个程序设计一个UI对话框,查阅了很多资料,其中大部分资料都是在李世国的《Pro/toolkit插件设计》和proe自带的tkuse.pdf中查得了,这些资料纷繁复杂,于是就产生了一个把这些东西系统整理一下的想法,以便于以后查阅起来更加方便,为以后的编程工作提高效率,既然我总结出来了,就想着把这份资料上传到咱们精诚网论坛上吧,一方面为咱们论坛提高点人气,尽一点作为版主的责任,另一方面,我感觉这手资料对于用二次开发的人来说也是很有用处的,所以决定给大家分享一下。我相信,只要你认真看,再结合我最后给出的例子仔细研究,不出5遍你应该能学会怎么自己制作Proe二次开发的UI对话框的,呵呵,要认真看啊,不要浪费了我的一番心血啊,我可是牺牲了周末的休息时间,一个字一个字敲上去的啊!!!
Proe二次开发的UI对话框主要是由元件(component)和引导元件分布的语法(Resources)共同配合设计而成,资源文件应该写在*.res类型的文件中,储存在所见工程的Test\resource中。
下面把proe二次开发UI对话框中多有的元件及配置属性和用法详细总结一下:
一、        容器类元件
(1)元件名
Tab——选项卡。至少包含一个Layout。
Layout——布局。Tab的下级元件,也可以单独使用。
SubLayout——子布局。Layout的下级元件。
(2)属性
a.  UI对话框元件共同属性
.AttachLeft——左侧依附。属性值:TRUE或FALSE(默认值)。
.AttachRight——右侧依附。属性值:TRUE或FALSE(默认值)。
.AttachTop——顶部依附。属性值:TRUE或FALSE(默认值)。
.AttachBottom——底部依附。属性值:TRUE或FALSE(默认值)。
.TopOffset——顶部偏距。属性值:integer(默认值-1)。
.BottomOffset——底部偏距。属性值:integer(默认值-1)。
.LeftOffset——左侧偏距。属性值:integer(默认值-1)。
.RightOffset——右侧偏距。属性值:integer(默认值-1)。
.Bitmap——位图名(如果使用该属性,应加入bif后缀的图片格式)。属性值:string。
.HelpText——当鼠标位于该元件是显示的提示信息。属性值:string。
.Sensitive——敏感性,控制元件是够允许输入。属性值:TRUE(默认值)或FALSE。
.Visible——可见控制元件是否允许可见。属性值:TRUE(默认值)或FALSE。
b.        UI对话框的属性
.DefaultButton——默认按钮。属性值:string。
.DialogStyle——对话框模式。属性值:2(默认值)或6。
               选2表示不在对话框显示进度条
               选6表示显示进度条
.Label——对话框标题。属性值:string。
.RememberPosition——保存对话框位置。属性值:TRUE(默认值)或FALSE。
.RememberSize——保存对话框大小。属性值:TRUE(默认值)或FALSE。
.Resizebale——可调大小。属性值:TRUE或FALSE(默认值)。
               选TRUE表示允许用户用鼠标改变对话框的大小
               选FALSE表示不允许
.StartLocation——起始位置。属性值:integer(1-9)。
               1=Top Left(左上)
               2=Top Center(中上)
               3=Top Right(右上)
               4=Middle Left(左中)
               5=Middle Center(中心)
               6=Middle Right(右中)
               7=Bottom Left(左下)
               8=Bottom Center(中下)
               9=Bottom Right(右下)
二、        普通元件
1.        元件名:PushButton——按钮。
属性:.Label——设置按钮上显示的名字。属性值:wide string。
2.        元件名:InputPanel——输入框。
属性:.Columns——输入框宽度。属性值:integer(默认值:16)。
      .Diaits——小数位数。属性值:integer(默认值:-1)。
      .DoubleFormat——双精度数值的格式。属性值:string。
      .Editable——可编辑属性。属性值:TRUE或FALSE。
      .InputType——输入类型。属性值:0-4。
                  0 代表String(字符串)
                  1 代表Widestring(宽字符)
                  2 代表Integer(整数)
                  3 代表Double(双精度)
                  4 代表Fraction(分数)
      .MaxDouble——双精度最大值。属性值:double。
      .MaxInteger——整数最大值。属性值:integer。
      .MaxLen——最大长度。属性值:Integer(默认值:32)。
      .MinColumns——最小宽度。属性值:Integer(默认值:4)。
      .MinDouble——双精度最小值。属性值:double。
      .MinInteger——整数最小值。属性值:integer。
      .Password——输入口令。属性值:TRUE,FALSE。
      .Value——设置输入框初值。属性值:wide string。
3.        元件名:Label——标签。
属性:.Columns——设置标签名所占的列数。属性值:integer。
      .Label——设置标签文字。属性值:wide string。
4.        元件名:List——列表框。
属性:.ColumnLabel——设置标头文字。属性值:wide string。
      .Columns——设置列表框的初始宽度。属性值:integer。
      .ItemHelpText——设置列表框中各项的提示信息。属性值:wide string。
      .Labels——设置标签文字。属性值:wide string。
      .ListType——设置列表框类型。属性值:tabulated,standard,check。
      .MinColumns——设置列表框的最小宽度。属性值:integer。
      .MinRows——设置列表框的最小行数。属性值:integer。
      .Names——设置列表框各选项名。属性值:string。
      .SelectionPolicy——设置列表框选择方式。属性值:single(单选),multiple(多选)。
      .TabStops——设置多列显示时的制表位。属性值:integer。
      .VisibleRows——设置可见行行数。属性值:integer。
5.        元件名:OptionMenu——选项菜单。
属性:.Columns——设置选项菜单的初始宽度。属性值:integer。
      .ItemHelpText——设置选项菜单中各选项的提示信息。属性值:wide string。
      .Labels——设置各选项的标签文字。属性值:wide string。
      .MinColumns——设置选项菜单的最小宽度。属性值:integer(默认4)。
      .Names——设置选项菜单各选项名。属性值:string。
      .VisibeRows——设置鼠标按下时弹出的菜单行行数。属性值:integer。
6.        元件名:ProgressBar——进度条。
属性:.Integer——设置进度条的初始值。属性值:integer。
      .Length——设置进度条的长度。属性值:integer。
      .Maxinteger——表示进度条当前状态的最大数值。属性值:integer。
      .Mininteger——表示进度条当前状态的最小数值。属性值:integer。
      .Orientation——设置滑块的设置方向。属性值:boolean。
                    选 TRUE 表示进度条竖直放置
                    选 FALSE 表示进度条水平放置
      .ProgressStyle——设置进度条的外观样式。属性值:integer。
                    0 只显示表示进度的颜色变化,不显示状态值
                    1 显示进度值(整数)
                    2 显示进度值的百分数
                    3 显示表示进度的色块
7.        元件名:RadioGroup——单选按钮组。
属性:.ItemHelpText——设置选项提示文字。属性值:wide string。
      .Label——设置标签文字。属性值:wide string。
      .Names——设置单选按钮名。属性值:wide string。
      .Orientation——设置单选按钮组的排列方向。属性值:TRUE或FALSE(默认值)。
                                选 TRUE 单选按钮组竖直排列
                                选 FALSE 单选按钮组水平排列
8.        元件名:CheckButton——复选按钮。
属性:.Label——设置复选按钮组的标签名(在右边显示)。属性值:string。
      .Set——设置复选按钮组的初始状态。属性值:TRUE或FALSE。
9.        元件名:Slider——滑块。
属性:.Integer——设置滑块的当前值。属性值:integer。
      .Length——设置滑块显示的长度。属性值:integer(默认值:8)。
      .MaxInteger——设置滑块的最大值。属性值:integer。
      .MinInteger——设置滑块的最小值。属性值:integer。
      .Orientation——设置滑块的放置方向。属性值:TRUE或FALSE(默认值)。
                          选 TRUE 竖直放置
                          选 FALSE 水平放置
      .Traking——设置是否跟踪调用动作函数。属性值:TRUE或FALSE。
                          选 TRUE 跟踪调用动作函数
                          选 FALSE 鼠标移动滑块松开后才调用动作函数
10.        元件名:SpinBox——微调按钮。
属性:.Columns——设置微调按钮的宽度。属性值:integer。
      .Delay——设置延迟时间。属性值:integer。
      .Digits——数字位数。属性值:integer。
      .Double——设置双精度初始值。属性值:double。
      .DoubleFormat——设置双精度格式。属性值:string。
      .DoubleIncrement——设置双精度初始增量。属性值:double。
      .FastDoubleIncrement——设置作用于延迟之后的双精度增量。属性值:double。
      .Increment——设置整型初始增量。属性值:integer。
      .FastIncrement——设置作用于延迟之后的整型增量。属性值:integer。
      .InputType——设置输入类型。属性值:integer。
                          输入 2(默认值)整数
                          输入 3 双精度
      .Integer——设置整型初始值。属性值:integer。
      .MaxDouble——设置双精度最大值。属性值:double。
      .MinDouble——设置双精度最小值。属性值:double。
.MaxInteger——设置整型最大值。属性值:integer。
.MinInteger——设置整型最小值。属性值:integer。
.Rate——设置速率。属性值:double。
11.        元件名:TextArea——多行文本输入区。
属性:.Columns——设置文本输入区的宽度。属性值:integer。
      .Editable——设置文本输入区是否可编辑。属性值:TRUE或FALSE。
      .Maxlen——设置输入的最大长度。属性值:integer。
      .MinColumns——用户改变对话框的最小宽度。属性值:integer。
      .MinRows——用户改变对话框的最小行数。属性值:integer。
      .Rows——设置文本输入区行数。属性值:integer。
      .Value——设置文本输入区的值。属性值:wide string。
12.        元件名:ThumbWheel——指轮。
属性:.InfiniteRange——设置时候限制最大和最小值。属性值:TRUE或FALSE。
      .Integer——设置指轮的初始值。属性值:integer。
      .Length——设置指轮的宽度。属性值:integer。
.MaxInteger——设置指轮最大值。属性值:integer。
.MinInteger——设置指轮最小值。属性值:integer。
      .Orientation——设置指轮放置方向。属性值:TRUE或FALSE(默认值)。
                        选 TRUE 竖直放置
                        选 FALSE 水平放置
      .Tracking——设置是否跟踪调用动作函数。属性值:TRUE或FALSE。
      .UnitsPerRotation——设置指轮每转计数单位。属性值:integer。
13.        元件名:Table——表格。
属性:表格的属性非常多,而表格又不经常用到,如果用到也是用到最基本的一些属性,可以参考其他元件的属性,有很多雷同,如果遇见制作复杂表格的情况,参考下tkuse.pdf吧,呵呵
14.        元件名:Separator——分隔条。
三、        带菜单条的UI对话框
带菜单条的UI对话框,应该是在学习proe二次开发后期,有一定的知识基础和经验制作比较复杂的大型工程时用到,对于初学者,甚至中级学者都很少应用到,但是考虑到制作教程的完整性,在这还是把这方面的内容做个简单的介绍。
制作UI对话框中的菜单条有三个元件:
1.        Menubar——菜单条。一个UI对话框只能有一个Menubar,但是Menubar里面至少要包含一个MenuPane元件。
MenuBar的相关属性:.Names——设置菜单名。属性值:string。
                    .Itemhelptext——设置菜单提示信息。属性值:string。
                    .Selectablenames——设置菜单的可选项。属性值:string。
                    .Visiblenames——设置显示的菜单名。属性值:string。
2.        MenuPane——菜单区,也称下拉菜单。
3.        CascadeButton——分级按钮。是包含下级菜单的菜单项。
四、        对制作的UI对话框进行预览,同时对信息文件的书写进行检查
写完了UI对话框的信息文件,需要对其进行检查,proe为我们提供了一个检查UI对话框的工具,就是prodialog_view.exe,但是这个工具你只能安装了pro/toolkit插件才能有,他存放在…\protoolkit\i486_nt\obj中,使用方法就是:
1.        在“运行”里输入“cmd”,打开运行窗口。
2.        在窗口中,运用DOS命令进入…\protoolkit\i486_nt\obj文件夹中(别告诉我你不会DOS的这个命令,呵呵)。
3.        进入…\protoolkit\i486_nt\obj文件夹后,在运行窗口输入“prodialog_view.exe 路径+信息文件名.res”(例如你编写的信息文件是UI_All.res,存放在D盘根目录下,你就应该写“prodialog_view.exe D:\UI_All.res”),然后点回车键,这是如果你的信息文件有书写错误就会提示你的哪一行哪一列写错了,你可以根据提示去修改,如果没有任何错误了,就能预览到你自己设计的Ui对话框了。


至此,整个教程就算写完了,需要说明的是,上面列出的基本元件包含了proe的UI对话框的所有基本元件,但是它们的属性,有的我全部列出来了,有的列出了大部分实际工程中常用到的,如果您在学习是遇见了这里没有提过的属性,那就去查查tkuse.pdf,呵呵,那上面是全的,只不过讲的比较分散,而且是英文的,这也是我写这个教程的用意所在,把纷繁复杂的UI对话框信息文件的写法浓缩成这些文字,还翻译成汉语,希望能够给大家提供一定的参考价值,如果有错误的地方还请高水平的朋友加以指点,呵呵。

0

主题

5

回帖

0

积分

列兵

积分
0
发表于 2011-7-3 21:31:25 | 显示全部楼层
支持高手哦

71

主题

437

回帖

676

积分

三级士官

积分
676
发表于 2011-7-3 21:32:13 | 显示全部楼层
你太强悍了,

28

主题

313

回帖

449

积分

二级士官

积分
449
发表于 2011-7-3 21:32:21 | 显示全部楼层
支持啊,虽然我不懂

0

主题

18

回帖

0

积分

列兵

积分
0
发表于 2011-7-3 21:44:33 | 显示全部楼层
我也不懂。但也支持下。

0

主题

15

回帖

0

积分

列兵

积分
0
发表于 2011-7-3 21:44:39 | 显示全部楼层
支持!!!!

14

主题

58

回帖

0

积分

列兵

积分
0
 楼主| 发表于 2011-7-3 21:58:25 | 显示全部楼层
真不好意思,刚才由于网络问题,才把例子传上来,呵呵。
举一个例子(也是我以前上传过的一个程序用的UI对话框):
(Dialog UI_Allcomponents
   (Components
      (PushButton                                         PushButton1)
      (PushButton                                         PushButton2)
      (Tab                                                Tab1
                                                          Layout01
                                                          Layout02
                                                          Layout03)
   )
   (Resources
      (PushButton1.Label                                  "OK")
      (PushButton1.TopOffset                              4)
      (PushButton1.BottomOffset                           4)
      (PushButton1.LeftOffset                             4)
      (PushButton1.RightOffset                            4)
      (PushButton2.Label                                  "Cancel")
      (PushButton2.TopOffset                              4)
      (PushButton2.BottomOffset                           4)
      (PushButton2.LeftOffset                             4)
      (PushButton2.RightOffset                            4)
      (Tab1.Decorated                                     True)
      (.Label                                             "All Components")
      (.Layout
         (Grid (Rows 1 1) (Cols 1)
            Tab1
            (Grid (Rows 1) (Cols 1 1)
               PushButton1
               PushButton2
            )
         )
      )
   )
)
!选项卡1
(Layout Layout01
   (Components
      (SubLayout                                          Layout1)
   )
   (Resources
      (.Label                                             "tab1(Component1)")
      (.Decorated                                         True)
      (.Layout
         (Grid (Rows 1) (Cols 1)
             Layout1
         )
      )
   )
)
!选项卡1的子布局
(Layout Layout1
   (Components
      (InputPanel                                         InputPanel1)
      (Label                                              Label1)
      (List                                               List1)
      (Label                                              Label2)
      (OptionMenu                                         OptionMenu1)
      (Label                                              Label3)
      (ProgressBar                                        ProgressBar1)
      (Label                                              Label4)
      (Separator                                          Separator1)
      (Label                                              Label5)
      (RadioGroup                                         RadioGroup1)
      (Label                                              Label6)
      (CheckButton                                        CheckButton1)
   )
   (Resources
      (InputPanel1.InputType                              3)
      (InputPanel1.MinColumns                             True)
      (Label1.Label                                       "Input Panel")
      (Label1.Attachleft                                  True)
      (List1.Names                                        "n1"
                                                          "n2"
                                                          "n3"
                                                          "n4"
                                                          "n5")
      (List1.Labels                                       "Value 1"
                                                          "Value 2"
                                                          "Value 3"
                                                          "Value 4"
                                                          "Value 5")
      (Label2.Label                                       "List")
      (Label2.Attachleft                                  True)
      (OptionMenu1.Names                                  "n1"
                                                          "n2"
                                                          "n3"
                                                          "n4"
                                                          "n5")
      (OptionMenu1.Labels                                 "Option 1"
                                                          "Option 2"
                                                          "Option 3"
                                                          "Option 4"
                                                          "Option 5")
      (Label3.Label                                       "Option Menu")
      (Label3.Attachleft                                  True)
      (Label4.Label                                       "rogress bar")
      (Label4.Attachleft                                  True)
      (Label5.Label                                       "Separator")
      (Label5.Attachleft                                  True)
      (Label6.Label                                       "Radio Group")
      (Label6.Attachleft                                  True)
      (RadioGroup1.Attachleft                             False)
      (RadioGroup1.AttachRight                            False)
      (RadioGroup1.AttachTop                              False)
      (RadioGroup1.AttachBottom                           False)
      (RadioGroup1.Names                                  "n1"
                                                          "n2"
                                                          "n3")
      (RadioGroup1.Labels                                 "red1"
                                                          "red2"
                                                          "red3")
      (RadioGroup1.Alignment                              2)
      (CheckButton1.Set                                   True)
      (CheckButton1.TopOffset                             4)
      (CheckButton1.BottomOffset                          4)
      (CheckButton1.LeftOffset                            4)
      (CheckButton1.RightOffset                           4)
      (CheckButton1.Label                                 "Check Buttons")
      (.Label                                             "Decorated layout1")
      (.Decorated                                         True)
      (.TopOffset                                         4)
      (.BottomOffset                                      4)
      (.LeftOffset                                        4)
      (.RightOffset                                       4)     
      (.Layout
         (Grid (Rows 1 1 1 1 1 1) (Cols 1 1)
           Label1
           InputPanel1
           Label2
           List1
           Label3
           OptionMenu1
           Label4
           ProgressBar1
           Label5
           Separator1
           Label6
            (Grid (Rows 1) (Cols 1 1)
                  RadioGroup1
                  CheckButton1
            )
         )
      )
   )
)
!选项卡2
(Layout Layout02
   (Components
      (SubLayout                                          Layout2)
   )
   (Resources
      (.Label                                             "tab2(Component2)")
      (.Decorated                                         True)
      (.Layout
         (Grid (Rows 1) (Cols 1)
             Layout2
         )
      )
   )
)
!选项卡2的子布局
(Layout Layout2
   (Components
      (Slider                                             Slider1)
      (Label                                              Label7)
      (SpinBox                                            SpinBox1)
      (Label                                              Label8)
      (TextArea                                           TextArea1)
      (Label                                              Label9)
      (ThumbWheel                                         ThumbWheel1)
      (Label                                              Label10)
   )
   (Resources
      (Label7.Label                                       "Slider")
      (Label7.Attachleft                                  True)
      (Label8.Label                                       "Spinbox")
      (Label8.Attachleft                                  True)
      (Label9.Label                                       "Text Area")
      (Label9.Attachleft                                  True)
      (Label10.Label                                      "Thumbwheel")
      (Label10.Attachleft                                 True)
      (.Label                                             "Decorated layout2")
      (.Decorated                                         True)
      (.TopOffset                                         4)
      (.BottomOffset                                      4)
      (.LeftOffset                                        4)
      (.RightOffset                                       4)
      (.Layout  
        (Grid (Rows 1 1 1 1) (Cols 1 1)
          Label7
          Slider1
          Label8
          SpinBox1
          Label9
          TextArea1
          Label10
          ThumbWheel1
        )
      )
   )
)
!选项卡3
(Layout Layout03
   (Components
      (SubLayout                                          Layout3)
   )
   (Resources
      (.Label                                             "tab3(Component3)")
      (.Decorated                                         True)
      (.Layout
         (Grid (Rows 1) (Cols 1)
             Layout3
         )
      )
   )
)
!选项卡3的子布局
(Layout Layout3
   (Components
      (Table                                              Table1)
   )
   (Resources
      (Table1.RowNames                                    "r1"
                                                          "r2"
                                                          "r3"
                                                          "r4"
                                                          "r5"
                                                          "r6"
                                                          "r7"
                                                          "r8")
      (Table1.RowLabels                                   "1"
                                                          "2"
                                                          "3"
                                                          "4"
                                                          "5"
                                                          "6"
                                                          "7"
                                                          "8")
      (Table1.ColumnNames                                 "c1"
                                                          "c2"
                                                          "c3"
                                                          "c4"
                                                          "c5")
      (Table1.ColumnLabels                                "A"
                                                          "B"
                                                          "C"
                                                          "D"
                                                          "E")
      (Table1.ColumnWidths                                4
                                                          4
                                                          4
                                                          4
                                                          4)
      (Table1.VisibleRows                                 8)
      (Table1.ShowGrid                                    True)
      (.Label                                             "Decorated layout3")
      (.Decorated                                         True)
      (.TopOffset                                         4)
      (.BottomOffset                                      4)
      (.LeftOffset                                        4)
      (.RightOffset                                       4)  
      (.Layout
         (Grid (Rows 1) (Cols 1)
            Table1
         )
      )
   )                                                      
)
效果如下:
222.jpg
444[1].jpg
555[1].jpg
222[1].jpg

0

主题

47

回帖

0

积分

列兵

积分
0
发表于 2011-7-3 22:35:04 | 显示全部楼层
支持,不过看不明白

0

主题

12

回帖

0

积分

列兵

积分
0
发表于 2011-7-3 22:40:28 | 显示全部楼层
呵呵
好东西啊!

0

主题

15

回帖

0

积分

列兵

积分
0
发表于 2011-7-3 22:48:04 | 显示全部楼层
高手,不过我也看不明白,是用来做什么的呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咨询QQ:1359218528|发帖须知!|Archiver|手机版|小黑屋|UG爱好者论坛 ( 京ICP备10217105号-2 )

GMT+8, 2025-3-6 18:08

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表