随笔分类 - delphi android
摘要:{ Google ZXing Call demo Delphi Version: Delphi XE5 Version 19.0.13476.4176 By: flcop(zylove619@hotmail.com) }unit UMain;interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, ...
阅读全文
摘要:uses Androidapi.JNI.Os, Androidapi.JNIBridge;function GetVibratorArray(const AIntArr: array of Int64): TJavaArray;var LIndex: Integer;begin Result := TJavaArray.Create(Length(AIntArr)); for LIndex := Low(AIntArr) to High(AIntArr) do Result.Items[LIndex] := AIntArr[LIndex];end;procedure Vibra...
阅读全文
摘要:代码来自网络http://files.cnblogs.com/china1/Bluetooth_LEDs_android.rar
阅读全文
摘要:unit Android.JNI.Toast;// Java bridge class imported by hand by Brian Long (http://blong.com)interface{$IFDEF ANDROID}uses Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.JNI.GraphicsContentViewText;{$ENDIF}{$IFDEF ANDROID}type TToastLength = (LongToast, ShortToast); JToast = interfa...
阅读全文
摘要:实例1 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; constWM_ME=WM_USER+100; //自定义消息; type TForm1 = class(TForm) Button1: TButton;procedure Button1Click(Sender: TObject);//第一种消息处理方式; 只能处理常量消息; procedure wmme(var message:T...
阅读全文
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;const TIMER_ID = 200;type TForm1 = class(TForm) Label1: TLabel; btkilltime: TButton; btsettime: TButton; procedure Button1Click(Sender: TObject); procedure btkilltimeCl...
阅读全文
摘要:var BmpPath: PChar;begin BmpPath := 'C:\Temp\Test.bmp'; SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BmpPath, SPIF_UPDATEINIFILE);end;函数原型BOOL WINAPI SystemParametersInfo( _In_ UINT uiAction, _In_ UINT uiParam, _Inout_ PVOID pvParam, _In_ UINT fWinIni);SPI_GETBEEP ...
阅读全文
摘要:unit OpenViewUrl;interface // URLEncode is performed on the URL// so you need to format it protocol://pathfunction OpenURL(const URL: string; const DisplayError: Boolean = False): Boolean;implementationuses IdURI, SysUtils, Classes, FMX.Dialogs,{$IFDEF ANDROID} FMX.Helpers.Android, Androidapi.JNI...
阅读全文
摘要:万事大吉,只欠根据字体文件(.ttf文件)切换阅读字体,通常Android系统只带三种以下字体.一般用Java/Eclipse开发的话比较简单,typeface的createFromAsset,createFromFile之类的很容易使用. 但是由于FireMonkey是跨平台的类库,必然不能和平台帮得太紧,所以提供了抽象的封装. 但是也许Delphi XE5是Android平台的第一个版本,有些地方难免有疏漏,FireMonkey的封装没有提供更换字体的功能.但是我要实现的电子书阅读器换字体几乎是必须要实现的功能,所以只能给FireMonkey动动小手术了.FireMonkey的字体加载是由
阅读全文
摘要:我觉得Delphi最强大的的功能之一就是开发数据库三层应用的DataSnap,在Android上的实现,首先是完成服务器的设计:(1)利用向导完成DataSnap服务器的框架,如下图:由于是实验,所以选择VCL程序,如果是实际应用,建议Service程序我习惯使用TCP/IP作为通讯协议,简单且速度快,Sample Methods是演示和测试用缺省211端口使用TDSServerModule作为数据服务提供主体,非常方便变更为Service应用服务(2)设置服务器数据在TDSServerModule中设置数据,为简便起见,采用BDE引擎的DBDEMOS下animals.dbf数据库,有文字也有
阅读全文
摘要:以下内容是根据Delphi的帮助文件进行试验的,主要测试Android下的消息提醒。首先建立一个空白的Android工程,然后在窗体中加入一个TNotificationCenter控件,如下图:再在uses中引用文件,如下:uses FMX.Platform;窗体上控件放置如下图:发送消息的代码如下:procedure TForm2.Button2Click(Sender: TObject);var MyNotification: TNotification;begin //通过消息中心创建消息 MyNotification := NotificationCenter1.CreateN...
阅读全文
摘要:Delphi XE5 下TEdit控件有个属性:KeyboardType,如下图:该属性决定了当焦点进入TEdit时,系统弹出的输入窗体,按照其帮助文件说明,不同取值的输入窗体不同,如下图:根据不同需要选择,也可以在运行期改变取值,通过放置一个TPopupBox控件来进行设置,设计界面如下:代码如下:procedure TfrmKeyboard.PopupBox1Change(Sender: TObject); begin case PopupBox1.ItemIndex of 0: Edit1.KeyboardType := FMX.Types.TVirtualKeyboardT...
阅读全文
摘要:delphi xe5 编译的程序在启动时会有短暂的黑屏出现,这个现象产生是因为启动首个activity时会加载一些初始化数据,整个时间大约在2~3秒,如何处理?网上有些资料,这里主要参考和整理了CSDN论坛上第42#liaobo的回复。第一步:建立2个文件:loading.png 和 styles.xml,其中loading.png 是启动时替代黑屏的图片,styles.xml是对背景图片的定义,其内容为: 特别需要注意的是:(1)Delphi中代码是大小写不敏感的,所以Delphi程序员一般在写程序时不太注意大小写。而在Java下大小写是敏感的,在styles.xml定义中“loading.
阅读全文
摘要:今天尝试了TTabControl的使用。在很多Android的app中,首次启动时都使用选项卡模式进行产品介绍,用户通过向左滑动,改变选项卡。在xe5下这项工作由TTabControl控件完成,如下图:1、TTabControl外观TTabControl的外观由属性TabPosition控制,可选项包括:tpTop 选项tab在控件上方tpBottom 选项tab在控件下方tpNone 以原点形式显示选项tab,在控件下方,如下图:tpDots 以方格形式显示选项tab,在控件下方,如下图:2、控制换页对换页的处理有以下几种形式:(1)按钮+Action控制通过创建标准Action——TCha
阅读全文
摘要:Delphi XE5下,TMainMenu和TPopupMenu不可用,那么如何支持Android的菜单呢?查看了一些资料,不得要领,只是摸索着先模拟一下吧。首先在窗体上放置一个TPanel,在其上放置一个TListBox充当菜单项,对每一个Item的OnClick事件编写具体的动作。如下图:由于要模拟菜单键,所以Panel放置在左下角,且设置Anchors属性为[akLeft,akBottom],即靠左靠下,已确保Panel在任何情况下都处在左下角,这个是Delphi非常强大的功能,不用编写代码来控制其位置,如下图:在Form的OnKeyDown事件中,对菜单按钮进行处理,按一下显示菜单Pa
阅读全文
摘要:Android程序开发必然用到按钮,在XE5下,按钮的一个比较重要的属性就是StyleLookup,预置了一系列常用的图标,如下图:另外2个常用属性就是:GroupName和IsPressed:一组按钮取一个相同的GroupName,控制其中只能有一个被按下按钮的分布一般有几种形式:1、自由摆放,也就是在Form上自由放置;2、放置在TGridLayout控件中,由TGridLayout自动排列,通过ItemHeight和ItemWidth控制每个格子的大小;3、放置在TToolBar控件中,如下图:
阅读全文
摘要:在Delphi中窗体与窗体之间的交互与调用非常简单,在FMX中这个优势得到了充分体现,先建立一个主窗体和一个需要调用的窗体: 在主窗体上放的按钮事件如下:…private { Private declarations } //定义私有窗体对象 Ffrm: TfrmOtherFMX;…procedure TfrmMainFMX.Button1Click(Sender: TObject); begin //创建并显示窗体 if not Assigned(Ffrm) then Ffrm := TfrmOtherFMX.Create(Self); Ffrm.Show; en...
阅读全文
摘要:在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 Me..
阅读全文
摘要:按照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类仍然存在,但MainF..
阅读全文
摘要:Delphi XE5 出来了,支持Android的开发,试用了一下,有几个问题:1、只支持ARM7的设备,不支持Inter设备。手上刚好有一个华硕K004,很遗憾用不上,只能用手机试了。2、要支持联机调试必须安装USB驱动,但一般设备都不带,后来安装360手机助手后自动安装了USB驱动,可用了。3、支持的控件、属性、方法、函数库都大变了,需要重新学习。4、联机调试的速度慢得惨不忍睹,使用仿真机还能忍受一下,使用实际设备慢得无法调试,是不是跟我用的USB驱动有关?5、编译后的apk至少5M以上,按照官方说法是:毕竟要跨平台,体积大很正常。看来Delphi XE5 支持Android的开发还有一段
阅读全文

浙公网安备 33010602011771号