10分钟10行代码开发APP(delphi 应用案例)

总结一下用到的知识(开发环境安装配置不计算在内):

  • 第六章  使用不同风格的按钮;
  • 第十七章  让布局适应不同大小与方向的窗体;
  • 第二十五章 使用 dbExpress访问 InterBase ToGo
  • 第二十九章  从移动客户端连接到企业数据库;

以下是具体制作步骤:

1、创建DataSnap服务VCL应用程序

1.1 创建服务程序

新建一个项目:Delphi Projects >DataSnap Server > DataSnap Server

 

1.   第一步,选择Forms Application项目类型。

2.   第二步,VCL Application应用程序类型。

3.   第三步,在服务器功能列表是选择TCP/IP协议、Server Methods ClassSample Methods

4.   第四步,保留默认的TCP/ IP通信端口211。这将确保客户端和服务器之间的通信将通过默认 DataSnap 端口。

5.   选择服务器继承至TDSServerModule

6.    保存窗体单元为DataSnapServerUnit

7.    切换到DataSnapServerUnit,并将窗体的Name属性更改为DSServerForm

8.   保存服务器方法单元 (默认情况下,通过该向导所创建︰ ServerMethodsUnit1)作为ServerModuleUnit

9.    保存服务器容器单元 (默认情况下,通过该向导所创建︰ ServerContainerUnit1)作为ServerContainerUnit

10.    将新项目保存为DataSnapServerProject

11.   在Project Manager选择 ProjectGroup1,并将项目另存为DataSnapTutorialProjectGroup.groupproj.

1.1定义DataSnap 服务器上的数据集

1.  切换到ServerContainerUnit.pas文件把implementation下的uses子句替换成:usesWinapi.Windows,ServerModuleUnit。

2.  切换到ServerModuleUnit.pas 文件。

3.   在窗体设计器,更改Name属性为DSServerModule_Demodata

4.   在服务器模块(ServerModule)配置以下属性:

(1)拖放 TSQLConnection 控件到服务器模块,并设置以下属性:

  • 设置 Name 属性为SQLConnection_Demodata.
  • 设置 LoginPrompt 属性为 False.
  • 设置 Driver 属性为 InterBase Server.
  • 展开 Driver节点,设置 DataBase属性为:G:\demo\DataSnap\database\DEMO_DATA.GDB.(本机数据文件位置。)
  • 更改 Connected属性为 True。

(2)拖放TSQLDataSet控件到服务器模块,并设置以下属性:

  • 设置 Name 属性为 SQLConnection_login.
  • 设置SQLConnection 属性为SQLDataSet_Demodata.
  • 设置CommandType属性为 ctQuery.
  • 设置 CommandText属性为 select CASE count(id) when 1 then 1else 0 end as cou from T_USER where user_name=:user_nameand pass=:pass

  • 点击Params后面[…]按钮,设置参数类型如下:

  • 更改  Active  属性为 True。

(3)拖放TdataSetProvider控件到服务器模块,并设置以下属性:

  • 设置 Name属性为 DataSetProvider_login.
  • 设置 DataSet属性为 SQLDataSet_login:

(4)拖放TSQLDataSet控件到服务器模块,并设置以下属性:

  • 设置 Name 属性为 SQLDataSet_city.
  • 设置SQLConnection 属性为SQLConnection_Demodata.
  • 设置CommandType属性为 ctTable.
  • 设置CommandText属性为 T_CITY.
  • 设置Active  属性为 True。

(5)拖放TdataSetProvider控件到服务器模块,并设置以下属性:

  • 设置 Name 属性为 DataSetProvider_city.
  • 设置 DataSet
    属性为 SQLDataSet_city:

1.3暴露DataSnap 服务器数据集

1.   在窗体设计器中,打开ServerContainerUnit.

2.   选择DSServerClass1,并更新OnGetClass事件的现有事件处理程序。DSServerClass1事件处理程序中添加以下代码:

PersistentClass := ServerMethodsUnit.TDSServerModule_Demodata;

1.4运行 DataSnap 服务

右键单击DataSnapServerProject.exe并选择Run Without Debugging

运行效果如下:

2、 创建连接到DataSnap服务器的移动应用程序

1.   在 ProjectManager,右键点击DataSnapTutorialProjectGroup,选择Add
New Project

2.   在Delphi Projects页选择Multi-Device Application


3.   保存新单元为DataSnapClientUnit

