今天化了一個小時寫了一個小程序,我的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 檢查語法正確功能沒有快捷鍵不太方便。
慢慢繼續研究。