如何設定Memo可以輸入的行數目? |
尚未結案
|
黑輪
中階會員 發表:135 回覆:188 積分:64 註冊:2004-01-29 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
|
黑輪
中階會員 發表:135 回覆:188 積分:64 註冊:2004-01-29 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 如何設定Memo可以輸入幾行的資料? 感謝大家哦~~黑輪你好: 應該是沒有直接的 >: < class="code"> In Unit.h ~~ private: // User declarations void __fastcall MemoWndProc(TMessage&); TWndMethod OldMemoWndProc; ~~ In Unit.cpp ~~ //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { OldMemoWndProc=Memo1->WindowProc; Memo1->WindowProc=MemoWndProc; } //--------------------------------------------------------------------------- void __fastcall TForm1::MemoWndProc(TMessage& Message) { OldMemoWndProc(Message); if (Message.Msg==WM_CHAR) { if (Memo1->Lines->Count>=5) { <---假設最多4行 Memo1->Lines->Delete(4); return; } } } //--------------------------------------------------------------------------- 這個例子是只給使用者輸入4行,第5行想要輸入字元的話,會按不出來,但是注意游標是可以到第5行的,因為第5行如果沒有字元只有游標的話,它會當作Memo只有4行的,如下圖! < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=14347933&CC=320887"> That's all! 發表人 - |
黑輪
中階會員 發表:135 回覆:188 積分:64 註冊:2004-01-29 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 哇~~這是什麼東西啊!! 慘了~看不懂~~研究一下啦 哪如果一次想要有3個memo只可以輸入n行,要改哪裡啊?黑輪你好: 精神就是今天>當使用者要> 有這樣的想法,當然程式碼會加在 >!因為這些事件就是在 >! <>針對你的多個>的問題… 一樣,直覺的,假設有 class="code"> In Unit.h ~~ class MyMemo : public TMemo //宣告一個新Memo物件 { __published: private: public: int LimiteLine; __fastcall MyMemo(TComponent* Owner,int); void __fastcall MyMemoWndProc(TMessage&); TWndMethod OldMyMemoWndPro; }; ~~ In Unit.cpp ~~ //--------------------------------------------------------------------------- __fastcall MyMemo::MyMemo(TComponent* Owner,int LmtLne) : TMemo(Owner) { LimiteLine=LmtLne; OldMyMemoWndPro=WindowProc; <---這裡寫得有點饒舌 WindowProc=MyMemoWndProc; } //--------------------------------------------------------------------------- void __fastcall MyMemo::MyMemoWndProc(TMessage& Message) { OldMyMemoWndPro(Message); if (Message.Msg==WM_CHAR) { if (Lines->Count>LimiteLine) { Lines->Delete(LimiteLine); return; } } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { //實用範例 MyMemo* MyMemo1=new MyMemo(this,10); <---宣告第一個Memo,限制行數10 MyMemo1->Parent=this; MyMemo1->Left=1; MyMemo1->Top=1; MyMemo1->Width=200; MyMemo1->Height=300; MyMemo1->ScrollBars=ssVertical; MyMemo1->Font->Size=14; MyMemo* MyMemo2=new MyMemo(this,5); <---宣告第一個Memo,限制行數5 MyMemo2->Parent=this; MyMemo2->Left=220; MyMemo2->Top=1; MyMemo2->Width=200; MyMemo2->Height=300; MyMemo2->ScrollBars=ssVertical; MyMemo2->Font->Size=14; } //------------------------------------------------------------------------ 就這樣,定義自已的Memo物件後,要用幾個就宣告幾個,有些屬性要自已設就是了,that's all! |
黑輪
中階會員 發表:135 回覆:188 積分:64 註冊:2004-01-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |