随笔分类 - Delphi
摘要:今天用LoadRunner对uniGUI的Standalone模式的程序进行了一次压力测试,程序采用三层模式,将应用服务器与Web服务器分离,由于条件限制,数据库、应用服务和Web服务都部署在同一条云服务器上,客户端使用IE浏览器,如下图:,云服务器配置:CPU 4核 内存8G 硬盘500G 带宽1...
阅读全文
摘要:EControl提供了运行期在窗体上进行界面设计的能力,手上的控件包是Delphi2010版的,在xe6下安装出现了一系列问题,弄了一晚上,总算搞定。1、编译zDesign14.bpl包,修改DSN.INC文件,增加宏定义:{$DEFINE VER210}确保按最高版本进行编译,基本上没有太多的语法...
阅读全文
摘要:uniGUI执行程序部署有3种形式1、ISAPI模式部署在IIS或Apache,程序编译为Dll形式,没有试,准备后续专门测试一下。2、标准执行文件模式将软件编译成一个独立的Exe文件,包括了WEB服务和业务内容,是uniGUI部署方式中最简单的一种。该方式最大特点是可以进行代码跟踪,同一般exe程...
阅读全文
摘要:在业务系统中常常使用回车键(Enter)替代Tab键完成焦点跳转,在uniGUI下,可以不用代码,直接使用TUniForm的NavigateKeys进行设置:其中Next和Prior决定了焦点向下一个和前一个跳转的按键Key = 13 表示EnterShiftStete 表示辅助键(Shift、Al...
阅读全文
摘要:uniGUI的文件下载由于TUniSession的存在而变得非常简单,最典型的一个例子就是将列表中的所有数据导出到Excel中。服务器上采用TMS FlexCel控件,先将数据集中的记录导入到Excel文件中,然后再将Excel文件内容输出到内存流中,最后通过TUniSession发送到客户端。代码...
阅读全文
摘要:uniGUI提供了一个文件上传控件TUniFileUpload,进行数据的导入就变得比较容易。首先将TUniFileUpload控件放置在窗体上,按下导入按钮后,执行TUniFileUpload的文件上传功能:procedure TfmeWebDBListEditBase.btnImportClic...
阅读全文
摘要:uniGUI的主窗体可以采用多页面方式进行管理,参考网上的资料,都是用TUniFrame + TUniPageControl 来实现,尝试了一下,效果还不错,如下图:用TUniFrame 能够使用继承模式,我采用了以下的类关系:TfmeWebEmbedBase : 所有嵌入Frame的基类,实现了与...
阅读全文
摘要:uniGUI下有专用的登录窗体类:TUniLoginForm,该类属于AppForm,构建代码为:function frmWebLogin: TfrmWebLogin; begin Result := TfrmWebLogin(dmWebMain.GetFormInstance(TfrmWebL...
阅读全文
摘要:最近在调试DataSnap的程序,突然发现TClientDataSet打不开了,报错为dsnap200.bpl的非法地址访问,如下图: 很是怪异,干脆新建工程,只有TSQLConnection、TSQLQuery、TDataSetProvider和TClientDataSet,如下图: 开ClientDataSet1的时候还是报上面的错误,运行期也报非法地址访问错误。开始还以为系统遭了...
阅读全文
摘要:uniGUI下的MessageDlg使用发生了变化,最大的特点是:1、成为了uniGUIForm的成员函数;2、变成过程(procedure)了,也就是没有返回值了,使得程序不再具有线程阻塞性。3、增加了一个传入回调函数的参数:callBack :TuniDialogCallbackAnonProc...
阅读全文
摘要:前几天做的demo今天启动后,浏览器打开页面后死活不显示窗体,找了半天原因才发现是360浏览器启动了兼容模式,改成极速模式后就正常了。有点晕....今天简单测试了TUniGUIServerModule的几个属性Title 应用程序名称,显示在页面标签上的LoadingMessage...
阅读全文
摘要:通过向导创建一个uniGUI应用服务器,工程中有三个文件:TUniServerModule = class(TUniGUIServerModule)TUniMainModule = class(TUniGUIMainModule)TMainForm = class(TUniForm)(1)采用了单例...
阅读全文
摘要:uniGUI出新版本了,0.97.0.1081,试用版0.97.0.1075,支持Delphi2006~XE7。下载地址是:http://www.unigui.com/downloads已在XE6上安装成功试用,目前在打折,用标准版价格购买专业版,$500,也就是人民币3200左右,还是可以考虑。购...
阅读全文
摘要:(6)GetGlyph和GetBaseline TFontGlyphManager是一个抽象类,在不同平台上的实现是不同的,以Windows为例,在FMX.FontGlyphs.Win.pas文件中定义了: DoGetGlyph的实现代码如下: DoGetBaseline的实现代码直接返回了FBas
阅读全文
摘要:(5)UpdateCharRec 该函数的源码分析如下: 其中2个重要的函数是: TFontGlyphManager.Current.GetGlyph TFontGlyphManager.Current.GetBaseline
阅读全文
摘要:(4)DoDrawLayout DoDrawLayout函数的源代码分析如下: 一个重要的函数数:AddOrGetChar,获取字符处理对象,调用了UpdateCharRec函数。
阅读全文
摘要:五、TTextLayoutNG 在FMX.TextLayout.GPU.pas文件中,实现了几个基础功能,其中: (1)渲染单元 在TextLayout中,每一批同字体和颜色的1~n个字符,组成一个最基本的渲染单元TGPURun,1~n个渲染单元构成一行(TGPULine),1~n行构成一帧(Fra
阅读全文
摘要:三、TControl FireMonkey重写了TControl的代码,实现了众多接口,如下图: 基类上实现了众多功能,这里不详细描述。 四、TEdit 编辑框是从TControl—TStyledControl继承下来的,并实现了众多接口,如下图: 从实现的接口可以看到,包括键盘、光标、文字处理等都
阅读全文
摘要:FireMonkey采用了与VCL不同的机制,很多基础类已经重新编写了,好在一如既往地提供了源代码,故此有机会学习一下。 一、图形引擎 FireMonkey采用了纯图形化技术解决可视化控件,而不是使用Windows控件作为基础。FireMonkey所使用的图形处理技术如下: Mac HD 使用 Qu
阅读全文
摘要:从10月份到重庆工作后,一直忙于工作,感兴趣的几个方面的技术都处于暂停。一个多月来,按照公司要求在做B/S集中式基卫产品的原型,主要是画原型图,开始是用Axure,弄来弄去感觉功能还是弱了些,尤其是不同Page之间的调用,大多少情况下需要借助全局变量进行操作,非常麻烦,另外界面也比较难看。看了网上的...
阅读全文