EDA365电子论坛网

标题: 传一个自己写的窗体转换的EXE上来,顺便问几个问题,希望有人帮我解答下,谢谢 [打印本页]

作者: gpxknk    时间: 2012-8-19 20:31
标题: 传一个自己写的窗体转换的EXE上来,顺便问几个问题,希望有人帮我解答下,谢谢
本帖最后由 gpxknk 于 2012-8-26 19:09 编辑

对于XML窗体,其实已经有这么一个转换工具了,只不过不符合我的要求,还有那个格点不准,不过我也只是现在突然想写点skill,
于是写了这么个东西,也没有认真的想过其它的,

功能:对Koda生成的XML窗体转换成skill能用的窗体[skill代码]
    使用时请将网格大小设置成横向*纵向:7*11
    转换时,对于窗体中的Caption作了中文支持,但Name请不要使用中文.
    对于图片控件:
      图片路径也作了中文支持,没有测试skill对其的支持性,在skill中自动添加图片路径,窗体生成之后便给于恢复.
      图片中默认是当前XML窗体中添加的图片路径,若要修改成固定路径请指定路径,
      若不自动处理图片路径,则直接使用系统当前指定的路径

对于附件中大于100K的都是打包了程序运行时所用到的一些文件,在系统目录中不存在这些文件时释放并注册.

在这我想问的是
1.skill窗体到底支持多行文本框不?
2.还有skill函数中有访问剪切板的不? 以前试了下调用EXE/DLL之类的,可以使用但加载太慢了,


对于langexie 所说的问题,我再上传了一个打包了运行环境的上来[附件_2],一般情况我都不这样做,更不喜欢安装式的,这个DLL等资源已经包含在了EXE里面,如果系统中不存在相关文件时就自动解压并注册DLL等,我这里没有试过,不知道会不会有其它情况发生.

再次修改一些问题,修正了部分控件只有Display,没有Lable的情况及TAB多页显示的问题[附件_3],

1.png (45.81 KB, 下载次数: 1)

1.png

skill窗体转换工具.rar

14.15 KB, 阅读权限: 9, 下载次数: 16, 下载积分: 贡献 -30 , 威望 -10

skill窗体转换器_2.rar

1.18 MB, 下载次数: 18, 下载积分: 贡献 -30 , 威望 -10

skill窗体转换器_3.rar

1.17 MB, 下载次数: 13, 下载积分: 贡献 -30 , 威望 -10


作者: XYX365    时间: 2012-8-20 08:01
1.skill窗体到底支持多行文本框不?
這個可以,是不是類似下圖

作者: langexie    时间: 2012-8-20 08:24
感谢楼主分享!下载下来试了一下,点打开并转换选择之后没反应呀?
作者: gpxknk    时间: 2012-8-20 12:42
XYX365 发表于 2012-8-20 08:01
1.skill窗体到底支持多行文本框不?
這個可以,是不是類似下圖

您所在的用户组无法查看...
悲剧啊.我看不到.能用文字吗?
作者: gpxknk    时间: 2012-8-20 12:45
langexie 发表于 2012-8-20 08:24
感谢楼主分享!下载下来试了一下,点打开并转换选择之后没反应呀?

没反应?怎么会呢.我这没问题啊.点击就弹出一个打开文件对话框啊,也没有加其它特殊控件,应该不存在没有运行库的问题吧
作者: langexie    时间: 2012-8-20 13:11
gpxknk 发表于 2012-8-20 12:45
没反应?怎么会呢.我这没问题啊.点击就弹出一个打开文件对话框啊,也没有加其它特殊控件,应该不存在没有运行 ...

没看到转出的结果呢?
作者: gpxknk    时间: 2012-8-20 13:54
本帖最后由 gpxknk 于 2012-8-20 13:59 编辑
langexie 发表于 2012-8-20 13:11
没看到转出的结果呢?


结果就是一个文件啊,你保存的是什么路径和文件名?代码我是没有作过优化,但也不至于没有结果,毕竟EXE也是经过多次调试的.
作者: langexie    时间: 2012-8-20 14:02
gpxknk 发表于 2012-8-20 13:54
结果就是一个文件啊,你保存的是什么路径和文件名?代码我是没有作过优化,但也不至于没有结果,毕竟EXE也是 ...

