線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1505
推到 Plurk!
推到 Facebook!

有關於Delphi語法轉換成C++ Builder語法的問題

尚未結案
kj68215
初階會員


發表:47
回覆:91
積分:27
註冊:2003-08-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-18 21:28:19 IP:61.231.xxx.xxx 未訂閱
問題(Part-I)
procedure TForm1.Button1Click(Sender: TObject);
Var LB:TLabel;
    ctl:TControl;
    ct:TControl;    begin    
     LB:=tlabel.Create(self);
     ctl:=tcontrol(sender);
     SetCaptureControl(ctl);
     ct:=GetcaptureControl;
     if ct =nil then exit;
end;
-------------------------------------------------------------- 撇開於能否執行的問題! 想問的是... 1.關於(self)、(sender)、(ctl)是什麼意思呀? 2.if ct =nil then exit;,關於這一行code是什麼意思呢? 是說,假如ct=nil則就"離開"? 另外,nil是的意思嗎???用bcb的語法解釋的話,是for?if?還是switch...break呢? 以上的1.跟2.,若換成bcb的話,該怎麼個轉換?! 以下是小弟自己轉換成bcb,但不知道對不對↓ TLabel *LB; TLabel *LB = new TLabel(Self);//bcb好像沒有(self). TControl *ctl; TControl *ctl = new TControl(Sender); TControl *Ct; ::GetcaptureControl=Ct; //------------------------------------------------------------------- //------------------------------------------------------------------- 問題(Part-II)
procedure TForm1.RadioGroup1Click(Sender: TObject);
var i:integer;
begin
     case RadioGroup1.ItemIndex of
     0:
       begin
         for i:=0 to panel2.ControlCount-1 do begin
             TPanel(Panel2.Controls[i]).OnMouseMove:=mymousemove;
             TPanel(Panel2.Controls[i]).OnMousedown:=mymousedown;
             TPanel(Panel2.Controls[i]).OnMouseup:=mymouseup;
             TPanel(Panel2.Controls[i]).OnClick:=nil;
         end;
       end;
     1:
       begin
         for i:=0 to Panel2.ControlCount-1 do begin
             TPanel(Panel2.Controls[i]).OnMouseMove:=nil;
             TPanel(Panel2.Controls[i]).OnMousedown:=nil;
             TPanel(Panel2.Controls[i]).OnMouseup:=nil;
             TPanel(Panel2.Controls[i]).OnClick:=myclick;             
         end;
       end;
     end;
end;
-------------------------------------------------------------- 轉換成BCB↓
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
int i,rg1;
rg1=RadioGroup1->ItemIndex;    switch(rg1)
  {
  case 0:
         for (i=0;i<=Panel2->ControlCount-1;i  )
           {
           TPanel(Panel2->Controls[i])->&MyMouseMove;
           TPanel(Panel2->Controls[i])->&MyMouseDown;
           TPanel(Panel2->Controls[i])->&MyMouseUp;
           TPanel(Panel2->Controls[i])->&nil;
           }
           break;
  case 1:
         for (i=0;i<=Panel2->ControlCount-1;i  )
           {
           TPanel(Panel2->Controls[i])->&nil;
           TPanel(Panel2->Controls[i])->&nil;
           TPanel(Panel2->Controls[i])->&nil;
           TPanel(Panel2->Controls[i])->&MyClick;
           }
           break;
  }    }
小弟這樣寫,對嗎? ----------------------- 請多多指教啦!!^^ 發表人 -
------
-----------------------
請多多指教啦!!^^
kj68215
初階會員


發表:47
回覆:91
積分:27
註冊:2003-08-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-19 13:33:35 IP:61.231.xxx.xxx 未訂閱
小弟後來自己想出來的,不知道對不對?! ------------------------------------------- >>>>>>>>>>>>>>>>>
------
-----------------------
請多多指教啦!!^^
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-19 19:44:51 IP:203.203.xxx.xxx 未訂閱
1.self 就是 TForm1,所以用 TForm1 也對 sender 是一個 TObject 參數 ctl 是一個 TControl 物件的變數 2. 是說,假如ct=nil則就"離開"? <- 是的
kj68215
初階會員


發表:47
回覆:91
積分:27
註冊:2003-08-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-21 15:52:19 IP:61.231.xxx.xxx 未訂閱
if ct =nil then exit; 換成bcb就是↓ if(ct==NULL) return; 這樣對吧?! 至於,您說"sender 是一個 TObject 參數".. e.g. Panel = new TPanel(this); Panel->Parent = this; this 是指主表單,應該就是Delphi 的sender,沒錯吧?! ----------------------- 請多多指教啦!!^^ 發表人 - kj68215 於 2004/01/21 15:56:51
------
-----------------------
請多多指教啦!!^^
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-25 22:42:01 IP:203.203.xxx.xxx 未訂閱
1. Yes 2. Yes 但是記住 Sender 只是一個名稱,妳愛改成什麼都可以,如 aObject , myPanel, good, bad ...,every words u want 只是用來代表傳入的是什麼,同常 Delphi 會將呼叫此程序的物件當成Sender 參數傳入,這樣妳就可以知道是那個物件呼叫此程序並經由 Sender ,妳可以使用該物件 同時 Panel->Parent = this; 應該是 Panel->Parent = this as TWinControl; 因為 Parent 是 TWinControl 發表人 - syntax 於 2004/01/25 22:44:50
kj68215
初階會員


發表:47
回覆:91
積分:27
註冊:2003-08-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-26 07:47:05 IP:61.231.xxx.xxx 未訂閱
嗯,這樣小弟清楚了! 謝謝! ----------------------- 請多多指教啦!!^^
------
-----------------------
請多多指教啦!!^^
系統時間:2024-06-16 6:21:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!