uniGUI试用笔记(十)】的更多相关文章

今天用LoadRunner对uniGUI的Standalone模式的程序进行了一次压力测试,程序采用三层模式,将应用服务器与Web服务器分离,由于条件限制,数据库.应用服务和Web服务都部署在同一条云服务器上,客户端使用IE浏览器,如下图: , 云服务器配置:CPU 4核 内存8G 硬盘500G 带宽10Mbps 客户端为笔记本电脑,i7 8核,内存16G,硬盘1T,客户端带宽20Mbps 先用LoadRunner纪录一组操作,包括操作员登录.打开结算单列表,大约900条纪录分页显示,点击第一条…
通过URL代入参数,在代码中读取,如: http://localhost:8501/?ServerPort=212&&ServerIP=192.168.31.12 在代码中可以通过: FServerIP := UniApplication.Parameters.Values['ServerIP']; FServerPort := UniApplication.Parameters.Values['ServerPort']; 呵呵,很简单哈…
TUniTreeView目前版本没有封装CheckBox功能,所以需要手工处理,幸好0.99版提供部分代码了,修改过程如下: 1.uniGUIAbstractClasses.pas单元中修改基类TUniTreeNode,增加Checked属性,代码如下: TUniTreeNode = class(TPersistent) private FChecked: Boolean; ... public property Checked : Boolean read FChecked write FCh…
今天尝试用uniGUI做Web服务器,调用应用服务器的WebService,遇到些问题记录下来备忘. 1.对WebService的调用同一般App程序,只是注意如果WebService的执行时间较长,会报超时错误,此时需要处理: (1)在DataModule上放一个THTTPRIO控件: (2)在数据模板创建时,设置THTTPRIO控件的HTTPWebNode属性的超时时间,代码如下: procedure TUniMainModule.UniGUIMainModuleCreate(Sender:…
最近研究了一下UniGUI的TuniDBGrid,记录一下免得忘记了. TuniDBGrid的重要属性包括: 1.列—TUniDBGridColumns和TUniDBGridColumn 每个列对象(TUniDBGridColumn)的重要属性包括: CheckBoxField : TUniCheckBoxField 列作为CheckBox操作的相关属性 属性 类型 说明 AutoPost Boolean 当用户点选CheckBox后,改变前端显示并根据该属性决定: True—立即自动提交到数据…
uniGUI执行程序部署有3种形式 1.ISAPI模式 部署在IIS或Apache,程序编译为Dll形式,没有试,准备后续专门测试一下. 2.标准执行文件模式 将软件编译成一个独立的Exe文件,包括了WEB服务和业务内容,是uniGUI部署方式中最简单的一种.该方式最大特点是可以进行代码跟踪,同一般exe程序调试一样,在Debug模式下程序调试非常方便.运行exe后就可以直接打开页面进行测试,通过任务栏上的图标可以打开服务监控页面,监控服务程序的运行情况,如下图: 3.Windows服务模式 将…
在业务系统中常常使用回车键(Enter)替代Tab键完成焦点跳转,在uniGUI下,可以不用代码,直接使用TUniForm的NavigateKeys进行设置: 其中Next和Prior决定了焦点向下一个和前一个跳转的按键 Key = 13 表示Enter ShiftStete 表示辅助键(Shift.Alt或Ctrl)按下状态,当二者结合就可以进行判断 一般用Tab或Enter代表跳转下一个控件,Shift+Tab或Shift+Enter代表返回上一个控件,Tab和Shift+Tab是系统缺省,…
uniGUI的文件下载由于TUniSession的存在而变得非常简单,最典型的一个例子就是将列表中的所有数据导出到Excel中.服务器上采用TMS FlexCel控件,先将数据集中的记录导入到Excel文件中,然后再将Excel文件内容输出到内存流中,最后通过TUniSession发送到客户端.代码如下: procedure TfmeWebDBListBase.ExportData; var i, rowindex, colindex: Integer; ms : TMemoryStream;…
uniGUI提供了一个文件上传控件TUniFileUpload,进行数据的导入就变得比较容易.首先将TUniFileUpload控件放置在窗体上,按下导入按钮后,执行TUniFileUpload的文件上传功能: procedure TfmeWebDBListEditBase.btnImportClick(Sender: TObject); begin inherited; { 执行文件上传 } fuMain.Execute; { 启动Mask,显示文件上传过程 } fuMain.ScreenMa…
uniGUI的主窗体可以采用多页面方式进行管理,参考网上的资料,都是用TUniFrame + TUniPageControl 来实现,尝试了一下,效果还不错,如下图: 用TUniFrame 能够使用继承模式,我采用了以下的类关系: TfmeWebEmbedBase : 所有嵌入Frame的基类,实现了与主窗体的交互和控制,包括窗体的关闭等 TfmeWebDBListBase:   与数据集列表操作相关的基类,实现了数据集的开启.数据导出与打印等 TfmeWebDBListEditBase:与数据…
uniGUI下有专用的登录窗体类:TUniLoginForm,该类属于AppForm,构建代码为: function frmWebLogin: TfrmWebLogin; begin Result := TfrmWebLogin(dmWebMain.GetFormInstance(TfrmWebLogin)); end; 系统中如果存在登录窗体,则首先显示该窗体,当登录窗体返回不同ModuleResult值时,代表不同含义: ModalResult := mrOk; //表示登录成功,显示主窗体…
uniGUI下的MessageDlg使用发生了变化,最大的特点是: 1.成为了uniGUIForm的成员函数: 2.变成过程(procedure)了,也就是没有返回值了,使得程序不再具有线程阻塞性. 3.增加了一个传入回调函数的参数:callBack : TuniDialogCallbackAnonProc,该类型定义在uniGUIDialogs单元中: TuniDialogCallbackAnonProc = procedure (Sender : TComponent; Res : Inte…
前几天做的demo今天启动后,浏览器打开页面后死活不显示窗体,找了半天原因才发现是360浏览器启动了兼容模式,改成极速模式后就正常了.有点晕.... 今天简单测试了TUniGUIServerModule的几个属性 Title   应用程序名称,显示在页面标签上的 LoadingMessage  载入ExtJS库时显示的信息 UnavailableErrMsg   服务器不可用时显示的信息 MainFormDisplayMode  主窗体的显示模式,可选项包括: mfWindow 窗体模式,有窗体…
通过向导创建一个uniGUI应用服务器,工程中有三个文件: TUniServerModule = class(TUniGUIServerModule) TUniMainModule = class(TUniGUIMainModule) TMainForm = class(TUniForm) (1)采用了单例模式,所有客户端共用一个TUniServerModule实例对象,从下面代码可以看出: function UniServerModule: TUniServerModule; implemen…
uniGUI执行程序部署有3种形式 1.ISAPI模式 部署在IIS或Apache,程序编译为Dll形式,没有试,准备后续专门测试一下. 2.标准执行文件模式 将软件编译成一个独立的Exe文件,包括了WEB服务和业务内容,是uniGUI部署方式中最简单的一种.该方式最大特点是可以进行代码跟踪,同一般exe程序调试一样,在Debug模式下程序调试非常方便.运行exe后就可以直接打开页面进行测试,通过任务栏上的图标可以打开服务监控页面,监控服务程序的运行情况,如下图: 3.Windows服务模式 将…
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格式如:2015075期开奖号码:6,11,13,19,21,32, 蓝球:4 直接用python源码写的抓取双色球最新开奖数据的代码,没使用框架,直接用字符串截取的方式写的,经过测试速度还是很快的 使用pyspider可以轻松分析出需要的内容,不过需要部署框架对只抓取特定内容的小应用来说也没多大必要…
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9394465 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 在这个教程中主要内容是2D游戏,关于3D游戏,雾央也还在努力学习之中,等以后有时间,一定会把自己学到的知识分享给大家,所以这一节中主要讲解的就是2D游戏中的障碍物判定了,4…
欢迎转载请说明出处:http://blog.csdn.net/yfqnihao/article/details/8271415 前面一节,我们做了一个简单的实验,来说明什么是策略文件,在文章的最后,也顺带的讲了一下什么是策略,还有策略的作用. 为了引出另外一个很重要的概念ProtectionDomain(保护域),所以我们还是要先来回顾一下什么是策略.                         首先,什么是策略,今天的东西纯粹是比较概念的.当然,如果你读过笔记九,今天的东西,就真的是sos…
本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9712321 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 这两天不少朋友留言提出了一些问题,但是由于雾央家里网络出了点问题,所以这两天都上不了网,没有及时回答大家,关注了雾央微博的朋友就知道这件事,抱歉了. 另外,欢迎转载文章,…
本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9475979 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 一.前言 在这里雾央先解释一下战争迷雾的概念,以下内容引自维基百科:      战争迷雾(Fogof War),在传统意义上是指战争中由于对敌人情报不清楚而无法确认除友军…
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 moveit是书的最后一章,由于对机械臂完全不知,看不懂. Learning ROS forRobotics Programming Second Edition学习笔记(十)indigo Gazebo rviz slam navigation --$ roslaunchchapter9_tutorials chapter9_configuration_…
python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www.jetbrains.com/pycharm/download/ PyCharm首页.文档和下载 - Python集成开发环境 - 开源中国社区http://www.oschina.net/p/pycharm=============================================修改…
在kbmMW 5.06.20试用笔记中遇到的问题,在这个版本中,基本都解决了.但还是发现修正后存在的小问题及新问题: 1.Resolve返回值错误 当提交的ClientQuery是执行一条sql语句,如Insert,当发生错误时,如主键重复,则Resolve无法返回正确的结果.具体情况就是在客户端显示异常信息. q1.Query.Text:='Insert into t1 (fid,fname) values (''1000'',''aaaa'')'; //q2.Query.Text:='Ins…
python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法 同一台机器同时安装 python2.7 和 python3.4不会冲突.安装在不同目录,然后把python34目录下的python.exe和pythonw.exe重命名为python3.exe和pythonw3.exe环境变量配置:D:\Python27\;D:\Python27\Scripts;D:\Python34\;D:\Python34\Scripts; 在cmd命令行里面输入p…
python3.4学习笔记(十六) windows下面安装easy_install和pip教程 easy_install和pip都是用来下载安装Python一个公共资源库PyPI的相关资源包的 首先安装easy_install 下载地址:https://pypi.python.org/pypi/ez_setup 解压,安装方法cmd进入到对应目录下,执行命令:python ez_setup.py------------------------------------C:\Users\Admini…
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),print(string,end='') Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串split()方法语法:str.split(str="", num=string.count(str)).参数str -- 分隔符,默认为空格…
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(age=10 * 24 * 60 * 60)def index_page(self, response): for each in response.doc('a[href^="http"]').items(): matchObj = re.match( r'(.*).html', each…
python3.4学习笔记(十) 常用操作符,条件分支和循环实例 #Pyhon常用操作符 c = d = 10 d /= 8 #3.x真正的除法 print(d) #1.25 c //= 8 #用两个斜杠实现2.x默认的地板除法(整数相除只取整数) a = 3 ** 2 # 3 的 2 次方 print(a) print(not 0)#True , 0 表示Flase,其他数字为True print(not 2)#Flase #运算符优先级,幂运算 **,正负号 +x -x 算术操作符 * /…
1.kbmMWConfiguration自动备份配置文件的问题还没有修正. 下面是以前写过的内容,再一次在新闻组中提出这个问题: kbmMW提供一个强大的配置信息管理对象,前期译过这个对象的介绍,在使用过程中,发现一个问题, 就是TkbmMWCustomConfigurationStorage.BackupMaxCount属性,当设置为0时,也会生成配置信息的备份文件,在最新的kbmMW 5.05.11版本中,每运行一次就生成一个配置文件,对此,修正了代码. 打开单元文件 kbmMWGlobal…
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使用:=分割,而在python中使用in分割.而python中range是函数,不是关键字. package main import "fmt" func main() { nums := []int {10, 20, 30} sum := 0 for i, num := range num…