只有打开并转换,没有保存呀?路径在哪里填呢?
作者: gpxknk    时间: 2012-8-20 14:15
langexie 发表于 2012-8-20 14:02
只有打开并转换,没有保存呀?路径在哪里填呢?

大哥,您不要打击我了,这个按钮会弹出两个对话框,一个是打开文件,一个是保存文件.转换的时间很短.所以你一打开文件,保存的对话框就出来了.
作者: langexie    时间: 2012-8-20 14:37
gpxknk 发表于 2012-8-20 14:15
大哥,您不要打击我了,这个按钮会弹出两个对话框,一个是打开文件,一个是保存文件.转换的时间很短.所以你一 ...

我这边真的没有弹出另一个保存窗口呢,只有一个打开文件窗口,我的系统是WinXP SP3!呵呵~楼主是不是可以把它们分开,做成可以填的那种呢?
作者: gpxknk    时间: 2012-8-20 14:47
langexie 发表于 2012-8-20 14:37
我这边真的没有弹出另一个保存窗口呢,只有一个打开文件窗口,我的系统是WinXP SP3!呵呵~楼主是不是可以 ...

好了,这个关于这个转换工具的问题不作讨论了,有问题加Q说好了,这个是在XP下编译的,我现在用的是XP和WIN7-X64,都没有问题,至少你说的手动填写?不用了吧,毕竟保存对话框就可以指定路径和文件名.
作者: langexie    时间: 2012-8-20 15:24
本帖最后由 langexie 于 2012-8-20 16:00 编辑
gpxknk 发表于 2012-8-20 14:47
好了,这个关于这个转换工具的问题不作讨论了,有问题加Q说好了,这个是在XP下编译的,我现在用的是XP和WIN7- ...


那再请问一下楼主窗体文件kxf文件是用哪个软件制作的?
或者是楼主的程序应该使用静态编译,这样关连的文件来一起打包到EXE中,我又试过别的电脑说少一些文件,打不开呢!
作者: langexie    时间: 2012-8-20 16:34
gpxknk 发表于 2012-8-20 16:30
http://www.autoitscript.com/fileman/users/lookfar/formdesign.html
Koda 1.7.08
如果你之前打开的不 ...

我使用的也是与你一样的软件,是不是没有进行静态编译而少了什么文件呢?
作者: gpxknk    时间: 2012-8-21 15:16
langexie 发表于 2012-8-20 16:34
我使用的也是与你一样的软件,是不是没有进行静态编译而少了什么文件呢?

我打包了相关文件重新传了一个上来,麻烦你试试看,同时增加了工具对中文Lable的支持
作者: langexie    时间: 2012-8-21 17:04
本帖最后由 langexie 于 2012-8-21 17:09 编辑
gpxknk 发表于 2012-8-21 15:16
我打包了相关文件重新传了一个上来,麻烦你试试看,同时增加了工具对中文Lable的支持




Component 'ComDlg32.OCX' or one of its dependencies not correctly registered:a file is missing or invalid
有一台电脑出现以上提示!
另一台电脑还是以前样子打不开第二个保存对话框呢!
楼主可以使用多台电脑试试呢! 好了也能让我分享用用呢,呵呵!
作者: gpxknk    时间: 2012-8-21 17:36
本帖最后由 gpxknk 于 2012-8-21 17:38 编辑
langexie 发表于 2012-8-21 17:04
Component 'ComDlg32.OCX' or one of its dependencies not correctly registered:a file is missi ...


当时选择用VB6.0来写这个就是认为其不会出现那么多问题,在我这里的所有电脑都可以正常运行,VC有点麻烦,C#给人的感觉太慢了
如果用VBS来写的话肯定是可以运行,但没有界面,还有一种方法就是用网页来弄这个....要不你自己注册一下那个OCX,我这里不管WIN7 还是XP都没有问题,这些电脑是没有安装编程软件的,这个还真烦人啊
你把你的那个窗体文件贴上来吧,在我这边试一下,即然你的都已经打开了第一个对话框证明它没有问题,所以很是怀疑你那个窗体文件...
对了,我这里是看不到附件的,如果要上传到论坛的请就请上传到其它没有限制的论坛上
作者: langexie    时间: 2012-8-21 23:34
gpxknk 发表于 2012-8-21 17:36
当时选择用VB6.0来写这个就是认为其不会出现那么多问题,在我这里的所有电脑都可以正常运行,VC有点麻烦, ...

