Delphi XE7 手机开发学习笔记之四-listbox和style

delphi xe7 自身继续支持皮肤功能,也就是Style,默认移动应用有两个style,当然还有 bonus包有更多选择。

listbox作为手机应用最常见的UI形式,结合了style之后就显得更cool了,使得应用也略微高大上一些了。

xe7-android-style-1  xe7-android-style-2

在master窗口中放置一个stylebook,然后在多试图中为android和iphone都各自选择合适的style文件即可(通过resource属性然后增加)。

也可以动态读入,一般来说应该采用动态读入比较好,接下去测试一下不同尺寸的android或者iphone屏幕如果是设计阶段读入会不会使得每一个form文件都很大。(目前测试如果一个form读入style文件后,会有将近2M大,因为style中所有的定义和图片都作为资源嵌入在了form文件中)

之前官方的premium pack中的style包好像比较难找,其实在delphi xe7 lite的安装程序中是有好心人打包进去的。

Delphi XE7 手机开发学习笔记之三-继续一些listbox的简单设置

首先这两天学习曲线还是陡峭,碰到一些问题,主要是项目设置上的。因为在两台电脑间切换开发的关系,本来用github什么没有问题,但不知道哪里出了问题,项目管理发生了混乱,不管是android还是ios应用,都不能正常编译。

基于项目向导生成的项目文件包含全部从win32、win64、android和iphone平台。并且会设置正确的项目配置,在Project-Options中可以看到。我的问题在于,在某次项目提交github的时候,出现了问题,在打开项目时候,只有了win32平台,然后通过手工添加的android和iphone平台,就不太对了,暂时没有找到具体原因,我重新按照标准流程建立项目,发现没有问题。

因为Delphi XE7这次比较厉害,是真编译,so文件啊,o文件啊,还有手机app自己需要的各类配置文件,的确一大堆。凡是就是有利有弊了。

另外,在iphone真机调试的时候,也出现了帮助文件中没有的错误代码,不过实际上app已经传输到了手机,就是不能自动启动。

我重新建立了一个项目,功能如下:

  1. 简单的tabitem,简单的listbox,选择图片后打开手机的相册选择
  2. 选择好的图片会显示在预先设置好的image上

xe7_m_listview_image_1  xe7_m_listview_image_2  xe7_m_listview_image_3

选择本地相册通过XE7的一个标准action,就很容易做到了,TakePhotoFromLibraryAction。

整个功能只有两行代码,下面是调用选择本地相册的代码:

procedure TForm2.ListBoxItem1Click(Sender: TObject);
begin
  TakePhotoFromLibraryAction1.ExecuteTarget(Sender);
end;

然后是用户选中后,在listbox中显示选中的图片:

procedure TForm2.TakePhotoFromLibraryAction1DidFinishTaking(Image: TBitmap);
begin
  Image1.MultiResBitmap.Items[0].Bitmap.Assign(image);
end;

需要说明的是:

  1. 因为不同手机,特别是ipone有一般屏幕和视网膜屏幕的区分,所以图片都要考虑适应不同的分辨率,Delphi通过image这个改良过的图片控件可以根据不同分辨率。主要是通过属性MultiResBitmap以及子属性Scale。对于iphone来说,Scale就是1或者2,或许iphone 6和iphone 6plus可以让Scale有更多的取值。对于android来说,分辨率实在太多,按照Delphi的帮助来说,可以设置Scale的值为1.33、1.5之类。如果一个图片在Scale=1的时候分辨率是90*90,那么Scale=2的时候,就要是180*180的,这样保证在不同设备上的效果。
  2. 另外就是用到了一个布局的空间,GridLayout,通过设置其中item的高度和宽度,可以做到一个类似表格的布局,然后可视控件放在表格中的时候,会按照设定的item尺寸自己适应,再通过根据需要调节这些可视控件的Margin等,来控制疏密和布局。这个方法很像web设计中的方式,还是很方便的。

虽然碰到了一些小问题,但是总的来说,几天可以达到这样的进度,在我比较忙碌的工作生活中,还是比较满意的。到目前为止,基本还是在熟悉listbox以及相关的很多用法。firemoney和原来的vcl有一个非常大的区别就是,控件可以随意放在其他控件上面,成为root和sub的关系,这对布局来说非常方便灵活,使得很多创意容易实现。

之后将继续研究listbox的用法,包括和数据、数据库的绑定等。

Delphi XE7 手机开发学习笔记之二-listbox模仿ios wifi设置

在智能手机里用的最多的界面形式就是列表显示了,通称tableview。在delphi中,实现tableview有listbox和listview两种方式。先从listbox开始学习。listbox或者说tableview的试用细节非常多,也的确很有用,智能手机虽然分辨率很高,但是屏幕小,所以在呈现信息方面要方便显示方便切换。

我们来复刻一下ios设备中的wifi设置,我觉得这是一个比较好的学习开发的方法,直接开始做真正应用肯定不行,做一些不痛不痒的例子也浪费时间,所以学习现成的应用样式比较好。如同产品最难的是需求,复刻功能的话,需求已经基本ok了,业务逻辑不用多考虑了,只要考虑怎么实现就行。

就基本逻辑是如下图显示一个简单的设置tableview,其中“无线局域网”这里可以点击,到wifi具体设置界面,标题是“无线局域网”。

ios_wifi_1  ios_wifi_2

 

Continue reading

