|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"TMemo のキャレット位置の取得と設定"
TMemo で、キャレットが今どこにあるかを、行と桁の形で返します。
ただし、桁は「先頭から何バイトめ」であって、「先頭から何文字め」では
ありません。
var
SendMsgResult: DWord;
x, y, tmp: Integer
SendMsgResult := SendMessage( memo1.Handle, EM_GetSel, 0, 0 );
tmp := SendMsgResult div $10000;
y := SendMessage( memo1.Handle, EM_LineFromChar, tmp, 0 ) + 1;
x := tmp - SendMessage( memo1.Handle, EM_LineIndex, -1, 0 );
逆に、キャレット位置を指定する場合も示します。
ただし、これを行うと選択状態が解除されてしまいます(^_^;)
var
Index: DWord;
Index := SendMessage( memo1.Handle, EM_LineIndex, y, 0 );
Index := index + x;
SendMessage( Handle, EM_SetSel, Index, Index );
98/10/11(Sun) 21:00 tac(RXG01433)
Original document by tac 氏 ID:(RXG01433)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|