DELPHI XE5开发WEB服务器及安卓手机客户端
Xe5开发web服务端和手机客户端
-------------------------------------
Delphi xe5作为最新开发利器,就类似如当年的DELPHI,功能强大,快发速度快,把VS2012远远甩在后面。下面以一个小例作为您开启新的历程:
建立一个webservices stand-alone vcl application 作为手机访问的服务端
1、new->other->webservices
2、选择 stand-alone vcl application
3、这里使用 默认端口8080
4、选择创建接口
5、给服务起个名字
6、点ok后保存工程,保存为目录如下:
7、至此为止,什么代码都不写,点击运行,我们看到
8、启动并点击 open browser按钮在浏览器里看到
一个web服务就创建完成了。
接下来创建一个返回数据集的过程,用webservices发布,供手机端调用。这里我使用firedac
1、打开上一篇自动创建的WebModule
然后分别拖放以下数据连接控件
FDConnection1:firedac连接数据库的
FDPhysMSSQLDriverLink1: 数据驱动 选的是sqlserver ,另外还有 db2 ,oracle,acess ,excel ,sqllite,mysql等
FDQuery1: 相当于adoquery
DataSetProvider1:delphi的provider
ClientDataSet1: delphi的我最喜欢的cds
2、数据库的连接
首先用 FDConnection1 连接sqlserver服务器,在控件上邮件 设置一下信息
3、其他数据控件连接
FDquery1已经自动连上了connection,我们在sql里写以下语句
接下来 DataSetProvider1 连好fdquery1,clientdataset1的providername选择 DataSetProvider1
4、在WebModule 中的public中实现以下代码
function TAndroidWM.GetEmployee_Mi: widestring;
begin
with clientdataset1 do
begin
close;
open;
result:=xmldata;
close;
end;
end;
5、在AdroidServicesImpl.pas 引用WebModule 的接口实现的public单元实现以下代码
function GetEmployee_mi:widestring;stdcall;
function TAdroidServices.GetEmployee_mi: string;
var
dm:TAndroidWM;
begin
dm:=TAndroidWM.Create(nil);
result:=dm.GetEmployee_Mi;
dm.Free;
end;
6、在 AdroidServicesIntf.pas 单元实现以下代码
type
IAdroidServices = interface(IInvokable) ['{9B1596C5-AD43-4849-830E-0B82D8BAA043}']
function GetEmployee_mi:widestring;stdcall;
end;
6、运行server 查看webservice是否实现了GetEmployee_mi服务
服务端至此完成,实现了用clientdataset的xmldata返回数据集的过程,当然您可以对返回的xml进行压缩和解压缩的操作,减小网络传输压力。
我们把供手机端调用的web服务完成,接下来实现手机端调用webservices获取数据
1、新建firemonkey mobile application
2、选择blank application
3、这里选择分辨率,我用的手机是三星的p3100,没别的优点 就是大,7寸的屏,我女儿管这个叫平板手机 O(∩_∩)O~
4、界面布局摆放如下:
5、绑定数据集
xe5中使用livebingding来绑定数据集,没有datasource熟悉了,理论上所有的控件都可以绑定数据集。
先在clintdataset中添加字段
依次添加 code ,name ,py_code 三个字段,然后选中grid,点击,然后将dataset拖拉到grid中:如图
当然,您要选择clientdataset1下的这个*号再拖拽,,这就完成了绑定。。。
然后调整列宽等选项。
界面就这样吧,继续。。。,先启动咱们上几片文章建立的手机服务端
导入webservices单元,file->new->other->webservices->选择 wsdlimporter
输入wsdl地址 http://localhost:8080/wsdl/IAdroidServices
之后施展一路回车大法,只到生成一个单元文件保存并在手机窗体单元中引用。
在窗体上的按钮的click事件中实现以下代码:
procedure TForm1.button1Click(Sender: TObject);
var
ws:IAdroidServices;
s:string;
begin
ws:=GetIAdroidServices(true,'http://10.110.0.56:8080/soap/IAdroidServices',nil); //参数中可以使用配置的url
s:=ws.GetEmployee_mi;
if length(s)<>0 then
clientdataset1.xmldata:=s;
end;
可以在win32平台上先测试一下,如图:
win32平台上没问题 ok,接下来target选择我的 大平板手机 O(∩_∩)O~ ,p3100
运行如下:
DELPHI XE5开发WEB服务器及安卓手机客户端的更多相关文章
- Delphi XE5通过WebService开发Web服务端和手机客户端
Delphi XE5通过WebService开发Web服务端和手机客户端介绍 我们开发一个三层的android程序 建立一个webservices stand-alone vcl applicati ...
- vs2015 无法连接到已配置的开发web服务器
问题一:vs2015 无法连接到已配置的开发web服务器 最靠谱方法如下:(和防火墙开启无关联, 注册表增加什么键值无关联 , 缺失asp.net core.Dll文件无关联 ) 分析,因为前提是你的 ...
- VS提示无法连接到已配置的开发web服务器的解决方法
VS2013每次启动项目调试好好的,今天出现了提示“提示无法连接到已配置的开发web服务器“,使用环境是本地IISExpress,操作系统为windows10,之前也出现过就是重启电脑又好了,这次是刚 ...
- 【小姿势】如何搭建ipa下载web服务器(直接在手机打开浏览器安装)
前提: 1) 有个一个现成的web服务器,我用是nodejs. 2) 有个能在用你手机安装的ipa 3) 有个github账号 开搞: 1.用http://plist.iosdev.top/plist ...
- 使用Go开发web服务器
原文链接 Go(Golang.org)是在标准库中提供HTTP协议支持的系统语言,通过他可以快速简单的开发一个web服务器.同时,Go语言为开发者提供了很多便利.这本篇博客中我们将列出使用Go开发HT ...
- Delphi XE5开发Android程序使用自定义字体文件.
万事大吉,只欠根据字体文件(.ttf文件)切换阅读字体,通常Android系统只带三种以下字体.一般用Java/Eclipse开发的话比较简单,typeface的createFromAsset,cre ...
- 使用Gulp构建本地开发Web服务器
前端模拟ajax,就需要配置web服务器(apache,iis,nginx),有点麻烦 代码有一点点修改,就需要F5刷新页面很麻烦 Gulp + Gulp-connect + watch + live ...
- 微信小程序开发(十三)安卓手机调用wx.getConnectedWifi API失败
安卓手机调用wx.getConnectedWifi API失败,返回的错误码是12000.需要先startWifi 接口: wx.startWifi({ success(res) { console. ...
- socket——本地服务器和android手机客户端通讯(防止中文乱码)
线上效果图: 服务端接收到的. 客户端接受到服务器返回的. server端代码直接运行在本地就可以了. 手机客户端运行在手机上就行. 先安装客户端,再启动server.然后再输入文字,点击发送. se ...
随机推荐
- 如何才能实现在点击链接时直接在网页中打开word文档,但不提示保存
一般要直接打开需要客户端 1.客户端有word支持 2.客户端浏览器的版本与设置 可寻找一下相关的控件或中间件,我的意见是看能否变通一下,把word转成HTML或PDF再展示给用户.(若用户不需要编辑 ...
- BufferedReader readLine()方法
控制台输入字符串之后回车,后台接收传来的字符串,代码如下: import java.io.BufferedReader; import java.io.IOException; import java ...
- 什么是SEM?
SEM是Search Engine Marketing的英文缩写,其中文意思就是搜索引擎营销.台湾和香港.澳门也称为搜寻销售,意思都差不多.SEM更多强调的是综合手段在搜索引擎上的企业传播和促进和销售 ...
- [译]AngularJS中几种Providers(Factory, Service, Provider)的区别
原文: http://blog.xebia.com/2013/09/01/differences-between-providers-in-angularjs/ 什么是Provider? Angula ...
- Linux 中常见的命令行,持续更新
1.添加自己的环境变量 root@adonis:~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin r ...
- 微信电话本可免费拨打网络电话 通话一分钟约300K流量
微信电话本新版本于昨日晚间发布,这是一款智能通讯增强软件,通话双方都下载此APP并开通免费通话功能就能使用微信电话本拨打免费网络电话,在对方无法接通情况下还能将音频转向语音信箱,微信电话本目前支持An ...
- Timestamp 使用
Timestamp是一个长整形的类型 1.使用方法一 Timestamp nowdate1 = new Timestamp(System.currentTimeMillis()); System.ou ...
- 自定义C/C++头文件以及头文件重复定义解决
今天再看二叉树的知识,看着看着就看到C/C++的头文件及头文件重复定义这一块去了.以前就看到过这个问题,但是自己一直没有用到这方面的东西,今天遇到就顺便总结一下,等以后忘了再回来看看. 首先明确一点C ...
- 【C语言入门教程】3.3 条件控制语句
在程序的 3 种基本结构中,第二种是选择结构,选择结构是根据程序运行时获得的条件,决定程序执行情况.条件控制语句可用来实现这种结构,C 语言提供了 if 语句和 switch 语句两种条件控制语句,i ...
- css固定元素位置(fixed)
来源:http://www.cnblogs.com/lecaf/archive/2011/03/25/fixed.html fixed是一种特殊的absolute,同样不占文档流,特殊的地方在于fix ...