摘要: 以下内容是根据Delphi的帮助文件进行试验的,主要测试Android下的消息提醒。首先建立一个空白的Android工程,然后在窗体中加入一个TNotificationCenter控件,如下图:再在uses中引用文件,如下:uses FMX.Platform;窗体上控件放置如下图:发送消息的代码如下:procedure TForm2.Button2Click(Sender: TObject);var MyNotification: TNotification;begin //通过消息中心创建消息 MyNotification := NotificationCenter1.CreateNoti. 阅读全文
posted @ 2013-11-25 19:46 leon_kin 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 我觉得Delphi最强大的的功能之一就是开发数据库三层应用的DataSnap,在Android上的实现,首先是完成服务器的设计:(1)利用向导完成DataSnap服务器的框架,如下图:由于是实验,所以选择VCL程序,如果是实际应用,建议Service程序我习惯使用TCP/IP作为通讯协议,简单且速度快,Sample Methods是演示和测试用缺省211端口使用TDSServerModule作为数据服务提供主体,非常方便变更为Service应用服务(2)设置服务器数据在TDSServerModule中设置数据,为简便起见,采用BDE引擎的DBDEMOS下animals.dbf数据库,有文字也有 阅读全文
posted @ 2013-11-25 19:44 leon_kin 阅读(211) 评论(0) 推荐(0) 编辑
摘要: Delphi XE5 下TEdit控件有个属性:KeyboardType,如下图:该属性决定了当焦点进入TEdit时,系统弹出的输入窗体,按照其帮助文件说明,不同取值的输入窗体不同,如下图:根据不同需要选择,也可以在运行期改变取值,通过放置一个TPopupBox控件来进行设置,设计界面如下:代码如下:procedure TfrmKeyboard.PopupBox1Change(Sender: TObject);begin case PopupBox1.ItemIndex of 0: Edit1.KeyboardType := FMX.Types.TVirtualKeyboardType.vkt 阅读全文
posted @ 2013-11-25 19:43 leon_kin 阅读(230) 评论(0) 推荐(0) 编辑
摘要: delphi xe5 编译的程序在启动时会有短暂的黑屏出现,这个现象产生是因为启动首个activity时会加载一些初始化数据,整个时间大约在2~3秒,如何处理?网上有些资料,这里主要参考和整理了CSDN论坛上第42#liaobo的回复。第一步:建立2个文件:loading.png 和 styles.xml,其中loading.png 是启动时替代黑屏的图片,styles.xml是对背景图片的定义,其内容为:特别需要注意的是:(1)Delphi中代码是大小写不敏感的,所以Delphi程序员一般在写程序时不太注意大小写。而在Java下大小写是敏感的,在styles.xml定义中“loading”的 阅读全文
posted @ 2013-11-25 19:42 leon_kin 阅读(199) 评论(0) 推荐(0) 编辑
摘要: Delphi XE5下,TMainMenu和TPopupMenu不可用,那么如何支持Android的菜单呢?查看了一些资料,不得要领,只是摸索着先模拟一下吧。首先在窗体上放置一个TPanel,在其上放置一个TListBox充当菜单项,对每一个Item的OnClick事件编写具体的动作。如下图:由于要模拟菜单键,所以Panel放置在左下角,且设置Anchors属性为[akLeft,akBottom],即靠左靠下,已确保Panel在任何情况下都处在左下角,这个是Delphi非常强大的功能,不用编写代码来控制其位置,如下图:在Form的OnKeyDown事件中,对菜单按钮进行处理,按一下显示菜单Pa 阅读全文
posted @ 2013-11-25 19:41 leon_kin 阅读(222) 评论(0) 推荐(0) 编辑
摘要: Android程序开发必然用到按钮,在XE5下,按钮的一个比较重要的属性就是StyleLookup,预置了一系列常用的图标,如下图:另外2个常用属性就是:GroupName和IsPressed:一组按钮取一个相同的GroupName,控制其中只能有一个被按下按钮的分布一般有几种形式:1、自由摆放,也就是在Form上自由放置;2、放置在TGridLayout控件中,由TGridLayout自动排列,通过ItemHeight和ItemWidth控制每个格子的大小;3、放置在TToolBar控件中,如下图: 阅读全文
posted @ 2013-11-25 19:40 leon_kin 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 在Delphi中窗体与窗体之间的交互与调用非常简单,在FMX中这个优势得到了充分体现,先建立一个主窗体和一个需要调用的窗体:在主窗体上放的按钮事件如下:…private { Private declarations } //定义私有窗体对象 Ffrm: TfrmOtherFMX;…procedure TfrmMainFMX.Button1Click(Sender: TObject);begin //创建并显示窗体 if not Assigned(Ffrm) then Ffrm := TfrmOtherFMX.Create(Self); Ffrm.Show;end;在另外一个窗体的按钮事件中关闭 阅读全文
posted @ 2013-11-25 19:39 leon_kin 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 在VCL下,常用的询问对话框包括procedure TfrmMainVCL.btnAppMessageboxClick(Sender: TObject);begin if Application.MessageBox('是否退出?', '询问', MB_YESNO + MB_ICONQUESTION) = IDYES then begin Close; end;end;或者是:uses System.UITypes;procedure TfrmMainVCL.btnMessageDlgClick(Sender: TObject);begin if Message 阅读全文
posted @ 2013-11-25 19:38 leon_kin 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 按照Embarcadero的说法:Windows平台只能使用VCL,Windows、iOS和Android都可以使用FMX,并且VCL和FMX不能同时在一个程序中。FMX的用法与VCL有一定的差异,先从最简单的说起:应用程序的关闭退出在VCL中,关闭程序的主窗体也就意味着程序的主循环结束,主程序自然而然结束。所以在主窗体中使用窗体的关闭函数(Close)即可,如下:procedure TfrmMain.btncloseClick(Sender: TObject);begin Close;end;在FMX中,由Activity替代了Form的概念,虽然TForm类仍然存在,但MainForm通过 阅读全文
posted @ 2013-11-25 19:37 leon_kin 阅读(220) 评论(0) 推荐(0) 编辑
摘要: Delphi XE5 出来了,支持Android的开发,试用了一下,有几个问题:1、只支持ARM7的设备,不支持Inter设备。手上刚好有一个华硕K004,很遗憾用不上,只能用手机试了。2、要支持联机调试必须安装USB驱动,但一般设备都不带,后来安装360手机助手后自动安装了USB驱动,可用了。3、支持的控件、属性、方法、函数库都大变了,需要重新学习。4、联机调试的速度慢得惨不忍睹,使用仿真机还能忍受一下,使用实际设备慢得无法调试,是不是跟我用的USB驱动有关?5、编译后的apk至少5M以上,按照官方说法是:毕竟要跨平台,体积大很正常。看来Delphi XE5 支持Android的开发还有一段 阅读全文
posted @ 2013-11-25 19:36 leon_kin 阅读(209) 评论(0) 推荐(0) 编辑