C++ Builder XE4, 10.2 Tokyo > TMemo > 指定の行が見えるように行を移動する
C++ Builder XE4
RAD Studio 10.2 Tokyo Update 2 (追記: 2017/12/28)
TMemoにて指定の行に移動したい。
delphi実装は見つかった。
Expert Commentby:DMN
ID: 5989403・2001-04-05
Another one: works for TMemo, TRichEdit and any other TCustomEdit >descendant...procedure GotoLineNo(Control:TCustomEdit;LineNo:integer);
begin
Control.SelStart := Control.Perform(EM_LINEINDEX,LineNo,0);
Control.Perform(EM_SCROLLCARET,0,0);
end;Enjoy! :)
C++ Builder実装にした。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int moveTo = 10; // 移動先のインデックス (0始まり)
Memo1->SelStart = Memo1->Perform(EM_LINEINDEX, moveTo, 0);
Memo1->Perform(EM_SCROLLCARET,0,0);
}
以下において、スクロール付きのTMemoはMemo1というnameプロパティ。
Memo1のLinesは以下としてみた。
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
実行手順1
- 「15」が見えるところまでスクロールする
- Button1を押下
以上により「10」が見える行に移動する。
実行手順2
「0」が見える行に移動してからButton1を押した場合は以下となる。
つまりは、例では「10が見えるように移動する」だけであり、「10という行が一番上に来るように移動する」ではない。
Author And Source
この問題について(C++ Builder XE4, 10.2 Tokyo > TMemo > 指定の行が見えるように行を移動する), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/804dd3646bffd276b844著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .