
uniGUI之Web应用程序框架
文章平均质量分 56
uniGUI 功能为开发有状态的 Web 应用程序 ( 即 spa) 提供了一整套可视化控件。 开发过程与开
发常规 VCL 应用程序非常相似。 uniGUIWeb 应用程序可以直接在 RAD 工作室 IDE 中运行和调试 , 这使得开发过程变得非常简单和简单。
大龙软件研发
让代码不再有难度。
展开
-
如何实现UniDBGrid下字段显示按钮
可以采用js附加处理,settext来实现?还有一个办法,就是使用控件《BMUniDbGrid》,效果如下图:如何实现UniDBGrid下字段自动换行可以设置Column字段属性,DisplayMemo为True如何结合kbmMW首先建立Server,专门的exe;客户端调用的写法:在ServerModule中放置kbmMWTCPIPIndyClientTransport1、kbmMWClientConnectionPool1;在MainModule中放置kbmMWSimpleClien原创 2021-01-06 18:05:13 · 571 阅读 · 0 评论 -
uniDBGrid实行多选表格行
uniDBGrid本身是支持checkBox多选的,但必须是Boolean的字段才行,只要是Boolean类型的字段,显示在uniDBgrid中就是带CheckBox的界面。网上大多数人推荐的方法是在构建查询串的时候,在查询串中添加一个虚拟的Boolean字段来实现多选记录。但一个系统必然有很多的查询串,都要去加个虚拟字段,维护上太麻烦。可以利用TclientDataSet的计算字段来实现多选,而且不需要修改查询串。首先在设计界面添加以下组件设置Query1的SQLConntcion属性为SQLCon原创 2021-01-05 17:59:18 · 644 阅读 · 0 评论 -
界面上的快捷方式
在业务系统中常常使用回车键(Enter)替代Tab键完成焦点跳转,在uniGUI下,可以不用代码,直接使用TUniForm的NavigateKeys进行设置:其中Next和Prior决定了焦点向下一个和前一个跳转的按键Key = 13 表示EnterShiftStete 表示辅助键(Shift、Alt或Ctrl)按下状态,当二者结合就可以进行判断一般用Tab或Enter代表跳转下一个控件,Shift+Tab或Shift+Enter代表返回上一个控件,Tab和Shift+Tab是系统缺省,我们只需要原创 2021-01-05 17:55:42 · 275 阅读 · 0 评论 -
UniGUI的TUniLoginForm窗口自定义背景色
uniGUI的TUniLoginForm类创建的登录窗口默认是不带颜色,可以自定义css风格来改变背景颜色。一般是通过在UniServerModule中,在CustcomSS属性中,修改extjs的css定义来实现,修改登录窗口的背景颜色可以修改 .x-body 的定义来实现,如:{background-color: rgb(11, 80, 184);margin: 0;}类似的,还可以给UniLoginForm的背景添加上背景图案等个性化的风格。 uniGUI显示Warning: Form原创 2021-01-05 17:54:27 · 552 阅读 · 0 评论 -
fileupload的问题
fileupload的问题fileupload的问题 可以通过 htmlscript加载自定义代码来实现我是通过htmlscript加载swf实现的 批量上传 文件夹上传unigui unidbgrid显示列的合计值方法一:procedure TfrmClient.UniDBGrid1ColumnSummaryResult(Column: TUniDBGridColumn;GroupFieldValue: Variant; Attribs: TUniCellAttribs; var Resul原创 2021-01-05 17:54:00 · 217 阅读 · 0 评论 -
UniGUI如何实现登陆页面
可以使用自带的LoginForm,也可以使用FormUniGUI 设置超时设置:AjaxTimeOut,建议60000SessionTimeOut,建议900000从ASP网站登录到UniGUI中提交获取:UniApplication.Parameters.Values[‘UserName’]UniApplication.Parameters.Values[‘UserPwd’]UniGUI数据库初始化要放到MainModule里数据库初始化要放到MainModule里,原创 2021-01-05 17:51:51 · 1457 阅读 · 0 评论 -
UniGUI TreeView处理
节点处理procedure TFrameTree.ExpandTree(PNode: TUniTreeNode);var Str, DirName: String; Qry: TAdoQuery; DirID,Fid: Integer; Node: TUniTreeNode;begin//展开父节点Fid := GetDirID(FNode);Str := ‘select * from DocDir where Del=0 and fid=’+IntToStr(Fid);Qry := dm..原创 2021-01-05 17:50:53 · 442 阅读 · 0 评论 -
利用UniGUI中的TUniPageControl实现多页面
procedure TFrmMain.OpenForm(Caption,FormClassName: String);var i: Integer; Sheet: TUniTabSheet;beginfor i:=0 to pcMain.PageCount-1 dobeginif pcMain.Pages[i].Caption=Caption thenbeginpcMain.ActivePageIndex := I;exit;end;end;Sheet1 := TUniTabSheet原创 2021-01-05 17:50:11 · 608 阅读 · 0 评论 -
在UniGUI的UniHtmlFrame中不能使用的HTML标签
在UniGUI的UniHtmlFrame中不能使用的HTML标签UniHtmlFrame有一个HTML属性,可显示HTML文档,但又有一些限制:1). 对外部文件,如JavaScript、css文档,不能使用原创 2021-01-05 17:49:21 · 389 阅读 · 0 评论 -
UniGUI中控件类名的变化
今天一个朋友在使用UniGUI碰到了问题,他要遍历窗体上的控件,然后根据类名进行相应的控制。原来的程序为:procedure TmainForm.Fj_component;var i: Integer;beginfor i:=0 to MainForm.ComponentCount-1 dobeginUniMemo1.Lines.Add(MainForm.Components[i].ClassName);if MainForm.Components[i] is TUniBitBtn then原创 2021-01-05 17:48:57 · 233 阅读 · 0 评论 -
UniGUI中如果获得Session情况
在ServerModule单元中有如下属性,可以使用ServerModule.UniServerModule.ServerStats.ActiveSessionsServerModule.UniServerModule.ServerStats.MaxSessions 【最大会话】ServerModule.UniServerModule.ServerStats.BytesSentServerModule.UniServerModule.ServerStats.BytesReceivedUn原创 2021-01-05 17:45:50 · 548 阅读 · 0 评论 -
UniGUI的Canvas使用
Procedure TMainForm.UniImage1MouseUp(Sender: TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);begin UniImage1.Picture.Bitmap.Canvas.Pen.Width := 1; UniImage1.Picture.Bitmap.Transparent := True; if Button=mbLeft then beginif x0=’...原创 2021-01-04 18:12:56 · 451 阅读 · 0 评论 -
在UniGUI里使用ADO的设置
UniServerModule 设置 AutoCoInitialize 为 TrueMainModule怎样得到js变量的值MainForm.UniTrackBar1.SetValue(Sender.Field.GetValue());TUniServerModule和TUniMainModule这两模块有何区别TUniServerModule 一个连接创建一个TUniMainModule 只创建一个作为共用TUniServerModule 所有客户端公用TUniMainModu原创 2021-01-04 18:12:35 · 462 阅读 · 0 评论 -
uniGUI执行程序部署有3种形式
1、ISAPI模式部署在IIS或Apache,程序编译为Dll形式,没有试,准备后续专门测试一下。2、标准执行文件模式将软件编译成一个独立的Exe文件,包括了WEB服务和业务内容,是uniGUI部署方式中最简单的一种。该方式最大特点是可以进行代码跟踪,同一般exe程序调试一样,在Debug模式下程序调试非常方便。运行exe后就可以直接打开页面进行测试,通过任务栏上的图标可以打开服务监控页面,监控服务程序的运行情况,如下图:3、Windows服务模式将软件编译成Windows下的Ser原创 2021-01-04 18:07:31 · 637 阅读 · 0 评论 -
uniGUI0.94 以EXE形式发布程序的布署方法
uniGUI0.94以后发布要分别带上extjs和uni的两个js文件夹,这两个文件夹的具体位置要在UniServerModule模块中指定以下两个属性:UniServerModule.UniRoot 代表uni的js及资源文件夹目录,即uni-0.94.0.1024目录中的文件,如果属性值为: [uni]\ ,则程序运行时会到uniGui的安装目录下去寻找UniServerModule.ExtRoot 代表extjs的js及资源文件夹目录,即ext-4.2.1.883目录中的文...原创 2021-01-04 18:06:15 · 303 阅读 · 0 评论 -
UniGUI开发的dll如何发布
在IIS里面设置相关属性,并且default里设置这个dll,这样可以确保URL访问只需要IP:Port,看不到DLL。也可以单独设置一个index.html重定向到dll。1) 连接池设置,如下图:2) 连接池高级设置,如下图:3) 在站点中添加Application4) 该Application设置下高级设置,如下图:5) 处理程序映射,如下图:以下暂时不需要。3) ISAPI筛选器设置,如下图:...原创 2021-01-04 18:05:01 · 576 阅读 · 0 评论 -
修改工程文件,使exe程序编译成dll
ProjectàView Source{$define UniGUI_VCL}//Comment out this line to turn this project into an ISAPI module’{$ifndef UniGUI_VCL}library{$else}program{$endif}Project1;uses{$ifndef UniGUI_VCL} uniGUIISAPI,{$else} Forms,{$e...原创 2021-01-04 18:02:09 · 510 阅读 · 0 评论 -
在浏览器端不能使用ShowMessage()
Function ShowMsg(AskString: String): Boolean;begin if MainForm.WebMode then //must uses UniGUIApplicationUniSession.AddJS(‘alert(‘’’+AskString+’’’);’)else ShowMessage(AskString);end;在浏览器执行不可用ShowMessage...原创 2021-01-04 18:01:36 · 339 阅读 · 0 评论 -
为什么UniGUI控件在IE中显示的字体会变小、模糊?
为什么UniGUI控件在IE中显示的字体会变小、模糊?字体修改UniSessionModule的CustomCSS的内容:/* ---------------------------修改 Ext CSS -------------------------- *//* Ext 2.0 */.x-window-footer { position: relative; top: 0; right: 0;}.x-tab-strip SPAN.x-tab-strip-te...原创 2021-01-04 17:59:54 · 254 阅读 · 0 评论 -
事件中的代码在服务器端和客户端,哪一端执行?
代码如下:for i:=0 to 20 dobeginif Frm[i]<>nil thenif Frm[I].Name=ProCaption thenbeginBaesFrame := Frm[i];IsOpen := True;Break;end;end;if IsOpen then exit;为什么这段代码是在服务器端执行,而不是在客户端执行呢?解答: UniGUI的运行机制就是除非你在ClientEvents里的东西,其他都是要由UniGUI通过后台程序执行完成原创 2021-01-04 18:00:24 · 244 阅读 · 0 评论 -
创建新的 uniGUI 应用程序
创建一个新的 uniGUI 项目很容易。 使用德尔菲 IDE 激活 uniGUI 应用程序向导就足够了。独立服务器项目独立服务器项目是最简单的 uniGUI 项目类型。 它创建的应用程序运行类似于桌面应用程序 , 即应用程序是由用户启动和终止的。 此类应用程序最好用于调试目的。 下面是一个典型的新创建的独立服务器项目的示例。 还请参阅部署选项。program Project1;usesForms,ServerModule in ‘ServerModule.pas’ {UniServerM原创 2021-01-04 18:00:34 · 359 阅读 · 0 评论 -
UniApplication 对象
UniApplication 返回一个 TUniGUIApplication 实例 , 它是所有当前会话资源 (MainForm 、 MainModule 和所有其他窗体和 DataModules) 的所有者。 它是全局可用的 , 可以在 uniGUI 控件事件处理程序内访问。 UniApplication 有几个有用的属性 , 可用于获取有关关联会话的信息。 例如 , URL 参数、客户端屏幕宽度、客户端屏幕高度、设备类型、与客户端 PC 相关的信息和 cookie 。在代码中创建窗体时 , 必须将原创 2021-01-02 14:14:44 · 482 阅读 · 0 评论 -
组件
uniGUI 提供了一套类似的非视觉和视觉组件。 某些德尔菲组件是兼容的或 uniGUI 支持的 , 使得不需要将它们作为 uniGUI 包的一部分。 例如 ,对于 VCL 和 uniGUI 应用程序 , 许多数据访问控件都是相同的。 其他组件 , 如 TActionList, 由 uniGUI 支持。uniGUI 可视控件是 Ext JS 控件 ( 或与之进行 ), 通常提供等效 VCL 控件的超集。 有时 , uniGUI 控件的功能比原始 VCL 控件更接近强大的第三方控件 ( 如DevExpr原创 2021-01-02 14:13:30 · 132 阅读 · 0 评论 -
框架
uniGUI 对框架有完全的支持。 必须使用 uniGUI IDE 向导创建框架。ServiceModule只有当项目类型为 Windows 服务时 , 才会创建 ServiceModule 。 它是德尔斐标准 TService 阶级的后裔。 它允许配置与 Windows 服务相关的参数 , 包括服务名称、服务类型等。...原创 2021-01-02 14:11:10 · 156 阅读 · 0 评论 -
DataModules
DataModulesuniGUI 支持向项目添加 DataModules 。 它允许开发人员设计他们的应用程序 , 如标准的 VCL 应用程序 , 在几个 DataModules 中划分应用程序业务逻辑。 重要的是要记住的是 , 虽然 uniGUI DataModules 是相同的标准 VCL DataModules 在本质上 , 当他们使用 uniGUI 向导创建 , 他们将自动管理每个会话 ( 其生存期将与会话相同本身 ) 。 如果 DataModule 是使用标准 IDE 创建的 , 则开发人原创 2021-01-02 14:09:53 · 453 阅读 · 0 评论 -
自由形式
自由形式这是自动生成的可用窗体代码 ( 已重命名 ):unit _FreeForm;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, uniGUITypes, uniGUIAbstractClasses,uniGUIClasses, uniGUIForm;typeTFreeForm = class(TUniForm)private{ Private declara原创 2021-01-02 14:07:27 · 674 阅读 · 0 评论 -
申请表
这是应用程序窗体的自动生成代码 ( 已重命名 ):unit _AppForm;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics,Controls, Forms, uniGUITypes, uniGUIAbstractClasses,uniGUIClasses, uniGUIForm;typeTAppForm = class(TUniForm)private{ Private declarations原创 2021-01-02 14:06:53 · 207 阅读 · 0 评论 -
窗体和模块
每个 uniGUI 应用程序都是用一个名为 MainForm 和两个 datamodules 、 MainModule 和 ServerModule 的专用窗体创建的。 LoginForm 在 uniGUI 也有特殊的意义每个 uniGUI 应用程序都包含一个名为 ServerModule 的特殊数据模块 , 它是应用程序的核心模块。 它是一个单独的 , 这意味着它只在每个应用程序中创建一次。它主要用于配置各种服务器设置。 ServerModule 将在其他部分更详细地介绍。MainModule原创 2021-01-02 14:05:13 · 343 阅读 · 0 评论 -
uniGUI概述
uniGUI 在DELPHI 10 IDE 中的应用在浏览器中运行的 Web 应用程序在浏览器地址栏中 , 键入以下 URL:http://localhost:8077uniGUI 在智能手机上运行的 web 应用程序原创 2021-01-02 13:59:22 · 922 阅读 · 0 评论