TMemo上でなめらかなスクロール

解決


カレーライズ  2006-04-24 23:26:51  No: 21175  IP: 192.*.*.*

お世話になります。Delphi について質問があります
  今  TMemoに複数行に渡っていろいろと文字列が書かれています。そこでボタンを押すと先頭行から最終行までスクロールさせています。
Perform()のEM_LINESCROLLを使って一行ずつスクロールさせているのですが、カクカクとして見づらいスクロールになってしまいます
  これをどうにかして  なめらかなスクロールにしたいのですが何か方法はあるのでしょうか??どなたかご存知でしたらご教授よろしくお願いします

編集 削除
ん?  2006-04-25 10:52:52  No: 21176  IP: 192.*.*.*

TPaintBoxなんかを使って、自前でなめらかスクロールになるように描画するしかないんじゃないですか?
TMemoだと、先頭行がきっちり表示され、1行分きっちり移動するスクロールにしかならないはず。

ゲームのオープニングにあるような、下から文字が出てきて上方向にスクロールして消えるというのをイメージしたけど、違う?

編集 削除
deldel  2006-04-25 11:18:34  No: 21177  IP: 192.*.*.*

Memoの高さを、テキスト全てが表示される大きさにし、
このMemoをScrollBoxに貼り付け、ScrollBoxをなめらかに
スクロールするというのはできないですか?
(やってないけど・・・)

編集 削除
ん?  2006-04-25 11:48:41  No: 21178  IP: 192.*.*.*

> このMemoをScrollBoxに貼り付け、ScrollBoxをなめらかに
> スクロールするというのはできないですか?

スレ主ではないけれどやってみました。
タイマーでスクロール

TMemoの高さ約2500
ScrollBox.DoubleBuffered := True;
TTimer.Interval := 10;
ScrollBox.Postion の移動量1

けっこうスマートなスクロールになりました。

おもしろいですね、このような組み合わせは思いつきませんでした。
deldel さん、ありがとうございました。

編集 削除
カレーライズ  2006-04-26 00:42:11  No: 21179  IP: 192.*.*.*

ん?さん。deldelさん。ありがとうございます。
  deldelさんへ
  deldelさんの言われたような考えなんて思いもつきませんでした。是非試してみたいと思います。ありがとうございます。
  ん?さんへ
  アドバイスのみならず  検証まで行って頂いてありがとうございます。私も同じように作成してみたいと思います。ありがとうございます。

編集 削除