终于可以了!去网上找'ComDlg32.OCX' 这个文件下载注册到系统里面才行呢,有些人说可以在做文件时一起把这个文件打包的!
作者: gpxknk    时间: 2012-8-22 08:35
这个文件我已经打包在里面了,这个就是公用对话框的,本来那个EXE文件只有64K,现在都2M多了,不过不管怎样,可以用就好了
作者: langexie    时间: 2012-8-22 14:33
gpxknk 发表于 2012-8-22 08:35
这个文件我已经打包在里面了,这个就是公用对话框的,本来那个EXE文件只有64K,现在都2M多了,不过不管怎样,可以 ...

楼主写这个程序一定费了很多心神,呵呵~深有体会写个程序不容易呀!
经测试,能支持中文Lable这一点很好,不用再花时间去转码了,不知楼主是如何办到的?我只知这转码可以在SKILL里去转,单独VB程序就不知如何进行了;
另外我发现还有几个点不是很完美:
type="TATab"时,如果有几个"TTabSheet",这时转出来的只有一个"TTabSheet";
type="TATreeView"时,"Height" 转出来的Form会比实际高一些;
type="TAList"时,"Height" 转出来的Form会比实际高一些;
type="TACombo"时,"Width" 转出来的Form会比实际长一些;

作者: gpxknk    时间: 2012-8-22 15:24
langexie 发表于 2012-8-22 14:33
楼主写这个程序一定费了很多心神,呵呵~深有体会写个程序不容易呀!
经测试,能支持中文Lable这一点很好 ...

忘了告诉你了,设计时网格一定要设置成横向7,纵向11,这是skill窗体控件所决定的

对于有些控件是作了精确的调整,不过有些还没有做,还有就是有些控件原始坐标就跟skill不一样,长相也有出入,除非重做窗体设计软件

还有就是那个TAB在KXL窗体上可以设置几页吗?我好像看到不能,所以就...


作者: langexie    时间: 2012-8-22 15:37
gpxknk 发表于 2012-8-22 15:24
忘了告诉你了,设计时网格一定要设置成横向7,纵向11,这是skill窗体控件所决定的

对于有些控件是作了精确 ...

多谢提点!TATab是可以做多页的,在Koda FormDesiger里,在生成的TATab控件上面右键New Page即可生成多页了!
格式是这样:
        fprintf(f_form "TABSET \"tab\"\n")
        fprintf(f_form "OPTIONS tabsetDispatch\n")
        fprintf(f_form "FLOC 23 53\n")
        fprintf(f_form "FSIZE 14 10\n\n")
        fprintf(f_form "TAB \"shee1\"\n\n")
        fprintf(f_form "ENDTAB\n\n")
        fprintf(f_form "TAB \"shee2\"\n\n")
        fprintf(f_form "ENDTAB\n\n")
        fprintf(f_form "ENDTABSET\n\n")
作者: gpxknk    时间: 2012-8-22 15:42
langexie 发表于 2012-8-22 15:37
多谢提点!TATab是可以做多页的,在Koda FormDesiger里,在生成的TATab控件上面右键New Page即可生成多 ...

好,有空的时候我会去更新,因为我以前没有用到过,所以不知道有这个..{:soso_e113:}
作者: gpxknk    时间: 2012-8-23 10:26
langexie 发表于 2012-8-22 15:37
多谢提点!TATab是可以做多页的,在Koda FormDesiger里,在生成的TATab控件上面右键New Page即可生成多 ...

我修改了下,参加了对多TAB的支持,但发现了一个问题,skill窗体中的标题很长,
tabset_def:
        TABSET [label]
        [OPTIONS tabsetOptions]
        FLOC x y
        FSIZE w h
        {tab_def}
        ENDTABSET
tab_def:
        TAB "<display>" [<label>]
        [{text_def}]
        [{group_def}]
        [{field_def}]
        [{grid_def}]
        ENDTAB