4.   保存新项目为DataSnapClientProject

5.   打开DataSnapClientUnit,更改Name属性为DSClientForm

6.   拖放以下控件到窗体设计器:

(1)TSQLConnection控件(SQLConnection1)

  • 设置Driver属性为DataSnap.
  • 展开Driver属性,并设置HostName 属性为DataSnap服务器的主机名或IP。
  • 设置 LoginPrompt
    属性为 False。
  • 设置 Connected
    属性为 True。

(2)TDSProviderConnection控件(DSProviderConnection1)

  • 设置 SQLConnection
    属性为 SQLConnection1。
  • 设置 ServerClassName为 TDSServerModule_demodata。此名称应匹配 DataSnap服务器的服务器模块中类的名称。
  • 设置 Connected
    属性为 True。

(3)TClientDataSet控件(ClientDataSet1)

l  设置 Name属性为ClientDataSet_login。

l  设置 RemoteServer属性为 DSProviderConnection1。

l  设置 ProviderName属性为:DataSetProvider_login。这个名称必须与DataSnap服务器提供者的名称匹配。

  • 点击Params后面[…]按钮,设置参数类型如下:

  • 设置 Active 属性为 True。

(4)TListView控件

  • 设置 Align 属性为 Client。
  • 其他设置如下属性:

(5)TLayout控件

  • 设置 Align 属性为Center.

(6)两个Tlabel,两个TEDIT,一个按钮控件放入Tlayout中;

  • 分别设置Tlabel的属性Text为用户名、密码;.
  • 设置EDIT2 属性PassWord为True;
  • 设置按钮Text属性为登录;

7.   打开LiveBindings Designer连接数据的用户界面,如下所示:

(1)点击BindSourceDB1中的 COU,拖动到ListView1中Visible;

(2)点击BindSourceDB1中的 COU,拖动到BindSourceDB2中Active;

(3)点击BindSourceDB2中的 CITY_NAME,拖动到ListView1中Item.Detail;

(3)选中LinkFillControlToField1,设置下图三个属性;

8.   双击按钮,在代码编辑器中输入如入代码:

if not((Edit1.Text.IsEmpty()) or(Edit2.Text.IsEmpty())) then
  begin
    ClientDataSet_login.Active := False;
    ClientDataSet_login.ParamByName(‘user_name‘).Value := Edit1.Text;
    ClientDataSet_login.ParamByName(‘pass‘).Value := Edit2.Text;
    ClientDataSet_login.Active := True;
    Layout1.Visible :=not(ClientDataSet_login.FieldByName(‘cou‘).AsInteger=1);
  end
  else
    ShowMessage(‘用户名或密码不能为空。‘);

---------------------

9.   所有开发完成,可编译运行。发布IOS模拟器前需要部署MIDAS库,具体部署方法可参看Delphi XE8开发iOS和Android移动应用开发教程[完整中文版]》内的介绍

原文地址:https://www.cnblogs.com/m0488/p/9759669.html

时间: 2024-10-01 14:17:34

10分钟10行代码开发APP(delphi 应用案例)的相关文章

用30行代码开发一个上传、下载文件的接口

分享一段代码,开发了3个接口: 1.上传文件 2.查看所有文件 3.下载文件 使用python开发,需要安装flask模块,使用pip install flask安装即可,代码量特别少,就能实现,加上注释总共35行代码,特别的简单,代码如下: import flask,os,time from flask import request,send_from_directory,jsonify app = flask.Flask(__name__)#创建一个app,代表这个web服务 @app.ro

利用Python的几行代码开发一个QQ机器人!小白也能快速上手的案例

本篇教大家如何用Python来实现QQ机器人,如有不足欢迎在评论方指出! 简单介绍 安装方法 可在 Python个版本下使用,用 pip 安装: pip install qqbot 使用方法 一.启动 QQBot 二.操作 QQBot QQBot 启动后,在另一个控制台窗口使用 qq 命令来操作 QQBot ,目前提供以下命令: list 命令提供强大的联系人查询功能,例如: 如: qq list group 机器人测试 例如: 实现我们自己的 QQ 机器人 要实现咱们自己的QQ 机器人超级简单

Python 教你 4 行代码开发新闻网站通用爬虫

