全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:818
推到 Plurk!
推到 Facebook!

請問如何在自訂類別中呼叫VCL元件

尚未結案
bcswlmpke
一般會員


發表:5
回覆:2
積分:1
註冊:2004-11-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-05 14:44:08 IP:140.129.xxx.xxx 未訂閱
1)例如我自訂一個class,class當中的某個function必須使用TForm1中的Image1,那要怎樣在class中宣告與定義TForm1或是Image1呢? 2)需要設定什麼建構函數嗎? 並且要怎樣才能呼叫使用Image1,能否麻煩前輩們解釋說明一下,謝謝你們。
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-05 15:36:07 IP:61.229.xxx.xxx 未訂閱
1 依照你的想法,你就用 TImage* 作為參數就好了 2 依照你的需求,才決定是否要 ctor ex: 
 
class MyClass {
TImage* mImage;
Myclass(TImage* pImg) mImage(pImg) {}; // 可以這樣把外部的 image 放到內部「慢慢使用」
void UseImage() {}; // 利用 mImage 來處理
void UseImage(TImage* pImg) {}; // 由外界傳入 image 來使用
};
bcswlmpke
一般會員


發表:5
回覆:2
積分:1
註冊:2004-11-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-07 00:15:32 IP:140.129.xxx.xxx 未訂閱
windblown您好:您說的方法我有試過,但還是無法取得控制Form1的Image元件,我在想是不是必須取得Image的handle才行。
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-07 16:55:39 IP:61.229.xxx.xxx 未訂閱
我把測試過程寫下,讓你參考 1 準備 image, button 2 我的 code 如下
 
class MyClass {
public:
  TImage* mImage;
  MyClass(TImage* pImg) : mImage(pImg) {}; // 可以這樣把外部的 image 放到內部「慢慢使用」
  void UseImage(); // 利用 mImage 來處理
  void UseImage(TImage* pImg); // 由外界傳入 image 來使用
};    void MyClass::UseImage()
{
  mImage->Canvas->TextOut(10, 10, "Hello");
}
void MyClass::UseImage(TImage* pImg)
{
  pImg->Canvas->TextOut(10, 30, "World");
}    MyClass* mMyClass;
3 在 FormCreate() 內,建立 MyClass
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  mMyClass=new MyClass(Form1->Image1);
}
4 在 ButtonClick() 內,執行 Image 的動作
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  mMyClass->UseImage(); // 使用 class 內部的 image
  mMyClass->UseImage(Form1->Image1);
}
不知道是否跟你的想法有不同? 大家來討論
bcswlmpke
一般會員


發表:5
回覆:2
積分:1
註冊:2004-11-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-08 23:19:51 IP:140.129.xxx.xxx 未訂閱
windblown您好: (1)您在 TForm1 中的 FormCreate Button 建立 MyClass,這個步驟我之前沒有 做,這部份是解決問題的關鍵。 (2)另外,由於我必須可以控制 Form1 中很多個 Image,所以,我想在 MyClass 中的建構函數,必須再加以修改才行。謝謝您指點這個方向!感謝!
系統時間:2024-05-05 19:54:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!