給定一個變數,如何讓它賦予message event呢? |
尚未結案
|
okeyla
一般會員 發表:51 回覆:20 積分:19 註冊:2003-06-12 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
在 Unit1.h 檔內的 Form1 private, public 加入以下的宣告:
class TForm1 : public TForm { private: int FValue; void __fastcall SetValue(int NewValue); public: __property int Value={read=FValue,write=SetValue}; };在 Unit1.cpp 加入 void __fastcall TForm1::SetValue(int NewValue) { if(FValue!=NewValue) { FValue=NewValue; // 在此再加上您要作的事,如: ShowMessage(IntToStr(FValue)); } }如此在程式中可以直接使用 Value 來讀取 FValue 目前的數值,而當對 Value 寫入資料時,則會交由 SetValue 函式來處理,在數值改變時,可以再加入想要做的事。使用範例: void __fastcall TForm1::Button3Click(TObject *Sender) { Value=100; Value=1000; Value=10; }沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
kwu
中階會員 發表:10 回覆:57 積分:58 註冊:2003-10-31 發送簡訊給我 |
引言: As title,希望讓此變數在變化的時候,程式做些事情, 可是又不想利用timer去實做... 可以告訴我該如何做嗎?thanks!okeyla你好: 請參考下面連結 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=44151 |
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
|
kwu
中階會員 發表:10 回覆:57 積分:58 註冊:2003-10-31 發送簡訊給我 |
引言:引言:dllee版主你好: 前幾篇剛好也有這樣的問題,好像是kwu兄答覆的,對於你們的寫法不是很有概念,查過說明也有看沒有懂(果然是中國人),所以還是直接問的比較快吧,請賜教! >< >< >! >>< face="Verdana, Arial, Helvetica"> m8815010你好: 你所提出的問題以我的觀念整理如下: 因為 int FValue 宣告在 private 是 TForm1 類別的私有變數,類別本身可以存取此變數,使用此類別時就無法存取此變數了,所以將其設計成 __priperty 以提供使用此類別時,可存取私有變數的對外管道 你把 __property int Value = {read = FValue, write = SetValue}; 寫成 __property int Value = {read = Value, write = Value}; 當然不行,因為 __property int Value 的 Value 是此類別的屬性名稱,就好像是 Form1->Width 的 Width 是此類別的屬性一樣 read = FValue 是指可以將值由 Form1->Value 讀出此類別的私有變數 FValue 的值 例:int v = Form1->Value; write = SetValue 是指可以透過 Form1->Value 的屬性將值寫入此類別的私有變數 FValue 例:Form1->Value = 100; write 是透過此類別的成員函數 SetValue() 來將值寫入 FValue 也可以寫成 __property int Value = {read = FValue, write = FValue}; 這樣 write 就會跟 read 一樣直接將值寫入 FValue 若有不對之處尚請各位大大多多指教…… public: __property int Value={read=FValue,write=SetValue}; };在 Unit1.cpp 加入void __fastcall TForm1::SetValue(int NewValue) { …… |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |