今天化了一个小时写了一个小程序我的delphi php的第一个程序功能是在浏览器上显示一道简单的加法题用户可以输入答案电脑会告诉你正确或者错误然后可以再来一题功能很简单主要为了熟悉delphi for php写的时候不时地查阅php帮助发现这次codegear的php帮助做的还是不错的
程序如下
//Includes
require_once(vcl/vclincphp);
use_unit(formsincphp);
use_unit(extctrlsincphp);
use_unit(stdctrlsincphp);
//Class definition
class Unit extends Page
{
public $txtAnswer = null;
public $btnB = null;
public $btnA = null;
public $btnRun = null;
public $lblMsg = null;
public $Button = null;
public $Button = null;
function btnRunClick($sender $params)
{
$a=rand();
$b=rand();
$this>btnA>Caption=$a;
$this>btnB>Caption=$b;
$this>lblMsg>Caption= ;
$this>txtAnswer>Text= ;
}
function txtAnswerSubmit($sender $params)
{
global $a;
global $b;
global $c;
global $c;
$a=$this>btnA>Caption;
$b=$this>btnB>Caption;
$c=$a+$b;
$c=$this>txtAnswer>Text;
if ($c==$c){$this>lblMsg>Caption=Right;
} else {$this>lblMsg>Caption=Wrong;
}
}
}
global $application;
global $Unit;
//Creates the form
$Unit=new Unit($application);
//Read from resource file
$Unit>loadResource(__FILE__);
//Shows the form
$Unit>show();
?>
第一次写php有以下感受:
delphiphp的IDE很强速度还是比较快的并且有了vclphp这样的强大武器以后其他诸如zend的IDE可以彻底忘记了delphi的IDE的流畅感觉只有vs可以相比
$this>lblMsg 这样的对象写法上来总是不适应因为没有怎么好好看php的书后来看了几个例子基本上明白了其实和delphi原来的面向对象的体系几乎是一样的只是语法不同而已因为代码提示的速度很快所以如果没有出来代码提示就可以认为是写错了
写$this很罗嗦不知道有没有办法可以简化
因为是面向对象的所以只需要考虑其中的事件处理上面的代码中只有两个内部的function的代码是写的别的都是delphi自动生成
以上程序有一个小错误就是当Again按钮点击后在请空text的值得时候会发送一个submit导致label显示wrong的信息我想可以用一个表示状态的变量来进行全局控制
每一句都要用; 结束特别是在if中的语句这点和pascal有些不同
强大的IDE可以判断{}的层次不至于出错
感觉这样的例子写法几乎和windows原生程序没有什么差别并且比起intraweb也简单很多php到底很强啊delphi则更强
用向导生成的php代码送到dh和surpass上都不能正常运行dh的出错信息好像是不支持incphp这样的后缀因为我不能修改dh上安装的php设置文件只好有机会自己搭建一台apache的服务起来测试了delphiphp自己在调试的时候用的就是apache我想应该是设置上的问题
据说delphiphp对于中文支持不好还没有测试
检查语法正确功能没有快捷键不太方便