如何讓兩個元件內某個屬性的值做到同步化 |
尚未結案
|
chang1981
一般會員 ![]() ![]() 發表:31 回覆:28 積分:11 註冊:2008-09-18 發送簡訊給我 |
各位前輩好~ 小弟最近在寫BCB上碰到一個問題
我使用了兩個元件 1.ValueListEditor 2.某廠商提供之視覺元件 在此稱他為 AOI 假設AOI下面有三個屬性 color , X ,Y 於是我在ValueListEditor上面插入了三行 Key Value color 1 X 100 Y 150 如果使用者直接修改value值 我必須要 if(修改的是color) AOI->color = 新的值 if(修改的是X) AOI->X= 新的值 if(修改的是Y) AOI->Y= 新的值 這樣一來 如果AOI下面的屬性有幾十個 我的程式會變得很大(AOI本身又分好幾種類型) 因此小弟想利用address map的方式 將ValueListEditor的value欄位 address 直接設給AOI對應屬性的位址 想請問一下這樣應該怎麼做 還是說各位前輩有更好的方法可以免去上面的判斷式呢?? 謝謝!! |
st33chen
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
您好,
參考一下 http://delphi.ktop.com.tw/board.php?cid=169&fid=1016&tid=25780 雖是 delphi 版本, 很多觀念相通 或是 http://delphi.ktop.com.tw/board.php?cid=168&fid=918&tid=43483 或是 google 一下 GetPropList ==================================================== 2009-03-12 參考別人的寫法拼湊出來的, 沒測, 請參考一下, (注意, 我沒有處理型別); int ii, jj; PPropList Properties; for (jj=1; jj<=ValueListEditor1->rowcount; jj ) { for (ii=0; ii < GetPropList(AOI, Properties); ii ) { if (Properties[ii]->Name == ValueListEditor1->cells[0][jj]) { SetPropValue(AOI, Properties[ii]->Name, ValueListEditor1->cells[1][jj]); } } } ============================================ 2009-03-12 或是大膽一點 int jj; for (jj=1; jj<=ValueListEditor1->rowcount; jj ) { try { SetPropValue(AOI, ValueListEditor1->cells[0][jj], ValueListEditor1->cells[1][jj]); } catch {...} }
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
chang1981
一般會員 ![]() ![]() 發表:31 回覆:28 積分:11 註冊:2008-09-18 發送簡訊給我 |
感謝ST大熱心的指導!!! 只是小弟看了您提供的資訊後發現
這種方式是否只能用在BCB的標準VCL元件(從TObject繼承下來的元件??) (還是說只要做成VCL的東西一定是從Object繼承下來的....對不起我這邊觀念不好....) 而小弟的這個AOI元件並不是BCB的內建元件 舉例來說 我想要抓到AOI下面的AngleIsFitted屬性值 Variant a; a = GetPropValue(AOI,"AngleIsFitted"); 這樣就會顯示AngleIsFitted這個屬性並不存在 而同樣的方式 Variant a; a = GetPropValue(Form1,"Align"); 就沒有問題 這是小弟上網找到的一點資料 http://www.dev.idv.tw/mediawiki/index.php/BCB中的RTTI機制 PS: 我的終極目標 就是希望能寫成像S大上一篇回復所寫的大膽的寫法 如果能實現就太好了請大家幫幫忙> < |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |