Delphi APP 開發入門(十)REST Client 開發

閲讀次數:3116 發表時間:2014/08/27

Delphi APP 開發入門(九)拍照與分享 << 前情

Delphi在XE5開始就提供了REST Client的元件,讓開發REST Client應用的開發者能在最短的時間開發出相關的應用,今天就利用臺北市政府資料開放平台中的資料來做一個簡單的範例「台北住宿通」。

首先,我們先到臺北市政府資料開放平台來找尋我們想要的資料。找到了臺北市旅館資料庫後,我們把新版資料介接後的網址(http://data.taipei.gov.tw/opendata/apply/query/NDQxOEM2MDAtRDdGNS00NkQ2LUJCMUYtMURBMjlEQUI5MUU5?$format=json) 複製下來。
接著回到Delphi,開啟新專案,我們將REST Client的幾個元件佈置上去,分別是TRESTClient、TRESTRequest、TRESTResponse與TRESTResponseDataSetAdapter。

另外為了要讓資料顯示出來,我們在畫面上新增ClientDataSet以及ListView,最後佈置畫面如下。

接下來我們要設定RESTClient及RESTReponseDataSetAdapter的屬性。

RESTClient的BASEURL貼上臺北市旅館資料庫的連結網址。

RESTResponseDataSetAdapter的屬性

DataSet: ClientDataSet1

Reponse: RESTResponse1

設定完成後,在RESTRequest1按右鍵,點選Execute後,如果成功取回資料會出現OK訊息。

開啟Tools→REST Debugger工具,將URLs貼上連結後,按下Send Request。

接著點選下面的body,來看看取得的json有那些資料,往下拉之後可以看到sTitle為旅館名稱。

接下來開啟View→LiveBindings Designer

將ClientDataset中的sTitle拖拉到ListView的Item.text。就完成了!

寫到這裡看起來完成了!不過只顯示旅館名稱有點掉漆,Listview可以多顯示點東西嗎?答案是可以的!但要先安裝沒有預設安裝的元件。

在 C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\Object Pascal\Mobile Samples\User Interface\ListView 藏有二個元件,我們先將程式存檔後,依序打開二個 .dpk的元件後,按右鍵Install安裝。

另外,別忘了在Tools→Options→Library中的Library Path加上路徑。

安裝完後,我們再開啟程式。點選ListView,開啟ItemApperarance的ItemAppearance屬性,我們看到出現了一個MultiDetailItem,點選它。

接著開啟LiveBinding Designer功能,看到多了幾個Detail,在這邊我們就把cat2(分類)、sAddr(地址)、memo_tel(電話)連結到明細裡。

這樣看起來就更專業了!接著大家可以發揮創意,結合之前教過的Google Map功能讓它顯示出來囉!

GitHub 程式下載 https://github.com/superlevin/XE6RestClientDemo

Delphi APP 開發入門(十)REST Client 開發的更多相关文章

  1. Delphi APP 開發入門(五)GPS 定位功能

    Delphi APP 開發入門(五)GPS 定位功能 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數 ...

  2. Delphi APP 開發入門(九)拍照與分享

    Delphi APP 開發入門(九)拍照與分享 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數:30 ...

  3. Delphi APP 開發入門(八)SQLite資料庫

    Delphi APP 開發入門(八)SQLite資料庫 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次 ...

  4. Delphi APP 開發入門(七)通知與雲端推播

    Delphi APP 開發入門(七)通知與雲端推播 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數: ...

  5. Delphi APP 開發入門(四)簡易手電筒

    Delphi APP 開發入門(四)簡易手電筒 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數:32 ...

  6. Delphi APP 開發入門(六)Object Pascal 語法初探

    Delphi APP 開發入門(六)Object Pascal 語法初探 分享: Share on facebookShare on twitterShare on google_plusone_sh ...

  7. Delphi APP 開發入門(三)簡易計算機

    Delphi APP 開發入門(三)簡易計算機 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數:68 ...

  8. Delphi APP 開發入門(二)Android/iOS設定,Hello World

    Delphi APP 開發入門(二)Android/iOS設定,Hello World 分享: Share on facebookShare on twitterShare on google_plu ...

  9. Delphi APP 開發入門(一)重生的 Delphi

    Delphi APP 開發入門(一)重生的 Delphi 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀 ...

随机推荐

  1. CentOS切换桌面模式和命令行模式

    CentOS系统中命令行模式的快捷键是[Ctrl]+[Alt]+[F1]~[F6],桌面模式的快捷键为[Ctrl]+[Alt]+[F7] 转自: http://blog.sciencenet.cn/b ...

  2. form 回车键(ENTER)

    <form class="clb_yyxx_nr" name="appointment_content" action="" onsu ...

  3. PHP常用技术文之文件操作和目录操作总结

    <?php header("content-type:text/html;charset=utf-8"); /* *声明一个函数,传入文件名获取文件属性 *@param st ...

  4. RabbitMQ组成及原理介绍-3

    rabbitmq作为成熟的企业消息中间件,实现了应用程序间接口调用的解耦,提高系统的吞吐量. 1.RabbitMQ组成 是由 LShift 提供的一个 Advanced Message Queuing ...

  5. LAMP环境如何配置多个域名访问

    背景: 公司有多个项目想要挂载在一个服务器上,因此需要多个域名来访问不同的网站,其实就是一个阿里云服务器,一个ip对应于多个域名 lamp环境: centos版本:命令查看centos的版本号:rpm ...

  6. Android5.0新特性-Material Design

    概述 2014年,Google携Android5.X重装归来.全新的UI设计和更加优化的性能,令开发人员眼前一亮 安装和配置Android5.0开发环境 开发Android还得靠AS.下载地址 htt ...

  7. open() 函数以 w+ 模式打开文件

    这种模式打开文件时,会先清空文件,然后才执行读写操作,当我们要执行读操作时,需要通过 seek() 方法将读取指针移到前面,才能读取内容 [root@localhost ~]$ cat 1.txt # ...

  8. phpstrom如何定义文件打开的方式

    今天想vue结合PHP来小写一段代码,但是发现自己把vue的文件放进去,会显示text文本,在刚开始的时候,编辑器会提示我们以什么格式打开,我没在意的选择了text,结果悲催了,那么在设置里面的哪个选 ...

  9. 【深入Java虚拟机】之二:Class类文件结构

    平台无关性 Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现.不仅使用Java编译器可以把Java代码编译成存储字节码的Cla ...

  10. c#基础 第三讲

    Random r = new Random();                 string x, y;             while (true)             {         ...