|
2013年10月9日
摘要:
//以下代码是错误的!!!//这一节主要告诉大家,以这种方式进行开发dll是不对的以及错误原因,正确的方式是什么!//DLL内创建对象,并把对象返回function GetDataSet(str,conn:PChar): TADODataSet;stdcall; begin Result:=TADODataSet.Create(nil); Result.Close; Result.ConnectionString:=conn; Result.CommandText:= str; try Result.Open; except on E:Excepti... 阅读全文
摘要:
function ExecShowModal(APath: PChar; ACmdShow: Integer; ATimeout: Longword): Integer;var vStartupInfo: TStartupInfo; vProcessInfo: TProcessInformation;begin FillChar(vStartupInfo, SizeOf(TStartupInfo), 0); with vStartupInfo do begin cb := SizeOf(TStartupInfo); dwFlags := STARTF_USESHOWWIN... 阅读全文
摘要:
【容器+结构体】注意事项1//这里的List是一种容器,是一种泛指,可以是List、StringList、ThreadList、ObjectList等!//现以List为例做一个例子!unit StudentExample;interfaceuses Classes,SysUtils,Dialogs;type //定义结构体及其指针,定义指针目的在于把指针放到List容器中 PStudent = ^TStudent; TStudent = packed record Name: PChar;//这里以指针数据为例(简单数据类型太简单,没什么可注意的) Age: Intege... 阅读全文
摘要:
RTTI需要引用单元TypeInfoGetPropInfo 函数用于获得属性的 RTTI 指针 PPropInfo。它有四种重载形式,后面三种重载的实现都是调用第一种形式。AKinds 参数用于限制属性的类型,如果得到的 PPropInfo 不属于指定的类型,则返回 nil。function GetPropInfo(TypeInfo: PTypeInfo; const PropName: string): PPropInfo;function GetPropInfo(Instance: TObject; const PropName: string;AKinds: TTypeKinds = [ 阅读全文
摘要:
//想实现在函数中生成Memo1的内容,而后赋给Memo.Lines//方法1:var s: TStrings;begin s := TStringList.Create; AddMemoData(s); Memo1.Lines := s; //进行对象复制,而不是简单的指针赋值{procedure TCustomMemo.SetLines(Value: TStrings);begin FLines.Assign(Value);//进行对象的深度复制end;} s.Free; //释放TStringsend;//方法2var s:TStrings;//全局function A... 阅读全文
摘要:
//该例程为在系统级屏蔽一些系统键、如WIN、TAB、CAP、POWER、SLEEP、HOME等!//屏蔽组合键下面例程不适用!(比如CTRL+ESC需要在钩子函数中用(p.vkCode = VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000) 0)进行判断,也不难,这里只是举个简单的例子)unit KeyBlocker;interfaceuses SysUtils, Classes, Windows, Messages;const WH_KEYBOARD_LL = 13;type PKBDLLHOOKSTRUCT = ^KBDLLHO... 阅读全文
摘要:
var Str:TStream; begin Str:=TFileStream.Create('c:/windows/system32/taskmgr.exe',fmOpenWrite); end; View Code 阅读全文
摘要:
//方法1: uses EncdDecd; Memo2.Text:=UTF8Decode( DecodeString(Memo1.Text));//方法2:// 使用控件 Memo2.Text:=IdDecoderMIME1.DecodeString(Memo1.Text);View Code 阅读全文
摘要:
unit Androidapi.JNI.Network;interfacefunction IsConnected: Boolean;function IsWiFiConnected: Boolean;function IsMobileConnected: Boolean;implementationuses System.SysUtils, Androidapi.JNIBridge, Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, FMX.Helpers.Android;type JConnect... 阅读全文
摘要:
uses AndroidAPI.JNI.GraphicsContentViewText, AndroidAPI.JNI.JavaTypes, AndroidAPI.JNI.OS; function BatteryPercent(const aContext: JContext): Integer; var filter: JIntentFilter; battery: JIntent; level, scale: Integer; begin filter := TJIntentFilter.Create; filter.addAction(TJIntent... 阅读全文
2013年10月8日
摘要:
在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 阅读全文
摘要:
在VCL中,关闭程序的主窗体也就意味着程序的主循环结束,主程序自然而然结束。所以在主窗体中使用窗体的关闭函数(Close)即可,如下:procedure TfrmMain.btncloseClick(Sender: TObject);begin Close;end;在FMX中,由Activity替代了Form的概念,虽然TForm类仍然存在,但MainForm通过关闭函数无法结束程序,使用Application.Terminate均无效,调整为:uses FMX.Platform.Android;procedure TForm2.SpeedButton1Click(Sender: TObjec 阅读全文
摘要:
procedure SetBack(const AAction : JString); //后台运行。。var Intent: JIntent;begin Intent:= TJIntent.JavaClass.init(AAction); intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); SharedActivityContext.startActivity(Intent);end;调用SetBack(TJ... 阅读全文
2013年10月7日
摘要:
最近发现经常无原无故自动乱点屏幕,非常不方便,找了下网上解决的方法,有四个:方案一:1、 关闭手机,取出电池,手机静置五分钟左右2、 找一根USB数据线,连接手机3、 洗手,或者把手弄湿(关键步骤,为的是更好把静电导出去)4、 湿手状态下同一只手的拇指接触USB线另一端的金属部分,食指按到地上两秒左右(初步去电)5、 拆开后盖我们可以看到一个小小的金属块在电池仓隔壁,这就是手机震动的发生器,俗称震子。由于它也是直接连接手机主板的,我们可以如法炮制,湿手状态下同一只手的拇指接触震子,食指按到地上两秒左右。 方案二: 最近屏幕老是出现飘移,就是屏幕被莫名乱点,点不... 阅读全文
2013年9月29日
摘要:
其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍.1.短信息.很简单方法a.不使用Intent而是直接发短信.smsManager对应的Delphi代码应该是:usesAndroidapi.JNI.JavaTypes,Androidapi.JNI.Telephony;varj: JSmsManager;beginj := tjsmsmanager.Create;j.sendTextMessage(stringtojstring('137114553XX'), nil, stri 阅读全文
摘要:
Delphi早就把IO相关的都提取到System.IoUtils单元中了.路径操作就使用TPath的方法都很方便.usesSystem.IoUtilsTPath.GetTempPath//临时目录TPath.GetCameraPath//照相机目录(照片/录像)TPath.GetMusicPath//音乐目录TPath.GetDownloadsPath//下载目录……如果使用TPath类的静态方法那么代码就是跨平台的,在Windows,Mac,iOS,Android上都能用.如果仅仅对Android的操作也可以使用Androidapi.IOUtils单元的那些GetXX的函数,也很简单,都没有 阅读全文
摘要:
手机号不是存在SIM卡上的,SIM卡只有一个串号.在运营商的服务器上有手机号和序号对应的一张表.所以你SIM卡办理遗失,运营商只要把新SIM卡的串号和你原来的手机号绑定即可.获取手机号的唯一办法是收个短信,短信里面有你的手机号码.所以很多程序为了获取手机号会要求你注册时发短信,然后它给你回个短信.usesAndroidapi.JNI.GraphicsContentViewText, Androidapi.JNIBridge,Androidapi.JNI.Telephony, Androidapi.JNI.JavaTypes, FMX.Helpers.Android;varTelephonyMa 阅读全文
摘要:
经过测试,将sqlserver里的字段由varchar 或者char 改为 nvarchar 或者nchar然后在手机端的clientdataset 增加字段的时候数据类型选择widestring如图 阅读全文
2013年9月26日
摘要:
TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话。以下代码实现xe5 开发的文本转语音的方法和访问蓝牙一样,这里用javaclass的接口实现接口声明部分:{*******************************************************}{ }{ CodeGear Delphi Runtime Library }{ Copyright(c) 2013 Jeff O... 阅读全文
摘要:
C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile例子中的绑定方式如下图:1、拖拽一个listview到界面上,然后用绑定向导2、选择listview3、选择tprototypebindsource4、点击增加5、选择前九个类型6、在绑定设计界面将 colorname1 拖拽至 item.text 就完成了帮点显示颜色名称了如图7、imagelist 如图:选择listview的itemapperance属性为 imagelistitem然后在绑定向导里 将contactbitmap1 拖拽至 itm.bitma 阅读全文
摘要:
用以下代码中的接口实现控制蓝牙的开、关及详细信息unit Androidapi.JNI.BluetoothAdapter;// (c) RedTitan Technology 2013// JNI BLUETOOTH import demo// Note - REQUIRES - PROJECT OPTIONS - USES PERMISSIONS - BLUETOOTHinterfaceuses Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Classes;type /////////////////////////// Bluetoo... 阅读全文
摘要:
本篇文章我们来看一下delphi xe5 在android程序里怎样启动照相机并获取所拍的照片,本代码取自xe自带打sample,路径为:C:\Users\Public\Documents\RAD Studio\12.0\Samples\MobileCodeSnippets\AccessCameraApp1、前两步骤新建firemonkey mobile application 然后 选择blank application2、界面摆放如下: toolbar 、image 、actionlist2、右键点击new standard action然后选择 TakePhotoFromCameraAc 阅读全文
摘要:
把供手机端调用的web服务完成,接下来实现手机端调用webservices获取数据1、新建firemonkey mobile application2、选择blank application3、这里选择分辨率,我用的手机是三星的p3100,没别的优点 就是大,7寸的屏,我女儿管这个叫平板手机 O(∩_∩)O~4、界面布局摆放如下:5、绑定数据集 xe5中使用livebingding来绑定数据集,没有datasource属性了,理论上所有的控件都可以绑定数据集。 先在clintdataset中添加字段依次添加 code ,name ,py_code 三个字段,然后选中grid,点击,然后将dat 阅读全文
摘要:
其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍.1.短信息.很简单方法a.不使用Intent而是直接发短信. smsManager对应的Delphi代码应该是:uses Androidapi.JNI.JavaTypes,Androidapi.JNI.Telephony;var j: JSmsManager;begin j := tjsmsmanager.Create; j.sendTextMessage(stringtojstring('137114553XX'), nil, 阅读全文
摘要:
① 就用那个bitmap设计工具,先打开vcl里的皮肤(..... \Embarcadero\RAD Studio\12.0\Redist\styles\vcl里)② save as 转换成fmx里的.style文件③ 用stylebook控件里load这个转过来的皮肤 ④ 收工…… 在FireMonkey移动窗体设计器双击stylebook1选择stylebook1在下拉菜单Using the preceding procedure as a guide:Drop four stylebooks on the form, one each for Windows, Mac OS X, ... 阅读全文
2013年9月17日
摘要:
建立一个webservices stand-alone vcl application 作为手机访问的服务端1、new->other->webservices2、选择stand-alone vcl application3、这里使用 默认端口80804、选择创建接口5、给服务起个名字6、点ok后保存工程,保存为目录如下:7、至此为止,什么代码都不写,点击运行,我们看到8、启动并点击 open browser按钮在浏览器里看到一个web服务就创建完成了。================================================================== 阅读全文
摘要:
通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍.1.短信息.很简单方法a.不使用Intent而是直接发短信. smsManager对应的Delphi代码应该是:uses Androidapi.JNI.JavaTypes,Androidapi.JNI.Telephony;var j: JSmsManager;begin j := tjsmsmanager.Create; j.sendTextMessage(stringtojstring('137114553XX'), nil, stri 阅读全文
摘要:
Delphi XE5支持Android ARM的开发,可以在Android虚拟机里运行,因此建议将XE5安装在64bit的Windows,内存可以大于3GBDelphi XE5安装光盘中包含了最基本的Android开发的环境文件,但是并没有提供Android模拟机。我们需要安装Android的SDK后生成Android模拟机,安装步骤:1.到http://www.oracle.com/technetwork/java/javase/downloads/index.html下载JDK1.7安装2.到http://developer.android.com/sdk/index.html下载Andr 阅读全文
摘要:
找到Delphi XE5的安装根目录 .... \Program Files (x86)\Embarcadero\RAD Studio\12.0\bin下的cglm.ini文件,打开cglm.ini文件[Embarcadero License Management]RootDir=${MODULE_DIR}\..LicenseDir=${ROOTDIR}\LicenseInfoDir=${COMMON_APPDATA}\Embarcadero\.licensesSlipDir=${COMMON_APPDATA}\Embarcadero\RegExe=bdsreg.exeLockType=5[E 阅读全文
2012年4月28日
摘要:
var i:Integer;begin for i:=0 to componentcount-1 do begin if (components[i] is TEDIT) then begin TEDIT(components[i]).text:=''; end; end; end; 阅读全文
|