全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:986
推到 Plurk!
推到 Facebook!

如何貼上自動換行

尚未結案
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-23 17:15:37 IP:140.113.xxx.xxx 未訂閱
又有問題要來請教板上大家啦 ^^a 我想問的是,若我有一個Memo, 要怎麼做才能讓使用者貼上文字之後 讓游標自動換下一行,而不是留在最後一行的最後呢?
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
arnoyu
中階會員


發表:73
回覆:88
積分:67
註冊:2003-03-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-23 19:45:24 IP:61.56.xxx.xxx 未訂閱
要靈活控制TMemo物件,最好將其內附之PopupMenu自己寫, 也就是在Form1裡再拉進一個PopupMenu1, 然後將Memo1的PopupMenu屬性指向PopupMenu1, 然後在PopupMenu1的Items加入一個選單N1, 在N1的Caption填入(貼上), 在N1 OnClick事件填入: void __fastcall TForm1::N1Click(TObject *Sender) { Memo1->PasteFromClipboard(); Memo1->Lines->Add(""); } ===三人行必有我師焉===
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-23 21:25:28 IP:140.113.xxx.xxx 未訂閱
引言: 要靈活控制TMemo物件,最好將其內附之PopupMenu自己寫, 也就是在Form1裡再拉進一個PopupMenu1, 然後將Memo1的PopupMenu屬性指向PopupMenu1, 然後在PopupMenu1的Items加入一個選單N1, 在N1的Caption填入(貼上), 在N1 OnClick事件填入: void __fastcall TForm1::N1Click(TObject *Sender) { Memo1->PasteFromClipboard(); Memo1->Lines->Add(""); } ===三人行必有我師焉===
可是這樣不是很方便哩~ 我想要按下Ctrl V貼上之後, Memo就自動再加上一行要怎麼做呢?
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
arnoyu
中階會員


發表:73
回覆:88
積分:67
註冊:2003-03-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-24 10:46:13 IP:61.56.xxx.xxx 未訂閱
引言: 可是這樣不是很方便哩~
由於您所需要的Memo功能,並非是制式的, 所以一些東西都需要自己寫, 就好比TMemo跟TRichEdit其功能就差粉多了, 所以,若想達到自己想要的功能,跟物件本身所附加 功能相差很多,那麼,這些Idea就必須靠自己來加入了...
引言: 我想要按下Ctrl V貼上之後, Memo就自動再加上一行要怎麼做呢?
其實我只是提供您一個方向,還有很多判斷需要加入, 就好比,在Memo1裡的一篇文章裡,user將第2行的中間 5個字反白選取然後按Ctrl V貼上,那麼,條件就不一樣了, 所以就不能光考慮自動換下一行這個問題了, 一些判斷跟條件就必須自行加入了... 例:
void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if((Shift.Contains(ssCtrl))&&(Key=='v'||Key=='V'))
   {
     if(Memo1->SelLength == 0 )
        Memo1->Lines->Add("");
   }
}
 
try try see ㄅ ~~ ===三人行必有我師焉===
stanley
一般會員


發表:9
回覆:36
積分:14
註冊:2003-11-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-24 13:42:54 IP:61.219.xxx.xxx 未訂閱
提供您另一個方向, 在Onchange後啟動一個timer執行換行  
void __fastcall TForm1::Memo1Change(TObject *Sender)
{
    Timer1->Enabled = true;
}
//--------------------------------------------------------------------    void __fastcall TForm1::FormCreate(TObject *Sender)
{
    Timer1->Interval = 100;
    Timer1->Enabled = false;
}
//--------------------------------------------------------------------    void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    Memo1->Lines->Add("");
    Timer1->Enabled = false;
}     
arnoyu
中階會員


發表:73
回覆:88
積分:67
註冊:2003-03-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-24 20:09:08 IP:61.56.xxx.xxx 未訂閱
剛剛看到 「VCL How To - 公告發表區」裡, 有一篇 "TMemo 元件的進階使用 ", 裡面有版主 bruce0211 對TMemo 元件詳細的解說喔!! 前往see see ㄅ~~ TMemo 元件的進階使用 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29900 ===三人行必有我師焉===
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-25 11:17:08 IP:140.113.xxx.xxx 未訂閱
感謝大家的幫忙,已順利解決問題了 :)
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
系統時間:2024-05-15 6:47:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!