\ ? GNE(GeneralNewsExtractor)是一个通用新闻网站正文抽取模块,输入一篇新闻网页的 HTML, 输出正文内容.标题.作者.发布时间.正文中的图片地址和正文所在的标签源代码.GNE在提取今日头条.网易新闻.游民星空. 观察者网.凤凰网.腾讯新闻.ReadHub.新浪新闻等数百个中文新闻网站上效果非常出色,几乎能够达到100%的准确率. ! 使用方式非常简单: from gne import GeneralNewsExtractor extractor = GeneralN

10分钟入门微信小程序开发:从环境搭建到开发出第一个程序。

小程序简介 小程序是一种不需要下载安装即可使用的快速应用,它实现了应用“触手可及”的操作:用户扫一扫或搜一下即可打开应用,完全不需要安装,因此小程序不仅可提高的用户的应用体验,也方便应用的传扩散. 本文带大家快速入门小程开发,了解从环境搭建到开发出一个简单hello world程序,从而上手小程序开发,让你快速成功小程序开发人员.之后,想开发什么样的小程序,就可以自己研究和努力了. 下面,是循序渐经的步骤: ?1.注册小程序 在开发之前,当然需要先注册一个小程序账号. 进入“微信公众平台”进行注

一个程序猿可以控制多少行代码

 我认为大家初看到这个题目时,一定会非常奇怪,一个程序猿可以控制多少行代码全然取决于该程序猿的能力强弱,这有什么规律可循么?事实上当这个想法突然冒出来时,我也都有些诧异. 首先介绍一下我遇到的情况,我当时正在编写一个小程序,是模拟cache工作原理的.这个程序中有一个函数集的实现文件(function.cpp),大概由20个左右的函数组成,由main.cpp中的main函数直接去调用它们.这个文件我是从头開始一点一点码起来的,開始时都非常顺利,编写代码的速度也非常平稳.可是当我的代码达到60

Cocos2d-x 3.x 开发(十八)10行代码看自动Batch,10行代码看自动剔除

1.概述 在游戏的运行过程中,图形的绘制是非常大的开销.对于良莠不齐的Android手机市场,绘制优化较好的游戏,可以在更多的手机上运行,因此也是优化的重中之重.图形方面的优化主要体现在减少GUP的绘制次数上.这里我们分别从自动优化渲染批次和绘制剔除两个方面来看新版本在绘制上的优化. 2.自动batch 在Cocos2d-x 3.x中,抛弃了先前手动编写BatchNode,采用自动管理的方式.说起BatchNode,就难免涉及到显卡底层的绘制原理.简单的说,每提交一条绘制指令到显卡都会产生消耗,

10分钟,AppCan帮你搞定跨平台开发APP问题!

跨平台开发APP时,开发者总会遇到一些问题,如打包失败等等,尤其对于iOS来说,由于它的限制性会导致一些状况发生(如证书上传问题等),小编总结了几个AppCan在线IOS打包失败常见的情况及排查技巧,有所困扰的同学可以作为参考,对问题进行排查. 打包失败分为以下几种情况: 1.插件重复勾选:请检查"公共插件"与"我的插件"(自己上传的插件)是否有重复插件. 2.证书问题:请参照开发指导→iOS证书申请流程的指引文档,在苹果官网正确申请证书.证书上传后检验通过不代表证

微信小程序详细图文教程-10分钟完成微信小程序开发部署发布(3元获取腾讯云服务器带小程序支持系统)

很多朋友都认为微信小程序申请.部署.发布很难,需要很长时间. 实际上,微信和腾讯云同是腾讯产品,已经提供了10分钟(根据准备资源情况,已完成小程序申请认证)完成小程序开发.部署.发布的方式.当然,实现的是基础功能.但是,可以给学习者很便捷的体验和很好的启发. 不过,随着微信平台和云服务的发展,真担心,程序猿会失业! 目录 一.微信小程序申请 二.服务器设置(申请.部署.域名) 1.申请服务器 2.部署服务器 3.域名申请和配置 三.小程序发布 1.下载DEMO 2.下载开发工具并安装 3.配置参

app进入后台申请10分钟活跃时间-b

IOS允许长时间在后台运行的情况有7种: audio VoIP GPS 下载新闻 和其它附属硬件进行通讯时 使用蓝牙进行通讯时 使用蓝牙共享数据时 除以上情况,程序退出时可能设置短暂运行10分钟 让程序退出后台时继续运行10分钟 在XXAppDelegate中增加:UIBackgroundTaskIdentifier bgTask; - (void)applicationDidEnterBackground:(UIApplication *)application {    bgTask = [