这个并没有控制TAB标题区域长度的,是这样不?如果允许这个问题,那我就传上来
作者: langexie    时间: 2012-8-23 10:56
gpxknk 发表于 2012-8-23 10:26
我修改了下,参加了对多TAB的支持,但发现了一个问题,skill窗体中的标题很长,
tabset_def:
        TABSET [labe ...

TAB的长度应该是自动的,是根据TAB的标题长度自动长度!就是这样的了!
作者: gpxknk    时间: 2012-8-23 11:34
langexie 发表于 2012-8-23 10:56
TAB的长度应该是自动的,是根据TAB的标题长度自动长度!就是这样的了!

哦 那我就不管这个了,传了"_3",
作者: langexie    时间: 2012-8-23 14:20
本帖最后由 langexie 于 2012-8-23 14:27 编辑

1.skill窗体到底支持多行文本框不?

多行文本框可以如此:
第一种,固定信息:
        fprintf(f_form "GROUP \"\327\3511\" \"GROUP1\"\n")
        fprintf(f_form "GLOC 5 45\n")
        fprintf(f_form "FSIZE 14 10\n")
        fprintf(f_form "ENDGROUP\n\n")

        fprintf(f_form "TEXT \"Pleace input the imformation in here!\" \"Label11\"\n")
        fprintf(f_form "FLOC 6 47\n" )
        fprintf(f_form "FSIZE 12 6\n")
        fprintf(f_form "ENDTEXT\n" )
       

第二种,实时显示信息:
        fprintf(f_form "GROUP \"\327\3511\" \"GROUP1\"\n")
        fprintf(f_form "GLOC 5 45\n")
        fprintf(f_form "FSIZE 14 10\n")
        fprintf(f_form "ENDGROUP\n\n")

        fprintf(f_form "TEXT \n" )
        fprintf(f_form "FLOC 6 47\n" )
        fprintf(f_form "INFO TextInfo\n" )
        fprintf(f_form "FSIZE 12 6\n")
        fprintf(f_form "ENDTEXT\n" )
        生成Form了以后再通过axlFormSetField实时显示,这时还可以设定字体颜色
        axlFormSetField(form "TextInfo" "Pleace input the imformation in here!")
        axlFormColorize(form "TextInfo" 'text 'blue )
       



作者: gpxknk    时间: 2012-8-23 14:47
langexie 发表于 2012-8-23 14:20
1.skill窗体到底支持多行文本框不?

多行文本框可以如此:

感谢langexie的回复,不过这个不是TextBox,我需要的是多行输入文本框,不是Lable的自动换行.

对于skill窗体以前也知道支持字体颜色,只是没有做进去,怕设计器与skill窗体颜色兼容性不好.
skill以注重功能实用性为主,特殊显示都是直接用image显示,以后看看如果可行也可以加进去.
不过最完美的方案是写一个skill专用的窗体设计程序.{:soso_e113:}

作者: langexie    时间: 2012-8-29 08:54
楼主,转换程序还发现有两个地方需改进一下!
1、当标题中有字符“<”“>” “"”等三个字符出现时程序会无法正常识别出
2、当TAB的TabSheet中包含Botton等等控件时,无法正确转换出!
作者: chouqiu    时间: 2012-8-29 13:41
纠结不懂软件
作者: gpxknk    时间: 2012-8-31 13:38
本帖最后由 gpxknk 于 2012-8-31 13:57 编辑
langexie 发表于 2012-8-29 08:54
楼主,转换程序还发现有两个地方需改进一下!
1、当标题中有字符“” “"”等三个字符出现时程序会无法正常 ...


哦,失误,忘了XML的特殊字符...
但在FORM里面我真不知道的转义符是什么,[\"] [""] [\042]等都没用,还是FORM里就不能出现双引号["]
最后还是用两个单引号代替吧,反正也看不太出来.
最近忙了点,现在更新到1.3
修正了对XML特殊字符的支持,及TAB的问题,

TREEVIEW应该也有问题,因为我用得少,对FORM不是太了解,没有深入研究,问题还不太清楚....

抱歉,您的帖子从发表到现在已超过 10080 分钟,不能再进行编辑

原帖不能修改了,附件传这里来了

skill窗体转换器_1.3.rar

1.17 MB, 下载次数: 10, 下载积分: 贡献 -30 , 威望 -10


作者: langexie    时间: 2012-8-31 14:37
本帖最后由 langexie 于 2012-8-31 14:38 编辑
gpxknk 发表于 2012-8-31 13:38
哦,失误,忘了XML的特殊字符...
但在FORM里面我真不知道的转义符是什么,[\"] [""] [\042]等都没用,还是 ...


请教一下楼主,在楼主程序中,中文是如何转换成Cadence用的编码呢?是不是有转码表?因为SKILL程序再转到繁体系统中使用时,需再转一次码!我想做一个自动转换SKILL程序中的中文代码!以便繁简体系统中使用!
作者: gpxknk    时间: 2012-8-31 15:44
本帖最后由 gpxknk 于 2012-8-31 15:45 编辑
langexie 发表于 2012-8-31 14:37
请教一下楼主,在楼主程序中,中文是如何转换成Cadence用的编码呢?是不是有转码表?因为SKILL程序再转 ...


没有明白你的意思,这个转换是支持繁体的,干吗还要有一个转换,
转换的原理很简单,,没有使用过繁体系统,,不了解,,有什么问题么?
GBK汉字采用双字节表示,总体编码范围为8140-FEFE
中 華: D6 D0   C8 41
中 华: D6 D0   BB AA

中 華: \326\320  \310\101
中 华: \326\320  \273\252

十六进制 八进制
D6            326
D0            320
C8            310
41            101
BB            273
AA            252

作者: langexie    时间: 2012-8-31 16:25
本帖最后由 langexie 于 2012-8-31 17:05 编辑
gpxknk 发表于 2012-8-31 15:44
没有明白你的意思,这个转换是支持繁体的,干吗还要有一个转换,
转换的原理很简单,,没有使用过繁体系统, ...


我有试过,在Win XP繁体系统中Cadence只认大五码(big5)呢!

楼主,转换时能不能GBK和大五码都转换出来,大五码备注在旁边呢!
作者: gpxknk    时间: 2012-8-31 20:57
langexie 发表于 2012-8-31 16:25
我有试过,在Win XP繁体系统中Cadence只认大五码(big5)呢!

楼主,转换时能不能GBK和大五码都转 ...

任何文字在计算机里都只是编码加字体库,系统是怎样的,它就是怎样的;就像同一份文件,用不同的规则解码就得到了不同的信息.

试问,在繁体系统中,因为工具你是在简体系统里进行转换的,而转换后就是GBK的编码,然后你在繁体系统里运行SKILL,因系统编码不是GBK
假设系统是用BIG5去解GBK码,这样就出错了,

你说的是这个意思吗?


作者: langexie    时间: 2012-9-1 00:24
gpxknk 发表于 2012-8-31 20:57
任何文字在计算机里都只是编码加字体库,系统是怎样的,它就是怎样的;就像同一份文件,用不同的规则解码就得 ...

是的呢!繁体系统里是使用了BIG5编码,能不能简体系统里就把GBK转换成BIG5码呢?然后再转成Cadence用的8进制,只是这时显示的字是乱码而已!输出SKILL文件时,就备注在旁边备用。在网上找了一下,有关于GBK转换成BIG5  C语言原码!VB应该也有!
作者: gpxknk    时间: 2012-9-3 17:09
本帖最后由 gpxknk 于 2012-9-3 17:13 编辑
langexie 发表于 2012-9-1 00:24
是的呢!繁体系统里是使用了BIG5编码,能不能简体系统里就把GBK转换成BIG5码呢?然后再转成Cadence用的8进 ...


v1.4
添加一项功能,在简体系统中将SKILL中文编码成BIG5

此时中文在简体系统中文将会是乱码[BIG5],在繁体系统中显示成繁体

不过此工具依旧是简体系统中运行的程序.未去考虑繁体,,,因我们使用的是GBK,虽然它也支持繁体,

  GBK->BIG5

  简体->繁体
不是同一个意思

Tool_v1.4.jpg (20.26 KB, 下载次数: 1)

Tool_v1.4.jpg

skill窗体转换器_5.rar

1.17 MB, 下载次数: 22, 下载积分: 贡献 -30 , 威望 -10

v1.4


作者: 叫布什动我啊    时间: 2012-9-5 12:22
厉害了。。。。。
作者: langexie    时间: 2012-9-5 16:02
gpxknk 发表于 2012-9-3 17:09
v1.4
添加一项功能,在简体系统中将SKILL中文编码成BIG5

呵呵~楼主很强大!太感谢了!试过了,繁体系统中能正确显示!能否SKILL文件中简繁都保留,繁体备注在另一行!
作者: dzkcool    时间: 2012-9-9 13:15
我试了一下,随便做了一个窗体,但是转换程序一打开窗体文件就出错了,如图,是不是程序还有问题?





欢迎光临 EDA365电子论坛网 (https://eda365.com/) Powered by Discuz! X3.2