16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:TMemoでファイル再読込して同じ位置復帰"
この発言は #00679 凛 さんのTMemoでファイル再読込して同じ位置復帰 に対するコメントです
うまくいかないときがあるので、
確実と思われる対策を入れました。(^^;
例えば1000行目を見ている状態で、TMemoに再読込すると1行目に戻ってしまい
ますが、これを再読込前の表示位置に復帰させるサンプル
OpenDialog1.filenameに開いたファイル名がそのまま残っているとします。
procedure TForm1.reload1Click(Sender: TObject);
var
TopLine:integer;
begin
if FileExists(OpenDialog1.filename) then
begin
TopLine := SendMessage(memo1.Handle, EM_GETFIRSTVISIBLELINE, 0,
0);
memo1.Lines.LoadFromFile(OpenDialog1.filename);
//以下の一文を追加
sendmessage(memo1.handle,EM_LINESCROLL,0,-memo1.Lines.count);
sendmessage(memo1.handle,EM_LINESCROLL,0,topLine);
end;
end; 98/10/11(日) 17:19 凛(MXB01744)
Original document by 凛 氏 ID:(MXB01744)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|