procedure TForm1.FormCreate(Sender:
TObject);
Var
i : integer;
begin
//初期設定
Memo1.Clear;
Memo1.Lines.Add('0行目 製作 PAPY');
for i := 1 to 50 do
Memo1.Lines.Add(inttostr(i)+'行目' + ' こいつはサンプルですよ。');
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
TopID :integer;
//先頭の行番号
Jump :integer; //ジャンプしたい行数
LineTopID :integer;
//指定行の先頭の文字位置
EndPostion :integer;
//指定行の終了の文字位置
begin
//ジャンプする行数
Jump := 30;
{*指定行にジャンプする処理*}
//先頭の行番号を取得
TopID := SendMessage(Memo1.Handle, EM_GETFIRSTVISIBLELINE,
0, 0);
//指定の行にジャンプする
SendMessage(Memo1.Handle, EM_LINESCROLL, 0, Jump
- TopID);
{*指定行の選択表示処理*}
//指定行の先頭の文字位置を取得
LineTopID := SendMessage(Memo1.Handle, EM_LINEINDEX,
Jump, 0);
//指定行の終了の文字位置を取得
EndPostion := SendMessage(Memo1.Handle, EM_LINEINDEX,
(Jump + 1), 0) - 1 ;
//指定の行を選択する(範囲の指定)
SendMessage(Memo1.Handle, EM_SETSEL, LineTopID,
EndPostion);
//フォーカスを与える
Memo1.SetFocus;
end;
|