memo1でいつも最終行が表示されるようにしたいのですが??

解決


AS  2023-02-27 07:17:33  No: 150830

いつも初歩的な質問で恐縮です。
ネットで探すと、
memo1.Lines.loadfromfile('c:\Study\家計簿\kakeibo2023');
のようにデータを読み込むと、カーソルは最終行になると書いてありますが、
実際には、先頭が表示されています。
スクロールバーが一番上にいます。
memo1とEditがあって、カーソルはEdit1になります。

いつでも、最終行が表示されるようにするにはどうしたらいいですか。
よろしお願いします。


AAAAA  2023-02-28 07:27:32  No: 150833

Memo1.Lines.Add('新しいテキスト');

// 最終行にスクロールする
Memo1.SelStart := Length(Memo1.Text);
Memo1.Perform(EM_SCROLLCARET, 0, 0);

ChatGPTに聞くと良いよw


AS  2023-03-02 03:20:37  No: 150840

AAAAAさん、ありがとうございます。
下のようにしましたが、先頭が表示されています。
カーソルはEdit1になります。
XE5が狂っているんでしょうか??
スクロールバーを下に持っていく方法はありませんか??
procedure TForm1.FormCreate(Sender: TObject);
begin
  memo1.Clear;
  memo1.Lines.loadfromfile('c:\Study\家計簿\kakeibo2023');
  Memo1.SelStart := Length(Memo1.Text);
  Memo1.Perform(EM_SCROLLCARET, 0, 0);
  memo1.lines.Add('');
end;


take  2023-03-02 08:24:39  No: 150842

おそらく自分なんかに回答を求めていないと言われそうですが
そろそろ回答してくれてる人、嫌気がさしてません?

とりあえずのマナーですがここで聞く前に自分で調べましょうよ
通常の検索、ChatGPT、ほかAI系で本分に使われている単語 3つ入力したら
4行ほどの答えが返ってきました、それで要望通りになりました

質問としては初歩的な質問ではありません
この動作を求める人にはかなり重要で、難しい部類です

みなさんタイトルを見てから本分を読むのでタイトルと内容が違うのもね
このタイトルを読むと
「Memoに何を入力しても常に最終行が表示される仕組みはどうすればいいのか?」
という質問に感じましたが本分は
「loadfromfileを呼んだときに最終行が表示されるようにしたい」
とまったく違う内容です

20年Delphiをやってるっていう前書きは不要です
それを書くならコンパイラのバージョンとOS、フレームワークはVCLなのか何なのかを書いて下さい

あと思い込みやめません?
 > XE5が狂っているんでしょうか?
バグがまったくないわけではありませんが、単なる言いがかりです

他スレ
 > ブロックリードは危険だといわれていたので
ファイルやサーバー系の受信に使って脆弱性を突かれるってことかな?

普通に使う分には有効な方法です


AAAAA  2023-03-02 15:33:36  No: 150848

DELPHI MEMO 最終行 で検索すると
https://www.blackcat.xyz/article.php/ProgramingFAQ_del0006


AS  2023-03-05 08:00:49  No: 150858

AAAAAさん、ありがとうございました。

最終行が表示できるようになりました。

今後もよろしくお願いします。


AS  2023-03-05 08:23:00  No: 150860

takeさんへ

ここは、delphiプログラミングする人には、最後の砦です。
初心者はなんも分かりません。
初歩的な質問でもここに答えがあれば、初心者は助かります。

そう思って、初歩的な質問でも遠慮なくさせていただいています。

初心者のために頑張ってください。


たこ  2023-03-29 16:53:28  No: 150908

初心者という言葉は免罪符ではない。


こん  2023-03-29 21:33:48  No: 150909

20年初心者やってる初心者のプロ


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加