【一起学UniGUI】--创建新的uniGUI应用程序(11)

article/2025/9/24 8:25:46

      打开Delphi 10.3.1,在Delphi IDE中可以通过uniGUI应用程序向导轻松创建一个新的uniGUI应用程序(必须通过此方式来创建一个新的uniGUI应用程序),并按向导界面提示操作。

(一)、使用uniGUI应用程序向导创建一个新的uniGUI应用程序,主要步骤为:
1、File->New->Other

2、选择 uniGUI for Delphi-> Application Wizard,点“OK”

3、填写项目名称和项目存放目录,并且按需求选择一个项目类型后(开发学习时一般我选第一个),点“OK”,系统会自动生成相关的项目代码及几个模块和窗体(见图二)

      到这里,一个应用程序项目的架构由UniGUI向导自动生成了,从上图我们可以看到自动生成了几个模块和窗体,这也就是我们前面讲的几个重要模块和窗体(后面的内容重复说明或复习一下):每个uniGUI应用程序都是使用一个主窗体(MainForm)的专用窗体和两个专用的模块主模块(MainModule)服务模块(ServerModule)组成且自动创建的。登录窗体(LoginForm)可视情况选择或增加(类似额外添加,以后会讲,这里是没有的)。上述各模块和窗体说明请参阅之前的文章【一起学UniGUI】--UniGUI的窗体和模块(6)

(二)、【项目类型】:也对应应用程序以后的部署选项(可一起参阅之前的“【一起学UniGUI】--UniGUI的部署选项(5)”),下面分类进行综合说明(请结合上图):

1、Standalone Server (独立服务器)

       最简单的项目类型是独立服务器。在这种模式下,应用程序服务器像桌面应用程序一样直接运行。它也是用于调试应用程序的模式。运行应用程序可执行文件后(它是一个EXE文件),它将最小化到托盘图标,并运行到用户手动终止为止。见下图:


        一个独立的应用程序可以从浏览器访问,地址栏只需键入:http://localhost:8077,其中8077是应用程序绑定到的默认专用端口号(侦听端口)。开发者可以在服务模块(ServerModule)中轻松地修改它。
       独立模式只建议用于调试目的。因为它是作为桌面应用程序运行的,所以当当前用户注销时,它就会被终止。而且,它不会在重启后自动启动。模式最适合用于开发时调试。当您的应用程序在调试模式下运行时,您可以设置断点、暂停、转到光标位置,并使用Delphi IDE的所有其他高级调试功能来调试您的应用程序,就像调试任何其他VCL应用程序一样。不建议在正式使用环境中使用此模式,因为它不会在OS重新启动时自动运行。此外,它可以很容易受未经授权的用户干预而被终止。

      独立服务器项目是uniGUI项目的最简单类型。它创建一个运行类似于桌面应用程序的应用程序(EXE文件),即由用户启动和终止应用程序。这种类型的应用程序最适合用于调试目的。下面是一个典型的新创建的独立服务器项目的示例DPR文件。

program Project1;
 
uses
  Forms,
  ServerModule in 'ServerModule.pas' {UniServerModule: TUniGUIServerModule},
  MainModule in 'MainModule.pas' {UniMainModule: TUniGUIMainModule},
  Main in 'Main.pas' {MainForm: TUniForm};
 
{$R *.res}
 
begin
  Application.Initialize;
  TUniServerModule.Create(Application);
  Application.Run;
end.

2. ISAPI 模块
      该技术最初是由Microsoft公司采用基于Windows DLL技术应用到Microsoft IIS产品中的。当然,还有其他web服务器,如Apache,也支持加载ISAPI模式。ISAPI模式在许多方面与前面讨论的选项不同。最重要的是,它不包含内置的Web服务器,而不是独立的服务和Windows服务。在ISAPI模式下,IIS服务器是HTTP服务器,ISAPI模块执行它的请求。您可以使用Delphi IDE中的uniGUI向导轻松创建ISAPI模式应用程序。编译后,uniGUI应用程序将输出DLL文件而不是EXE文件。这个DLL文件必须部署到IIS服务器(详细描述在Web部署部分的ISAPI模式中)。uniGUI 应用程序所生成的DLL文件支持从IIS 5.1开始的所有IIS版本。ISAPI模式为开发人员提供了在同一服务器上部署许多模块的自由,而不需要为每个应用程序选择不同的端口。它还继承了Microsoft IIS中所有高级安全特性的优点。
       运行ISAPI应用程序就像在浏览器中打开以下URL一样简单,访问格式如下:
               http://localhost/appdir/app.dll
      如果你有多个应用程序在同一个文件夹下,你可以调用他们只需指定一个不同的DLL名称:
              http://localhost/appdir/app.dll
              http://localhost/appdir/app2.dll
              http://localhost/appdir/appaccount.dll

      如果您计划启动ISAPI模式项目并选择它作为默认的部署方法,您可以选择这种类型的项目。这个项目在编译时将生成一个DLL。ISAPI模块可以部署到Microsoft® IIS服务器或用于Windows的Apache服务器。下面是一个典型的新创建的ISAPI模块项目的示例DPR文件。

library Project1;
 
uses
  uniGUIISAPI,
  ServerModule in 'ServerModule.pas' {UniServerModule: TUniGUIServerModule};
 
{$R *.res}
 
exports
  GetExtensionVersion,
  HttpExtensionProc,
  TerminateExtension;
end.

3. Standalone Server (独立服务器)/ISAPI 模块

      这种类型的项目是使用条件编译指令来创建上面两种类型之一的组合项目:独立服务器或ISAPI模块。如果ISAPI模块部署的目标是正式使用,那么这种类型的项目是非常好的开始。只需注释掉DPR文件的第一行,就可以将独立服务器转换为ISAPI DLL。

{$define UNIGUI_VCL} // 注释掉这一行(即改为:{.$define UNIGUI_VCL}),可使用这个项目改成一个ISAPI模式
 
{$ifndef UNIGUI_VCL}
library
{$else}
program
{$endif}
  Project1;
 
uses
  uniGUIISAPI,
  Forms,
  ServerModule in 'ServerModule.pas' {UniServerModule: TUniGUIServerModule},
  MainModule in 'MainModule.pas' {UniMainModule: TUniGUIMainModule},
  Main in 'Main.pas' {MainForm: TUniForm};
 
{$R *.res}
 
{$ifndef UNIGUI_VCL}
exports
  GetExtensionVersion,
  HttpExtensionProc,
  TerminateExtension;
{$endif}
 
begin
{$ifdef UNIGUI_VCL}
  Application.Initialize;
  TUniServerModule.Create(Application);
  Application.Run;
{$endif}
end.

      默认情况下,上面的项目将生成一个EXE文件,它是一个独立的服务器。如果注释掉项目的第一行,它将变成ISAPI模块(方法详见下面说明及步骤)。稍后,您可以通过删除第一行中的注释将其转换回独立的EXE模式。下面说一下互相转换的方法及步骤。

将组合项目转换为ISAPI DLL的步骤:

1)、打开DPR文件。
2)、将DPR文件的第一行更改为(就是在{后面加入一个“.”来注释掉此行条件):{.$define UNIGUI_VCL}
3)、如果您的Delphi版本是XE2或更新版本,则需要关闭项目并重新打开它。(如果您的Delphi版本比XE2老,则不需要此步骤)
4)、 Build您的应用程序。
5)、将在输出文件夹中创建DLL文件。

将组合项目转换回独立模式的步骤:

1)、打开DPR文件。
2)、将DPR文件的第一行更改为:{$define UNIGUI_VCL}
3)、如果您的Delphi版本是XE2或更新版本,则需要关闭项目并重新打开它。(如果您的Delphi版本比XE2老,则不需要此步骤)
4)、Build您的应用程序。
5)、将在输出文件夹中创建EXE文件。

4. Windows 服务

      通过创建uniGUI Windows服务应用程序,可以将应用程序部署为标准的Windows服务应用程序。这种方法是正式使用环境的首选方法之一。每次系统重启时,Windows服务都会自动运行。它将保证Web应用程序的可用性。Windows服务应用程序可以像上面描述的独立服务器一样从浏览器访问,这意味着每个Windows服务应用程序都需要一个专用端口(未使用的专用端口)。

      正式环境的另一种部署方法是Windows服务。它创建了一个标准的Delphi Windows服务项目,同时也做了一些修改,以允许创建uniGUI ServiceModule。服务项目生成标准的Windows服务可执行文件,可以像安装任何常规Windows服务一样安装这些文件。Windows服务是由Windows自动启动的,只要Windows在运行,可确保它总是可用的。这为uniGUI应用程序提供了高级别的可用性。

program Project1;
 
uses
  SvcMgr,
  ServerModule in 'ServerModule.pas' {UniServerModule: TUniGUIServerModule},
  MainModule in 'MainModule.pas' {UniMainModule: TUniGUIMainModule},
  Main in 'Main.pas' {MainForm: TUniForm},
  ServiceModule in 'ServiceModule.pas' {UniServiceModule: TUniGUIService};
 
{$R *.res}
 
begin
  if not Application.DelayInitialize or Application.Installing then
    Application.Initialize;
  Application.CreateForm(TUniServiceModule, UniServiceModule);
  Application.Run;
end.

备注说明:新的程序或项目,都是从此开始的。上面的相关代码,也都是自动生成的。


http://chatgpt.dhexx.cn/article/j7yBDaf6.shtml

相关文章

(1)uniGUI for C++ builder网站开发之uniGUI控件安装和你好世界

uniGUI for CBuilder网站开发之uniGUI控件安装和你好世界 By runsky中行雷威 2018.2.5 (同一个世界,同一个梦想,交流学习CBuilder XE10,传承cbuilder的魅力!欢迎各地朋友加入我的QQ群299497712,860634510、484979943…

uniGUI之UniDBGrid

uniDBGrid的相关样式设置 1.自适应列宽 代码如下(示例): function store.load(sender, records, successful, operation, eOpts) {sender.grid.columnManager.columns.forEach(function(col){col.autoSize()}) }2.显示page当前记录及总记录…

unigui 脚本交互

http://blog.sina.com.cn/s/blog_44fa172f0102vsv0.html 【转】如何在html与delphi间交互代码 (2015-11-19 22:16:24) 转载▼ 标签: it 分类: uniGUI uniGUI总群中台中cmj朋友为我们总结了如下内容,对于利用delphiuniGUI开发应用&#xf…

基于UniGUI的管理系统

1.界面略图。 2.仅通过数据库即可二次开发,支持多个服务,多个数据库开发,轻松几步配置即可轻松打造任意管理类系统。 3.三层结构,支持多种数据库。 4.支持hyper_sever负载均衡。 5.dll扩展支持已开发成功。你可以使用此框架同时…

提高unigui开发效率的两个方法

1、编译时自己退出运行的程序。 在做unigui开发时,每次编译运行时,unigui的应用都会在后台运行,每次重新编译时都必须手工在任务栏里将应用退出才行,非常麻烦,可以在项目编译的参数里加上杀进程的命令,这样…

unigui使用技巧

1、编译时原程序在运行无法重新形成 在做unigui开发时,每次编译运行时,unigui的应用都会在后台运行,每次重新编译时都必须手工在任务栏里将应用退出才行,非常麻烦,可以在项目编译的参数里加上杀进程的命令,…

delphi10.4使用uniGUI

从csdn下载了uniGUI的1.90.0.1555版本:uniGUI_Professional_1.90.0.1555.rar_unigui-Web服务器文档类资源-CSDN下载 编译时还是找不到某些源码文件如:uniStrUtils.pas,ext.pas.............. 但是没关系,用里面的\Framework\uni…

uniGUI概述

uniGUI 在DELPHI 10 IDE 中的应用 在浏览器中运行的 Web 应用程序 在浏览器地址栏中 , 键入以下 URL: http://localhost:8077 uniGUI 在智能手机上运行的 web 应用程序

uni-ui的使用

uni-ui的使用 当uni-app提供的基础组件不够使用时,比如像日历组件是基础组件没有的,这个时候我们就可以从uni-ui中去找我们要的日历组件,uni-ui类似于elemnet,antd vue一样是个组件库。 uni-ui官方文档 1、进入日历宫格组件 2、使…

【一起学UniGUI】--UniGUI的部署选项(5)

uniGUI支持Windows平台下所有主要部署选项。 1.Standalone Server (独立服务器) 最简单的部署方法是独立服务器。在这种模式下,应用程序服务器像桌面应用程序一样直接运行。它也是用于调试应用程序的模式。运行应用程序可执行文件后(它是一个EXE文件)&#xff0c…

用unigui来制作网站

主要是uni控件的布局应用、css样式的使用,以及组装一些js插件,去除unigui的加载动画,等控件的默认效果。 直接从SqlServer数据库中读取栏目、内容和网页参数信息。 头部和尾部使用框架形式,直接继承基类页面后,修改中间…

uni-UI

<view class"delet" click"delets">删除</view>.delet {border: 1px solid #e3e3e3;padding: 4rpx 18rpx;font-size: 26rpx;border-radius: 10rpx;}<button class"btn" click"payfor" type"primary">确认…

FMSoft uniGUI Professional 1.90.0.1564 Crack

uniGUI Web 应用程序框架将 Web 应用程序开发体验扩展到一个新的维度。uniGUI使Delphi开发人员能够使用一组独特的可视化组件在 IDE 中创建、设计和调试 Web 应用程序。每个组件都旨在提供与 Delphi VCL 中对应的可视化组件相同的功能。这提供了一个非常舒适的开发环境&#xf…

uniGUI发布时运行时包的处理

运行时包说明 根据uniGUI的开发文档说明&#xff0c;uniGUI发布时是需要安装uniGUI运行时包的。 uniGUI Runtime Package是将uniGUI运行时文件分发到托管uniGUI Web应用程序的服务器的简便方法。可从FMSoft客户门户网站下载运行时软件包。该软件包不适用于uniGUI Trial Editi…

uniGUI之事项合集

目录 1.事件中的代码在服务器端和客户端&#xff0c;哪一端执行&#xff1f; 2.为什么UniGUI控件在IE中显示的字体会变小、模糊&#xff1f; 3.在浏览器端不能使用ShowMessage() 4.unigui程序只显示loading 5.uniGUI执行程序部署有3种形式 6.在UniGUI里使用ADO的设置 7.MainMod…

【一起学UniGUI】--UniGUI介绍(1)

【前言】&#xff1a;Delphi目前已不是主流开发工具&#xff0c;这是事实&#xff01;但不能抹杀它曾经的辉煌。其实不管是哪个语言或哪个开发工具&#xff0c;其实它们仅仅是一个开发工具而已。再好的语言或开发工具&#xff0c;最终仍是要看使用者撑握的水平。相对于大部分来…

UniGUI 后台管理系统框架

TOC](UniGUI 管理系统框架) UniGUI 确实是D的网站开发利器&#xff0c;熟悉D的同学很快就能上手&#xff0c; 除了界面美化需要一部分css外。 已经实现的功能&#xff1a; 免密登录 平台和供应商多组织架构 表格导出到Excel PDF报表内嵌图片 邮件任务通知 格式图表

Delphi B/S WEB 应用开发ExtJS组件《uniGUI中文手册》第3版(一):uniGUI简介

uniGUI是Embarcadero Delphi和C Builder的Web应用程序框架。uniGUI具有用于开发有状态Web应用程序&#xff08;即SPA&#xff09;的全套可视控件。开发过程与开发常规VCL应用程序非常相似。uniGUI Web应用程序可以直接在RAD Studio Delphi IDE中运行和调试&#xff0c;这使开发…

如何找项目写到简历中

对于每一个求职者&#xff0c;简历是每个人找工作的第一步&#xff0c;要想有很多的面试机会&#xff0c;必须将我们的简历制作的“漂亮”一些&#xff0c;我这说的漂亮并不是花里胡哨的简历&#xff0c;而是项目经验这块必须丰富一点&#xff0c;这块是简历中的核心&#xff0…

java简历包装项目经验,项目实战

目录 部分内容展示 深入浅出索引&#xff08;上&#xff09; 索引的常见模型InnoDB 的索引模型索引维护小结 深入浅出索引&#xff08;下&#xff09; 覆盖索引最左前缀原则索引下推 为什么这些SQL语句逻辑相同&#xff0c;性能却差异巨大&#xff1f; 案例一&#xff1a;条…