< type="text/css">
body {
background-color: #fff;
}
.baseInfo {
line-height: 28px;
border-bottom: 1px dotted #ccd3e4;
margin: 5px 10px 10px 0;
}
.baseInfo .bInfo {
width: 180px;
overflow: hidden;
white-space: nowrap;
float: left;
}
.baseInfo .layerInfo {
font-weight: bold;
text-align: right;
}
.layui-btn-group {
display: block;
}
#topicContent p img {
max-width: 80%;
display: block;
margin: 20px auto;
}
>
< type="text/css">
#pubFeedBack {
position: fixed;
_position: absolute;
right: 9px;
bottom: 25px;
width: 50px;
height: 50px;
font-size: 12px;
margin-bottom: 35px;
}
#backTop#callSurvey {
display: block;
width: 52px;
padding: 1px;
height: 52px;
line-height: 52px;
text-align: center;
color: #fff;
text-decoration: none;
}
#backTop {
display: none;
background: url(//src.gongkong.com/images/top01.png) no-repeat;
cursor: pointer;
position: absolute;
top: 0px;
}
#backTop:hover {
background: #ccc;
zoom: 1;
text-decoration: none;
color: #fff;
background: url(//src.gongkong.com/images/top02.png) no-repeat;
}
#backTop i {
display: block;
width: 25px;
height: 13px;
margin: 14px auto 8px;
background-position: -63px 0;
}
#callSurvey {
margin-top: 1px;
background: #3687d9;
}
#callSurvey:hover {
background: #66a4e3;
zoom: 1;
text-decoration: none;
color: #fff;
}
#callSurvey i {
display: block;
width: 26px;
height: 25px;
margin: 9px auto 0;
background-position: 0 0;
}
#callSurvey:hover i {
background-position: -30px 0;
}
>
< type="text/css">
.effect3 .info {
opacity: 0;
pointer-events: none;
-webkit-transition: all 0.35s ease-in-out;
-moz-transition: all 0.35s ease-in-out;
transition: all 0.35s ease-in-out;
position: fixed;
bottom: 0;
right: 0;
}
.ih-item .img {
position: fixed;
right: 10px;
bottom: 10px;
}
.effect3 a:hover .info {
opacity: 1;
-webkit-transform: translateX(-70px);
-moz-transform: translateX(-70px);
-ms-transform: translateX(-70px);
-o-transform: translateX(-70px);
transform: translateX(-70px);
}
>
< type="text/css">
.text-justify {
text-align: justify;
*text-justify: inter-ideograph;
}
.justify {
*
display: inline;
*
zoom: 1;
}
.justify span {
line-height: 18px;
font-size: 12px;
color: #333;
display: block;
float: left;
}
.justify-last {
width: 100%;
height: 0;
padding: 0;
overflow: hidden;
}
.ad_zt3 {
height: 60px;
overflow: hidden;
}
.ad_zt3 span {
overflow: hidden;
width: 257px;
line-height: 20px;
text-overflow: ellipsis;
padding-left: 5px;
font-family: "Arial";
}
.ad_zt3 div {
float: left;
height: 60px;
overflow: hidden;
}
.wz a {
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/*详情页图片放大*/
/*全屏显示大图*/
.opacityBottom {
width: 100%;
height: 100%;
position: fixed;
background: rgba(0,0,0,0.8);
z-index: 1000;
top: 0;
left: 0;
}
.none-scroll {
overflow: hidden;
height: 100%;
}
.bigImg {
max-width: 100%;
max-height: 100%;
position: fixed;
z-index: 10001;
}
>
< type="text/css">
.mMenu {
width: 70px;
line-height: 30px;
padding: 0;
margin-left: 10px;
font-size: 12px;
background-color: #fff;
border: 1px solid #c2dcf5;
padding-bottom: 1px;
margin-left: 0px;
}
.mMenu .mMbtn {
margin-left: 0px;
background-color: #008ab1;
}
>
< type="text/css">
.query_hint {
width: 225px;
height: 50px;
line-height: 55px;
padding: 0 20px;
position: fixed;
left: 53%;
margin-left: -250px;
top: 50%;
margin-top: -40px;
font-size: 15px;
color: #333;
font-weight: bold;
text-align: center;
background-color: #f9f9f9;
display: none;
}
.query_hint img {
position: relative;
left: -8px;
}
>
< type="text/css">
#saoma img {
display: block;
padding: 7px;
background: white;
border-radius: 6px;
}
>
最新版MCGS高级开发指南(四)
点击:1679 |
回复:0
tzzabc
关注
私信
< type="text/css">
#_TopicUserLeftList li {
padding-bottom: 5px;
font-family: Microsoft Yahei;
list-: none;
color: #535353;
}
>
精华:3帖
求助:0帖
帖子:20帖 | 119回
年度积分:0
历史总积分:197
注册:2001年8月09日
发表于:2002-03-27 18:28:00
楼主
3.10 定制设备属性设置对话框
MCGS中,大多数设备构件的属性设置在MCGS提供的基本属性页中就能完成,但有些比较复杂的设备,需要定制一些特定的属性窗口,才能完成设备属性的设置,如欧姆龙PLC需要首先定义设备通道,建立设备构件的通道和PLC内部继电器区的连接关系。
MCGS设备驱动接口SetDevPage,允许用户定制特定的设备属性对话框。当用户在基本属性页中,单击“设备内部属性”对应的按钮时,MCGS通过调用接口SetDevPage来打开设备的内部属性页。
定制设备属性设置对话框的步骤如下:
按照本章的前面各节所述,利用MCGS提供的高级开发,生成设备构件的源程序框架,假定工程名为MyDev;
在当前工程组中增加一个类型为Active DLL的工程,修改工程名为MyDevPg,修改类模块名为DevPageObj;
在MyDevPg工程中,增加一个窗体,命名为DevPageFrm;
在类模块DevPageObj中增加如下代码:
Public Function SetDevPage(SavObj As Object) As Long
Dim dlg As DevPageFrm
Set dlg = New DevPageFrm
dlg.Show 1
End Function
编译MyDevPg工程后,在工程属性中把工程该为二进制兼容模式;
建立工程MyDev对工程MyDevPg的引用,以便在接口SetDevPage操作MyDevPg中的对象;
在接口DevPage中增加如下程序代码:
dim dlg As DevPageObj
Set dlg = New DevPageObj
dlg. SetDevPage(SavObj)
重新编译工程MyDev和MyDevPg得到两个DLL文件:MyDev.dll和MyDevPg.dll;
这样,就完成了定制设备属性页的全部程序框架的工作,下一步根据设备的具体内容来编制设备属性设置窗口和保存设备的属性。MCGS高级开发指南中,提供有欧姆龙PLC驱动程序的全部原代码,可参考其中的具体编程细节。
< type="text/css">
.jialei {
width: 100%;
}
.jialei ul {
text-align: left;
padding: 0px;
}
.jialei ul li {
line-height: 22px;
list--type: none;
}
.jialei ul li a {
color: #333333;
}
.a_img_all {
display: none;
width: 100%;
height: 135px;
position: relative;
overflow: hidden;
}
.a_img_all img {
display: block;
max-width: 100%;
height: auto;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
>
相关主题
官方公众号
智造工程师
< type="text/css">
* {
margin: 0;
padding: 0;
box-sizing: border-box;
-webkit-box-sizing: border-box;
}
ul,
ol,
li {
list-: none;
}
img {
border: none;
}
.side-con {
position: fixed;
right: 10px;
bottom: 80px;
background: white;
border-radius: 8px;
box-shadow: 0 0 5px rgb(236193193);
z-index: 99;
}
.item-imgact {
display: none;
}
.side-con li {
position: relative;
width: 65px;
padding: 10px 0;
cursor: pointer;
font-size: 14px;
border-radius: 6px;
}
.side-con li:hover {
background: #5577bb;
color: #fff;
}
.side-con .item-img {
width: 35px;
display: block;
margin: 0 auto;
}
.side-con .item-imgact {
width: 35px;
margin: 0 auto;
}
.side-con li:hover .item-img {
display: none;
}
.side-con li:hover .item-imgact {
display: block;
}
.item-name {
display: block;
text-align: center;
}
.popsec {
position: absolute;
width: 160px;
left: -170px;
top: 0;
background: #fff;
box-shadow: 0 0 8px rgb(236193193);
text-align: center;
padding: 10px 0;
border-radius: 7px;
transition: .3s ease all;
transform: translateX(-20px) scale(0);
}
.popsec.act {
opacity: 1;
transform: translateX(0px) scale(1);
}
.popsec::after {
content: "";
position: absolute;
right: -20px;
top: 20px;
border-top: 10px transparent dashed;
border-left: 10px transparent dashed;
border-right: 10px transparent dashed;
border-bottom: 10px #fff solid;
transform: translateX(-15%) rotate(90deg);
}
.popsec2 {
top: -70px;
}
.popsec2::after {
top: 90px;
}
.popsec3 {
top: -140px;
}
.popsec3::after {
top: 160px;
}
.go-topcon {
position: fixed;
width: 55px;
padding: 15px 0;
text-align: center;
bottom: 20px;
right: 15px;
border-radius: 8px;
box-shadow: 0 0 5px rgb(236193193);
cursor: pointer;
background: white;
z-index: 99;
}
.go-topcon img {
transition: .5s ease all;
}
.go-topcon:hover img {
transform: rotate(360deg);
}
>
< type="text/css">
* {
margin: 0;
padding: 0;
}
ulli {
list--type: none;
}
a {
text-decoration: none;
}
.bbsadul6 li p {
margin: 10px 0;
}
.bbsadul6 li {
margin-top: 15px;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 14px;
}
>
< type="text/css">
.add-newicon {
cursor: pointer;
width: 24px;
vertical-align: middle;
margin-top: -3px;
margin-right: 5px;
}
* {
margin: 0;
}
ulli {
list--type: none;
}
.yqul {
padding-left: 10px;
}
.yqul li {
position: relative;
overflow: hidden;
padding: 5px 0;
font-size: 12px;
}
.yqul img {
width: 40px;
height: 40px;
float: left;
margin-right: 5px;
border-radius: 50%;
}
.hdp {
color: #666;
position: relative;
overflow: hidden;
margin-top: -5px;
}
.yqbt.ybt {
float: right;
margin-right: 10px;
cursor: pointer;
padding: 5px 10px;
color: #666;
border: 1px #666 solid;
}
.huidec {
float: left;
margin-top: 15px;
}
.yqbt:hover {
color: #00a0e9;
border: 1px #00a0e9 solid;
}
>