Delphi XE7 手机开发学习笔记之一-第一次Hello

之前说过,Delphi XE7是做的比较成熟的产品了,更像是一个Delphi XE6的update2版本,目前看来比较稳定,对于Firemoney框架的不断完善使得手机跨平台开发方便许多。

一年前,XE5出来的时候,也做了一点学习笔记,不过没有坚持下去,一方面自己的问题,一方面当时还是碰到不少技术上的问题无法解决,因此感觉做完整应用有些困难。

或许这次可以坚持,版权所有,可以转载,不得用于商业用途。如果真的可以写个几十篇,我就自己用在商业用途了,经济还是物质的基础。

国内Delphi手机开发的资料不多,并且大多数以android举例,当然android的确机器比较便宜,不过使用iphone的人的购买力要强很多,所以如果从商业应用角度考虑,还是不能忽视iphone市场,特别是XE7本来就是跨平台开发的,如果只做android,还不如用java算了。

作为一个中等发烧友,我准备了iphone、android的各类手机和pad,来体验一下跨平台的魅力。只有跨平台,才是真正的节约生产力。

前言到此为止。

第一篇学习笔记,从一个小小的Hello程序开始,还是向Hello World致敬。

新建一个项目。

当然是 Multi-Device Application,XE7中很牛的技术,到后面就知道了。选择 Tabbed,这种界面样式是手机中最常用的,有几个选项卡的方式,基本是一般应用的默认界面了,在tab中可以设计非常复杂和漂亮的界面,但是主体用tabbed界面是没问题的,用户也非常容易掌握。

project 名字修改为 hello,主程序pas文件修改为 uHello。这是我的习惯,个人按照自己喜欢的命名风格即可。

xe7_mobile_hello_1

Continue reading

Delphi XE7 手机开发初探

XE7对于手机的开发有了质的飞跃,从XE2到现在,历经第五个版本,终于不再是一个玩具语言了。

比如,在mac上接上iphone,下载了开发用的配置文件,然后通过windows上的开发环境连接到mac后,windows上可以很快看到iphone设备,然后选择发布到iphone设备上调试,程序编译后就发布到iphone上了,非常便捷。对于容易控制的android来说,则更加容易。

在做功能点poc的时候,发现多设备支持特性真的很惊人,开发者可以选择构建不同的android或者iphone、ipad各类尺寸界面,然后针对UI控件进行精细的控制,但是背后的业务逻辑代码是一致的,感觉这是非常了不起的技术。对于跨平台开发来说,最难的就是不同智能手机的屏幕大小和UI控件的不一致了,Delphi到了XE7,终于做到了目前最好。

通过llvm真编译的代码,基本和原生代码没有什么区别,不是phonegap的基于webview的框架和一些半编译引擎可以相比的了。

包括侧栏滑动、tab group切换、tableview复杂列表呈现等等,都是举手之劳。在一些delphi论坛中,很多老delphier都很激动,或许,7这个幸运的数字,代表着重生。

坚持,总不会太差。

delphi xe7 绿色版以及补丁等

delphi xe7 如约而至,在一个小众的圈子里,大家欢呼雀跃。

radHPicon140x155

没有什么语言是万能的,合适就好,只要它还没有彻底没落,甚至在非常努力地继续发展,我们有什么理由放弃,包括自己呢?

万能的网友们,放出的delphi xe7的绿色版,用绿色版有很多好处,以后升级什么的都容易:

以下是摘要信息,原帖在里,有详细说明。

RAD Studio XE7 绿色版.7z(1.73GB)
下载地址:http://yunpan.cn/Q7QtFpvGK6gdh
密码:ae95
MD5: C10B10A99E824371CB5BA365A854E402
SHA1: 2566F926B5BEA59805C2A88684D379D1EFBA0BE7
CRC32: 04577E48

RAD Studio XE7 Help.7z(245MB)
下载地址:http://pan.baidu.com/s/1bndCarP
密码:5e03
MD5: C28851D4412168FB70D6DADCA9995F63
SHA1: 6CD0C244BA6B19D1114898C2523A89E131F43ABE
CRC32: 6664E28A

RAD Studio XE7 Green Package.7z(118MB)
下载地址:http://pan.baidu.com/s/1qWjrhAs
密码:kkcy
MD5: D4FC2893B57C78C69AA7C2544BC7384E
SHA1: D677D76ECF66FC3A702C3F8EAC36041EECB46B14
CRC32: 905EE168

这里有xe7的序列号信息和破解信息,是否可以和绿色版本一起做出可以完美使用的版本,还没有测试过。

http://bbs.2ccc.com/topic.asp?topicid=462627

稍晚有时间进行分流。

—————————–

测试了,delphi xe7 安装和crack成功,用的是绿色版本,先绿色安装,然后crack,一次就搞定了,win7 64位。

delphi xe7 crack 分流下载:http://pan.baidu.com/s/1gdzi9Rt

—————————–

delphi c++ builder xe7 百度盘分流

delphi xe7 绿色版 http://pan.baidu.com/s/1rlu2q
delphi xe7 绿色化程序1.1版本,替代上面内置的 http://pan.baidu.com/s/1c0lbAwC
delphi xe7 帮助文件 http://pan.baidu.com/s/1o6hZxQ6
delphi xe7 Adnroid SDK http://pan.baidu.com/s/1dD5st7V
delphi xe7 破解程序 http://pan.baidu.com/s/1xWWvs