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

讓Memo的ScrollBar同步

答題得分者是:RaynorPao
NitRate2
一般會員


發表:19
回覆:13
積分:6
註冊:2004-08-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-30 14:47:30 IP:66.144.xxx.xxx 未訂閱
我有兩個大小一樣的Memo,要怎麼讓他們的ScrollBar同步?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-30 15:43:50 IP:203.73.xxx.xxx 未訂閱
引言: 我有兩個大小一樣的Memo,要怎麼讓他們的ScrollBar同步? < face="Verdana, Arial, Helvetica">
NitRate2 你好:
(1)「同步」顧名思義應該是指滑鼠拖拉任何一個 Memo 的 ScrollBar,就會自
   動讓另外一個 Memo 的 ScrollBar 一起動作,而且兩個 Memo 的 ScrollBar
   的位置,要保持一致!!不知道你的意思是不是這個樣子?
( >
// >
    szText="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz">Lines->Add(IntToStr(i)+" - "+szText);
      Memo2->Lines->Add(IntToStr(i)+" - "+szText);
      Application->ProcessMessages();
   }       OldMemo1WndProc=Memo1->WindowProc;
   Memo1->WindowProc=NewMemo1WndProc;
   OldMemo2WndProc=Memo2->WindowProc;
   Memo2->WindowProc=NewMemo2WndProc; 
} 
void __fastcall TForm1::NewMemo1WndProc(TMessage &Message)
{
   OldMemo1WndProc(Message);
   if(Message.Msg==WM_VSCROLL)
   {
      int iVPos1=GetScrollPos(Memo1->Handle, SB_VERT);
      int iVPos2=GetScrollPos(Memo2->Handle, SB_VERT);
      if(iVPos1!=iVPos2)
      {
         Memo2->Perform(Message.Msg, Message.WParam, Message.LParam);
      }
   }
   if(Message.Msg==WM_HSCROLL)
   {
      int iHPos1=GetScrollPos(Memo1->Handle, SB_HORZ);
      int iHPos2=GetScrollPos(Memo2->Handle, SB_HORZ);
      if(iHPos1!=iHPos2)
      {
         Memo2->Perform(Message.Msg, Message.WParam, Message.LParam);
      }
   }
}
void __fastcall TForm1::NewMemo2WndProc(TMessage &Message)
{
   OldMemo2WndProc(Message);
   if(Message.Msg==WM_VSCROLL)
   {
      int iVPos1=GetScrollPos(Memo1->Handle, SB_VERT);
      int iVPos2=GetScrollPos(Memo2->Handle, SB_VERT);
      if(iVPos1!=iVPos2)
      {
         Memo1->Perform(Message.Msg, Message.WParam, Message.LParam);
      }
   }
   if(Message.Msg==WM_HSCROLL)
   {
      int iHPos1=GetScrollPos(Memo1->Handle, SB_HORZ);
      int iHPos2=GetScrollPos(Memo2->Handle, SB_HORZ);
      if(iHPos1!=iHPos2)
      {
         Memo1->Perform(Message.Msg, Message.WParam, Message.LParam);
      }
   }
} 
(3)請再依照自己的需求,自行修改
    < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
        
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
NitRate2
一般會員


發表:19
回覆:13
積分:6
註冊:2004-08-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-30 17:09:34 IP:66.144.xxx.xxx 未訂閱
謝謝RaynorPao大大的回答!
系統時間:2024-05-13 8:54:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!