如何對edit做說明 |
尚未結案
|
piliswordsman
一般會員 發表:4 回覆:2 積分:1 註冊:2005-04-14 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 大家好..我現在有edit 1~10 我每個輸入都有範圍限制... 我現在想做mouse 在上面他就會在label1.caption輸出他的說明 離開 則label1.caption上的說明就消失.. 如果一個一個設定..要設10次...不知有沒有比較方便的方法.. 感謝幫忙解惑的各位~~謝謝1.利用每一個edit 的 hint properity 就可以做到了, 不需要每一個的寫程式 或者在 lablel.hint 上寫, 不過不能太長就是了 2.我之前有一種做法, 就是把限制說明預設在每一個 edit.text上, 然後在 edit1.onenter 上再撰寫一個 edit1.selectall, 這樣當使用者一進入到這個edit1就會自動把預設值mark起來, 然後我們再做其他的判斷, 當然方便起見, 我建議你採用第1種方式, 只要把hint值填入即可, 但記得該form的showhint必須調整為true, 這樣每一個edit的hint才會顯示出來。 |
piliswordsman
一般會員 發表:4 回覆:2 積分:1 註冊:2005-04-14 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
引言: 大家好..我現在有edit 1~10 我每個輸入都有範圍限制... 我現在想做mouse 在上面他就會在label1.caption輸出他的說明 離開 則label1.caption上的說明就消失.. 如果一個一個設定..要設10次...不知有沒有比較方便的方法.. 感謝幫忙解惑的各位~~謝謝 TEdit = Class(StdCtrls.TEdit) procedure CMENTER(var Msg:TMessage);message CM_MOUSEENTER; procedure CMLEAVE(var Msg:TMessage);message CM_MOUSELEAVE; end; TForm1 =.... implementation procedure TEdit.CMENTER(var Msg:TMessage); begin Case Self.Tag of 0:Form1.Label1.Caption:='This Is Edit1'; 1:Form1.Label1.Caption:='This Is Edit2'; 2:... end; //if Self.Name='Edit1' then Form1.Label... else //if Self.Name='Edit2' then Form1.Lable... else //... end; procedure TEdit.CMLEAVE(var Msg:TMessage); begin Form1.Label1.Caption:=''; end;發表人 - jest0024 於 2005/05/21 22:15:22 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 感謝前輩...用了你說的第一種方式已經能夠達到目的.. 不知可不可以寫個小小的例子..教一下你所說的第二種方式呢?? 拜託你囉~~敢謝~~^^第2種方式處理起來實在有點麻煩, 不建議你使用, 否則能力不及反而造成日後debug的困擾, 另外採取一種折衷, 也就是你之前的做法, 加一個label Procedure TEdit1.onEnter(Sender:TObject); begin label1.caption:= 'Edit1限制範圍為.....'; label1.Update; end; // 如果你想在離開該Edit時清除Label, Procedure TEdit1.onExit(Sender:TObject); begin label1.caption:= ''; label1.Update; end;其實這個方法與jest0024是很類似的, 只是jest0024的方法比較趨於結構化的設計, 而我個人的做法是比較喜歡土法(只要這樣的方法不影響大太的效率的話), 當然如果你的Edit很多, 我這種做法會蠻耗時間的, 那就請你自個參考使用 |
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
CM_MOUSEENTER <-- 滑鼠移至元件產生事件 CM_MOUSELEAVE <-- 滑鼠離開元件產生事件 TEDIT並沒提供這二種事件,所以得自己攔劫~:D //=========================================== 亦可借助Hint屬性一用!!這樣只要在Hint上設定便可省去麻煩!! TEdit = Class(StdCtrls.TEdit) procedure CMENTER(var Msg:TMessage);message CM_MOUSEENTER; procedure CMLEAVE(var Msg:TMessage);message CM_MOUSELEAVE; end; TForm1 =.... implementation procedure TEdit.CMENTER(var Msg:TMessage); begin Form1.Label1.Caption:=Hint; //Hint 'ABC\nDEF'; //Form1.Label1.Caption:=StringReplace(Hint,'\n',#10#13,[rfReplaceAll]); Label1折行! end; procedure TEdit.CMLEAVE(var Msg:TMessage); begin Form1.Label1.Caption:=''; end;發表人 - jest0024 於 2005/05/22 21:43:54 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |