掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
2つのRichEditの同期をとるには? (ID:15222)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
以前、2つのRichEditの同期を試みましたが、 今回は縦書きという特殊な状態での同期を試みています。 しかし、今回はキー操作での同期がとれません(><) どなたかわかる方いましたらご教授くださいm(_ _)m ちなみに今回は縦スクロールではなくて横スクロールです。 public RichEdit1Proc:TWndMethod; MKEY:WORD; procedure RichEdit1SuclassProc(var Msg:TMessage); procedure SyncHScroll; end; var Form1: TForm1; implementation {$R *.DFM} uses richedit; procedure TForm1.FormCreate(Sender: TObject); begin RichEdit1Proc := RichEdit1.WindowProc; RichEdit1.WindowProc := RichEdit1SuclassProc; end; procedure TForm1.FormShow(Sender: TObject); begin RichEdit1.Perform(EM_SETEVENTMASK,0,ENM_SCROLL); end; procedure TForm1.RichEdit1SuclassProc(var Msg: TMessage); begin RichEdit1Proc(Msg); case Msg.Msg of WM_VSCROLL:RichEdit2.Dispatch(Msg); CN_COMMAND:begin if (Msg.WParamHi = EN_HSCROLL) then case MKEY of VK_DOWN,VK_UP:SyncHScroll; VK_HOME,VK_END: if (GetAsyncKeyState(VK_CONTROL) and $8000) <> 0 then SyncHScroll; end; end; CN_KEYDOWN:MKEY := Msg.WParam; end; end; procedure TForm1.SyncHScroll; var Msg:TWMScroll; begin Msg.Msg := WM_HSCROLL; Msg.Pos := GetScrollPos(RichEdit1.Handle,SB_VERT); Msg.ScrollBar := 0; Msg.ScrollCode := SB_THUMBTRACK; RichEdit2.Dispatch(Msg); Msg.ScrollCode := SB_THUMBPOSITION; RichEdit2.Dispatch(Msg); Msg.ScrollCode := SB_ENDSCROLL; RichEdit2.Dispatch(Msg); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.