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

VCL想要新增屬性?可否用物件導向概念?

 
yoan4560409
一般會員


發表:11
回覆:7
積分:3
註冊:2006-08-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-01 12:44:50 IP:61.64.xxx.xxx 訂閱
各位先進大家好
初學BCB語言
想請教大家
因為我有很多TEdit的VCL物件
但是因為需要限制只能輸入某些文字或數字
目前我的做法比較笨,就是每一個TEdit我都寫一段程式限制輸入
但是因為TEdit很多,程式這樣很長很亂..
是否可以用物件導向的概念?
讓這些TEdit這個VCL元件新增屬性,在讓TEDIT去使用即可?
我的描述不是很好,請教我該如何下手
謝謝
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-01 16:32:46 IP:211.72.xxx.xxx 訂閱
Ans: 可以自行以繼承 TEdit 自創新元件方式處理, 包括 String or Num EditMask, Num Max and Min Value 限制, String Max Length 等都可考慮列入自動檢查. 甚且可考慮 Focused = true/false 時自動變色以凸顯焦點, 首次 OnEnter 時依 User 所選中文輸入法自動切換中文輸入法等等. 這些都可用增添 Property 及 Method 的方式, 依您自訂的需求去設計. 
===================引 用 文 章===================
因為我有很多TEdit的VCL物件
但是因為需要限制只能輸入某些文字或數字
目前我的做法比較笨,就是每一個TEdit我都寫一段程式限制輸入
但是因為TEdit很多,程式這樣很長很亂..
是否可以用物件導向的概念?
讓這些TEdit這個VCL元件新增屬性,在讓TEDIT去使用即可?
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-01 16:33:11 IP:211.72.xxx.xxx 訂閱
Ans: 可以自行以繼承 TEdit 自創新元件方式處理, 包括 String or Num EditMask, Num Max and Min Value 限制, String Max Length 等都可考慮列入自動檢查. 甚且可考慮 Focused = true/false 時自動變色以凸顯焦點, 首次 OnEnter 時依 User 所選中文輸入法自動切換中文輸入法等等. 這些都可用增添 Property 及 Method 的方式, 依您自訂的需求去設計. 
===================引 用 文 章===================
因為我有很多TEdit的VCL物件
但是因為需要限制只能輸入某些文字或數字
目前我的做法比較笨,就是每一個TEdit我都寫一段程式限制輸入
但是因為TEdit很多,程式這樣很長很亂..
是否可以用物件導向的概念?
讓這些TEdit這個VCL元件新增屬性,在讓TEDIT去使用即可?
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-02 02:19:17 IP:220.134.xxx.xxx 訂閱
看到你寫的問題陳述!其實心有慼慼焉!因為自己遭遇的問題也一直被這個困擾!雖然我已經開始寫了使用物件開發!
但是單一物件的繼承還好!複合物件繼承就會產生很多問題! 回覆的前輩講的沒錯!繼承和自行開發物件是唯一的解決方案
但是這也是Delphi一個開始進入高門檻的開始! 心中的痛! 難道不能簡單一點!
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-02 11:39:07 IP:61.219.xxx.xxx 未訂閱
可以自行以繼承 TEdit 自創新元件方式處理
或者將檢查功能寫成一個 function, 在 Edit 中去呼叫, 而非在每個 Edit 中都寫一段程式
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-01-02 11:49:44 IP:220.130.xxx.xxx 訂閱
void ACustomEvent(TObject Sender){ }

void FormCreate(TObject Sender)
{
for(int i=0;iComponentcount;i )
{
if(this->Components[i].classname == "TEdit") TEdit(this->Components[i]).onEnter = ACustomEvent;
}
}

//將所有在Form上要用到的TEdit在Create時將TEdit的OnEnter事件全部指向ACustomeEvent
//不過在Delphi有將event跟一般function分開,我不太清楚BCB有沒有(應該是沒有才對)
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
系統時間:2024-05-04 6:08:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!