10分钟10行代码
开发Android与iOS等平台程序
现在,在国内使用Delphi的人数总体很少,但我相信这样一个好的工具应该让更多的人知道,让大家去了解这个工具,并从中获得工作效率的提升。
前段时间,完成《Delphi XE8 iOS与Android移动应用开发教程[完整中文版]》(在此购书)一书,每天都有人询问并购买。偶然间突发奇想,用书中的内容做一次突破性的尝试,就10分钟10行代码,看看能完成什么样的工作,于是在尝试了多个方案后确定的现在这套。
我不知道还有没有其他开发工具能用10分钟10行代码开发出一个后台数据服务+多个运行平台前端应用。虽然功能简单不一定适用(仅登录与数据展示),但至少Delphi能做到。此代码也可作为delphi开发手机连接企业数据库的教程使用。
整个过程已录制为视频,有兴趣的朋友可在腾讯或优酷搜索“10分钟10行代码”观看。
也可在CSDN搜索“10分钟10行代码”下载源码(http://download.csdn.net/detail/tanqth/9630395)。
在视频中可以看到,仅用不到三分钟时间,没写一行代码完成数据服务器程序开发;余下5分钟完成应用端程序配置与界面、再用2分钟完成10行代码,总共10分钟10行代码完成包括用户登录、数据读取、数据显示、检索等功能,并可生成Android、iOS、Mac、Win32、Win64多个运行平台下的应用程序(APP)。视频中使用Delphi XE8作为开发工具。
视频地址:http://v.qq.com/x/page/m0328h73bs7.html
以下是具体制作步骤:
新建一个项目:Delphi Projects >DataSnap Server > DataSnap Server
1. 第一步,选择Forms Application项目类型。
2. 第二步,VCL Application应用程序类型。
3. 第三步,在服务器功能列表是选择TCP/IP协议、Server Methods Class、Sample Methods。
4. 第四步,保留默认的TCP/ IP通信端口211。这将确保客户端和服务器之间的通信将通过默认 DataSnap 端口。
5. 选择服务器继承至TDSServerModule。
6. 保存窗体单元为DataSnapServerUnit。
7. 切换到DataSnapServerUnit,并将窗体的Name属性更改为DSServerForm。
8. 保存服务器方法单元 (默认情况下,通过该向导所创建︰ ServerMethodsUnit1)作为ServerModuleUnit。
9. 保存服务器容器单元 (默认情况下,通过该向导所创建︰ ServerContainerUnit1)作为ServerContainerUnit。
10. 将新项目保存为DataSnapServerProject。
11. 在Project Manager选择 ProjectGroup1,并将项目另存为DataSnapTutorialProjectGroup.groupproj.
1. 切换到ServerContainerUnit.pas文件把implementation下的uses子句替换成:usesWinapi.Windows,ServerModuleUnit。
2. 切换到ServerModuleUnit.pas 文件。
3. 在窗体设计器,更改Name属性为DSServerModule_Demodata。
4. 在服务器模块(ServerModule)配置以下属性:
(1)拖放 TSQLConnection 控件到服务器模块,并设置以下属性:
(2)拖放TSQLDataSet控件到服务器模块,并设置以下属性:
(3)拖放TdataSetProvider控件到服务器模块,并设置以下属性:
(4)拖放TSQLDataSet控件到服务器模块,并设置以下属性:
(5)拖放TdataSetProvider控件到服务器模块,并设置以下属性:
1. 在窗体设计器中,打开ServerContainerUnit.
2. 选择DSServerClass1,并更新OnGetClass事件的现有事件处理程序。DSServerClass1事件处理程序中添加以下代码:
PersistentClass := ServerMethodsUnit.TDSServerModule_Demodata;
右键单击DataSnapServerProject.exe并选择Run Without Debugging。
运行效果如下:
1. 在 ProjectManager,右键点击DataSnapTutorialProjectGroup,选择Add New Project。
2. 在Delphi Projects页选择Multi-Device Application:
3. 保存新单元为DataSnapClientUnit。
4. 保存新项目为DataSnapClientProject。
5. 打开DataSnapClientUnit,更改Name属性为DSClientForm。
6. 拖放以下控件到窗体设计器:
(1)TSQLConnection控件(SQLConnection1)
(2)TDSProviderConnection控件(DSProviderConnection1)
(3)TClientDataSet控件(ClientDataSet1)
l 设置 Name属性为ClientDataSet_login。
l 设置 RemoteServer属性为 DSProviderConnection1。
l 设置 ProviderName属性为:DataSetProvider_login。这个名称必须与DataSnap服务器提供者的名称匹配。
(4)TListView控件
(5)TLayout控件
(6)两个Tlabel,两个TEDIT,一个按钮控件放入Tlayout中;
7. 打开LiveBindings Designer连接数据的用户界面,如下所示:
(1)点击BindSourceDB1中的 COU,拖动到ListView1中Visible;
(2)点击BindSourceDB1中的 COU,拖动到BindSourceDB2中Active;
(3)点击BindSourceDB2中的 CITY_NAME,拖动到ListView1中Item.Detail;
(3)选中LinkFillControlToField1,设置下图三个属性;
8. 双击按钮,在代码编辑器中输入如入代码:
if not((Edit1.Text.IsEmpty()) or(Edit2.Text.IsEmpty())) then
begin
ClientDataSet_login.Active := False;
ClientDataSet_login.ParamByName('user_name').Value := Edit1.Text;
ClientDataSet_login.ParamByName('pass').Value := Edit2.Text;
ClientDataSet_login.Active := True;
Layout1.Visible :=not(ClientDataSet_login.FieldByName('cou').AsInteger=1);
end
else
ShowMessage('用户名或密码不能为空。');
9. 所有开发完成,可编译运行。发布IOS模拟器前需要部署MIDAS库,具体部署方法可参看《Delphi XE8开发iOS和Android移动应用开发教程[完整中文版]》内的介绍。