高手坐镇(18)
编程学堂
如何开发iPhone软件
题目难度:★★★
读者来信:现在手机编程很火,我非常感兴趣,我想知道如何开发iPhone软件,给我一些思路吧!谢谢啦!
程序员 张让:开发iPhone软件跟开发其他手机平台的软件有一些区别,最大的不同是语言有一定的限制,要熟悉Objective-C语言,这个不熟悉要开发iPhone软件就困难重重。如果解决了语言问题,剩下的就好办了,下载安装iPhone SDK,搭建开发环境,再想好创意即可开发了。但是,最重要的就是创意,这个你要多花费一些心思。
此外,你最好准备一款iPhone手机。虽然有相关的模拟器,但光有模拟器还不够,还需要在真机上测试一下,避免软件出现问题。你多动手试试吧,可以从模仿设计其他软件入手。祝你好运!
C语言修正水仙花数代码
题目难度:★★
读者来信:前不久,同学编写了一段水仙花数代码,总感觉有问题,要我一起参考。我的编程水平也很有限,不过我知道你们那里有高手,特来请教一下。
程序员 故乡的云:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身,例如1^3 + 5^3 + 3^3 = 153,这个是基础编程知识之一。你们的代码错在循环设置不当。正确代码如下所示:
for (i=1;c>10 ;++i) { //注意循环设置
c=n/a;
a=a*10;
}
printf("i=%d,a=%d \n",i,a);
for (j=1;a>=10 ;++j)
{
s[j]=n/(a/10);
n=n-s[j]*(a/10);
a=a/10;
Delphi集合大量软件快捷方式
题目难度:★★★★
读者来信:我喜欢编程,喜欢模仿设计一些有创意的程序。最近我看了一些Web OS,我有一个想法,能不能设计一个程序,将很多软件的快捷方式装入里面,在该程序中点击快捷方式就可以启动相应的软件。我希望《电脑报》高手有空研究一下,一起交流。谢谢!
程序员 故乡的云:要做Web OS难度较高,但如果仅仅是做一个简单的软件快捷方式集合程序,就简单多了。我有两个思路,思路1是做一个类似QQ的窗体,把常用软件的快捷方式放在窗体中,平时窗体隐藏,需要时显示窗体;思路2是把集合程序隐藏在系统托盘中,平时窗体隐藏,需要时通过右键菜单来显示窗体。
下面,我写一个思路2的示例代码(以Delphi为例)。启动Delphi,在主窗体中添加几个Button(每个Button实现一个可执行文件的启动),添加一个ADOConnection(读取数据库),一个PopupMenu1(右键菜单)。
在项目文件夹下新建一个data.mdb数据库,根据实际需要增加几张表,并把数据写入表中(要求:数据不多且不需经常变动),在窗体创建时建立窗体和数据库的连接,编写各个按钮的代码。代码如下:
if ADOCN.ConnectionString<>'' then
begin
ADOCN.Connected:=False;
ADOCN.ConnectionString:='';
end;
ADOCN.ConnectionString := 'Data Source=' + ExtractFilePath(Application.ExeName) + 'data.mdb';
ADOCN.Connected:=True;
然后就是将程序加入系统托盘。关键代码如下所示(完整代码下载地址:http://www.icpcw.com/bzsoft):
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88; ////指定ntida的长度
lpData.Wnd := Form1.Handle; // //取应用程序主窗体的句柄
lpData.hIcon := Application.Icon.handle; //指定系统状态栏显示应用程序的图标句柄
lpData.uCallbackMessage := WM_BARICON;
lpData.uID :=0; //用户自定义的一个数值,在uCallbackMessage参数指定的消息中使用
lpData.szTip := '我的工具集'; //'实现系统托盘图标!';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; //在结构中uCallbackMessage、hIcon和szTip参数都有效
Shell_NotifyIcon(NIM_ADD,lpData); //在系统状态栏中增加一个新图标
dispose(lpData);
procedure TForm1.WMBarIcon(var Message:TMessage);