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