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服务器及安卓手机客户端的更多相关文章

  1. Delphi XE5通过WebService开发Web服务端和手机客户端

    Delphi XE5通过WebService开发Web服务端和手机客户端介绍 我们开发一个三层的android程序 建立一个webservices  stand-alone vcl applicati ...

  2. vs2015 无法连接到已配置的开发web服务器

    问题一:vs2015 无法连接到已配置的开发web服务器 最靠谱方法如下:(和防火墙开启无关联, 注册表增加什么键值无关联 , 缺失asp.net core.Dll文件无关联 ) 分析,因为前提是你的 ...

  3. VS提示无法连接到已配置的开发web服务器的解决方法

    VS2013每次启动项目调试好好的,今天出现了提示“提示无法连接到已配置的开发web服务器“,使用环境是本地IISExpress,操作系统为windows10,之前也出现过就是重启电脑又好了,这次是刚 ...

  4. 【小姿势】如何搭建ipa下载web服务器(直接在手机打开浏览器安装)

    前提: 1) 有个一个现成的web服务器,我用是nodejs. 2) 有个能在用你手机安装的ipa 3) 有个github账号 开搞: 1.用http://plist.iosdev.top/plist ...

  5. 使用Go开发web服务器

    原文链接 Go(Golang.org)是在标准库中提供HTTP协议支持的系统语言,通过他可以快速简单的开发一个web服务器.同时,Go语言为开发者提供了很多便利.这本篇博客中我们将列出使用Go开发HT ...

  6. Delphi XE5开发Android程序使用自定义字体文件.

    万事大吉,只欠根据字体文件(.ttf文件)切换阅读字体,通常Android系统只带三种以下字体.一般用Java/Eclipse开发的话比较简单,typeface的createFromAsset,cre ...

  7. 使用Gulp构建本地开发Web服务器

    前端模拟ajax,就需要配置web服务器(apache,iis,nginx),有点麻烦 代码有一点点修改,就需要F5刷新页面很麻烦 Gulp + Gulp-connect + watch + live ...

  8. 微信小程序开发(十三)安卓手机调用wx.getConnectedWifi API失败

    安卓手机调用wx.getConnectedWifi API失败,返回的错误码是12000.需要先startWifi 接口: wx.startWifi({ success(res) { console. ...

  9. socket——本地服务器和android手机客户端通讯(防止中文乱码)

    线上效果图: 服务端接收到的. 客户端接受到服务器返回的. server端代码直接运行在本地就可以了. 手机客户端运行在手机上就行. 先安装客户端,再启动server.然后再输入文字,点击发送. se ...

随机推荐

  1. 总结一下安装linux系统经验-版本选择-安装ubuntu

    linux版本选择: 初次接触,建议选 Ubuntu 或者 Fedora,这两个发行版都很容易上手,而且两者都有很强大的中文社区,遇到问题比较容易解决,而且都有国内的源,安装或者更新软件时体验相对会好 ...

  2. ajax实例详解(2)

    说到ajax当然离不开json格式了.在ajax的数据传递过程中用到最多的便是json格式了吧. 什么是json格式,在刚开始用它的时候,着实让人迷茫了一阵子呀.说的白了点所谓json不就是一种数据的 ...

  3. jQuery 学习之路(2):选择器与过滤器

    一.基本选择器 标签选择器: $('button') ID选择器: $('#id1') 类选择器: $('.class1') 多重选择器: $('#id1,.class1,button') 全体选择器 ...

  4. 让我们一起学Node.js-文章列表

    新浪的博客最近不给力,只好在博客园落个窝.至此之后,技术随笔会在博客园以及新浪的博客上同时更新,如果新浪给力的话~~~ 如果你想看先前新浪博客上分享的技术,请点击此处 忘尘子新浪博客! 我是拜读了朴灵 ...

  5. Windows如何使用jstack跟踪异常代码

    维护服务器时,会出现java进程在CPU.内存.硬盘上总是出现异常情况. 如何找到是哪些代码出现这些异常呢? 本文使用jstack来实现这个需求 工具/原料   java jstack Process ...

  6. Python-Matplotlib安装及简单使用

    在使用NumPy进行学习统计计算时是枯燥的,大量的数据令我们很头疼,所以我们需要把它图形化显示. Matplotlib是一个Python的图形框架,类似于MATLAB和R语言. Matplotlib的 ...

  7. 第二天 django apache

    1. 475  brew tap homebrew/apache 476  brew install mod_wsgi 477  ls /usr/local/Cellar/mod_wsgi/4.5.7 ...

  8. 15天学会jquery

    第二章 15 Days of jQuery 比window.onload 更快一些的载入 window.onload()是传统javascript 里一个能吃苦耐劳的家伙.它长久以来一直 被程序员们作 ...

  9. MyEclipse 2013优化配置【转】

    作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs MyEclipse 2013优化速度方案仍然主要有这么几个方面:去除无需加载的模块.取消冗余的配置.去除不 ...

  10. 几个Jquery对话框插件

    项目现状 While Thickbox had its day, it is not maintained any longer, so we recommend you use some alter ...