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

請問副程式要怎麼處理任意元件變數

答題得分者是:RedSnow
l8939_c
一般會員


發表:9
回覆:15
積分:4
註冊:2005-03-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-30 01:41:42 IP:219.86.xxx.xxx 未訂閱
大家好:    我希望寫一個副程式,當我指定給它元件名稱時,就可返回此元件的寬度 例如 :  
 
int test_width(TObject *Obj)
{
  return Obj->Width;
}
輸入的元件可能是 TPaintBox,TImage,TButton........ 不知C 是否可以辦到, 正確寫法為何呢 ? 謝謝 ~ engineer
------
engineer
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-30 03:31:50 IP:203.204.xxx.xxx 未訂閱
您好: 使用以下方式:    int test_width(TObject *Obj) { return dynamic_cast(Obj)->Width; } void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage(test_width(Button1)); } 發表人 - supman 於 2005/05/30 10:12:40
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-30 03:36:05 IP:59.105.xxx.xxx 未訂閱
您好! 一小段程式碼,不嫌棄就請參考!
  //.cpp內容
  void __fastcall TForm1::Button1Click(TObject *Sender)
  {
    Show(Image1);
  }
  //---------------------------------------------------------------------------
  void __fastcall TForm1::Show(TImage *img)
  {
    ShowMessage(AnsiString (img->Width));
  }      //.h內容
  //---------------------------------------------------------------------------
  class TForm1 : public TForm
  {
    __published:        // IDE-managed Components
        TButton *Button1;
        TImage *Image1;
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Show(TImage *img);
    private:        // User declarations
    public:                // User declarations
        __fastcall TForm1(TComponent* Owner);
  };
紅色部分您也可以用動態產生啦!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-30 09:38:58 IP:218.19.xxx.xxx 未訂閱
l8939_c 您好:    將您的例子修改如下後就應該可達到您要的功能了,試試看吧:
int test_width(TObject *Obj)
{
  return dynamic_cast(Obj)->Width;
}
l8939_c
一般會員


發表:9
回覆:15
積分:4
註冊:2005-03-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-30 13:37:53 IP:61.14.xxx.xxx 未訂閱
謝謝大家的幫忙    這題我想應該是 RedSnow 的解答最完整吧 !    
------
engineer
系統時間:2024-11-25 1:27:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!