Delphi从很早就开始支持.Net框架,那么自然可以想象我们就能用Delphi开发基于.Net运行的Windows Mobile程序,不过开发过程肯定比较复杂,因为Delphi没有提供对应的工具,不过国外牛人实在太多,其中就有一个大牛搞了个Compact Framework Build Helper,把在Delphi上开发Windows Mobile程序的过程做了极大的简化,目前的最新版是1.3,而且也已经支持Delphi2006了。
它官方网站上提供的压缩包好像是坏的,解压缩报CRC错误,下了几次都不行,后来总算在别的网站上下到了个CFBuilder_Setup13.exe安装程序。
测试环境:
WindowsXP+SP2
Microsoft Visual Studio 2005+SP1
Delphi2006+SP2
我是在已配置好的VS2005+Windows Mobile 5.0开发环境中再配置Delphi2006的,这样应该会容易许多,因为需要的基本软件已经全部都有了。具体配置可以参看我的另一篇文章《Visual Studio 2005中配置Windows Mobile 5.0开发环境》。
如果不想如上文安装VS2005环境,个人感觉需要安装的软件以及安装顺序如下:
1..Net Compact Framework 2.0(运行编译的基础)
2.Windows CE 5.0 Emulator(运行镜像必备,目前公开下载的似乎只有英文版的)
3.Windows Mobile 5.0 Emulator Images for Pocket PC – CHS(中文镜像)
4.Compact Framework Build Helper
全部安装好后启动Delphi2006,首次运行会出现“Compact Framework Builder Options”配置窗口,基本所有的设置都只需保持默认即可。
在“Emulators”选项卡中进行设置,配置模拟器的参数,如此就可自动启动模拟器并进行部署。由于“Windows CE 5.0 Emulator”软件我安装了几次都没装成功,所以我是在VS2005中使用设备仿真器管理器启动的模拟器。下图中的参数是参考一位网上前辈的设置填的,应该不会有什么问题。
设置完成后,下面开发一个简单的Demo。
首先新建一个“Smart Device Application”项目。
frmMain如下图设计。
Button1的事件中添加这么一句:
messagebox.Show('Hello World!');
点击“Smart Device”工具栏上最左边的“编译”按钮就可编译,如果模拟器设置是正确的,那么点击“运行”就会编译程序,然后启动模拟器并进行部署。
不过此时编译是通不过的,会提示有未声明变量,要将procedure frmMain.InitializeComponent中关于SuspendLayout、Name、TabIndex、AutoScaleBaseSize、ResumeLayout的这些属性或方法注释掉,个人感觉可能是在.Net Compact Framework中没有这些属性或方法,所以不能使用它们。
注释掉后,在我的机子上试的时候是仍然不能编译通过的,Delphi提示找不到MainForm.frmMain.resources,我找不到原因,只能先把位于Project1.dpr中的
{$R 'MainForm.frmMain.resources' 'MainForm.resx'}
这句话删掉,这时编译就可以通过了。
如果模拟器设置是正确的,那么会自动启动并部署。但我是从设备仿真器管理器启动的,此时需要选择菜单“文件”-》“配置”打开“仿真程序属性”,在其中的“共享文件夹”中设置本机上的一个文件夹,然后将Delphi编译生成的exe文件拷到这个目录下。
共享文件夹后就会发现“我的设备”中出现了“Storage Card”文件夹,这就是共享的内容。
点击进入,打开刚编译生成的Project1.exe。
可看见运行界面如下。
点击按钮出现“Hello World”提示。
如此,在Delphi中开发的一个Windows Mobile程序就完成了。Compact Framework Builder还没有深入用过,这个简单的Demo是可以通过,不知道复杂点的程序能不能行了,要在实践中去慢慢尝试了。
它官方网站上提供的压缩包好像是坏的,解压缩报CRC错误,下了几次都不行,后来总算在别的网站上下到了个CFBuilder_Setup13.exe安装程序。
测试环境:
WindowsXP+SP2
Microsoft Visual Studio 2005+SP1
Delphi2006+SP2
我是在已配置好的VS2005+Windows Mobile 5.0开发环境中再配置Delphi2006的,这样应该会容易许多,因为需要的基本软件已经全部都有了。具体配置可以参看我的另一篇文章《Visual Studio 2005中配置Windows Mobile 5.0开发环境》。
如果不想如上文安装VS2005环境,个人感觉需要安装的软件以及安装顺序如下:
1..Net Compact Framework 2.0(运行编译的基础)
2.Windows CE 5.0 Emulator(运行镜像必备,目前公开下载的似乎只有英文版的)
3.Windows Mobile 5.0 Emulator Images for Pocket PC – CHS(中文镜像)
4.Compact Framework Build Helper
全部安装好后启动Delphi2006,首次运行会出现“Compact Framework Builder Options”配置窗口,基本所有的设置都只需保持默认即可。
![](https://i-blog.csdnimg.cn/blog_migrate/8e0ab2dce6b1e9b67539401750875c2b.png)
在“Emulators”选项卡中进行设置,配置模拟器的参数,如此就可自动启动模拟器并进行部署。由于“Windows CE 5.0 Emulator”软件我安装了几次都没装成功,所以我是在VS2005中使用设备仿真器管理器启动的模拟器。下图中的参数是参考一位网上前辈的设置填的,应该不会有什么问题。
![](https://i-blog.csdnimg.cn/blog_migrate/c83a638c4aa28fa0018e5e555249bcf1.png)
设置完成后,下面开发一个简单的Demo。
首先新建一个“Smart Device Application”项目。
![](https://i-blog.csdnimg.cn/blog_migrate/9806e4e026086d9301320d6842d941a9.png)
frmMain如下图设计。
![](https://i-blog.csdnimg.cn/blog_migrate/2024dd32b26a3c0f054a11381fd62a0a.png)
Button1的事件中添加这么一句:
messagebox.Show('Hello World!');
点击“Smart Device”工具栏上最左边的“编译”按钮就可编译,如果模拟器设置是正确的,那么点击“运行”就会编译程序,然后启动模拟器并进行部署。
![](https://i-blog.csdnimg.cn/blog_migrate/356c1256c425124f0603f57c25ea36f4.png)
不过此时编译是通不过的,会提示有未声明变量,要将procedure frmMain.InitializeComponent中关于SuspendLayout、Name、TabIndex、AutoScaleBaseSize、ResumeLayout的这些属性或方法注释掉,个人感觉可能是在.Net Compact Framework中没有这些属性或方法,所以不能使用它们。
注释掉后,在我的机子上试的时候是仍然不能编译通过的,Delphi提示找不到MainForm.frmMain.resources,我找不到原因,只能先把位于Project1.dpr中的
{$R 'MainForm.frmMain.resources' 'MainForm.resx'}
这句话删掉,这时编译就可以通过了。
![](https://i-blog.csdnimg.cn/blog_migrate/3a5b777c545e4f09c78a96716c033605.png)
如果模拟器设置是正确的,那么会自动启动并部署。但我是从设备仿真器管理器启动的,此时需要选择菜单“文件”-》“配置”打开“仿真程序属性”,在其中的“共享文件夹”中设置本机上的一个文件夹,然后将Delphi编译生成的exe文件拷到这个目录下。
![](https://i-blog.csdnimg.cn/blog_migrate/b1ab1b702931232283bd74ab6f9ef1fb.png)
共享文件夹后就会发现“我的设备”中出现了“Storage Card”文件夹,这就是共享的内容。
![](https://i-blog.csdnimg.cn/blog_migrate/41c006f4a16b33bbc06ddab07d7bbab5.png)
点击进入,打开刚编译生成的Project1.exe。
![](https://i-blog.csdnimg.cn/blog_migrate/8b8084c9b5ec14c2175815e791d5c8e0.png)
可看见运行界面如下。
![](https://i-blog.csdnimg.cn/blog_migrate/27f96b90abcfb8fc4fa3fa1089a3119c.png)
点击按钮出现“Hello World”提示。
![](https://i-blog.csdnimg.cn/blog_migrate/c3d84a1a561e0364b6e9a64f5f5c2f2e.png)
如此,在Delphi中开发的一个Windows Mobile程序就完成了。Compact Framework Builder还没有深入用过,这个简单的Demo是可以通过,不知道复杂点的程序能不能行了,要在实践中去慢慢尝试了。