No.2ベストアンサー
- 回答日時:
こんにちは。
失礼しました。TImage は TWinControl から派生したクラスではないので DoubleBuffered プロパティは使えませんね。
なるほど、やりたいことはよくわかりました。というか、私も同じようなことをやっています。
私は C++Builder を使用していますが、概念は一緒です。
まず、TScrollBox を配置し、その中に TImage と TPaintBox を配置します。TImage には画像を読み込んで表示し、その上に重なるように置いた TPaintBox で作図機能を実装します。マウスによる作図機能は、 TPaintBox の OnMouseDown, OnMouseMove 等のイベントで処理します。
で、実際に DoubleBuffered を設定するのは、TScrollBox のほうです。やりかたは、先の回答と同じで、ScrollBox1.DoubleBuffered := true です。
situmonnsya さんの Image2 に該当するのが TPaintBox となりますが、TPaintBox での描画内容は便宜 Bitmap や Jpeg 等に出力できるので、この方法で問題ないでしょう。あと、注意事項としては、TPaintBox の中身を FillRect 等で塗りつぶさないことです。確実にチラつきます(経験則です)。
良回答でした。
お答えを参考にいろいろやってみました。
PaintBoxを使用する限りDoubleBufferedの設定はしなくてもちらつきはでないみたいです。
ありがとうございました。
No.1
- 回答日時:
こんにちは。
どのような描画をしようとしているのか、ちょっと気になりますが……。
単に DoubleBuffered を設定したいだけであれば、オブジェクト(コンポーネント)の DoubleBuffered プロパティに TRUE をセットするだけです。
FormCreate の中などで、
Image1.DoubleBuffered := true
(だったと思います。↑の Pascal 文法が間違ってなければ…)
とすれば良いと思います。
この回答への補足
ふたつのimage1とimage2が重なって配置されてます。
下のimage1に絵があって、上のimage2はTransparentをTrueにして透かしています。
image2にマウスが移動した分、線が描かれます。
CADのラバーライン(?)みたいな感じです。
imageのオブジェクトインスペクタにはDoubleBuffered プロパティはないんです。
でも、コードで記述して設定できるみたいなんです。(質問番号QNo.144887の回答より)
>Image1.DoubleBuffered := true
としても
[エラー] Unit1.pas(73): 未定義の識別子 : 'DoubleBuffered'
となります。
Image1.Canvas.DoubleBuffered := true
としてもダメでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ブロックエディターで作りつつ、画像を挿入しつつ、画像にスタイルシートのコードを付ける方法はありますか 1 2022/08/23 18:46
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- その他(動画サービス) TVerでPINコードを求められてログイン出来ない。 AndroidTVであらかじめスマホアプリやP 2 2023/07/17 13:33
- Windows 8 Route Generator の使い方 1 2023/05/03 00:36
- WordPress(ワードプレス) WordPressの編集画面がいつもと違うのですがこれは何でしょう? 1 2023/03/29 10:26
- HTML・CSS CSSでサイトの背景に画像を組み込みたいのですが反映されません 2 2022/11/22 16:21
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- gooブログ ブログの記事を書きだしのみに表示したい 1 2022/06/25 19:11
- Excel(エクセル) エクセルVBA マクロ処理中のポップアップメッセージについて 1 2023/08/04 21:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
Bitmap画像の消去について
-
VC++ ドラッグしながらの図の...
-
OpenGLでのオブジェクトの描画上限
-
.net chartでの積層棒グラフの...
-
COLORREF color の反転色
-
C# DrawImage 物理サイズでな...
-
C# イベント登録(RowPostPaint...
-
Word 描画オブジェクトを削除...
-
ピクチャーボックスでの折線グ...
-
C#を用いて描画する四角形の角...
-
角が丸い長方形の描画
-
C#2005でExcelの図形描画のよう...
-
【Delphi】 Canvasへの描画につ...
-
C#でPictureBox内での図形移動...
-
DrawLineで引いた線が消えてし...
-
給紙トレイをダイアログを使わ...
-
c言語 ちらつき
-
水平線の描画
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
Word 描画オブジェクトを削除...
-
C#を用いて描画する四角形の角...
-
ビットマップに描画をしてピク...
-
PowerPoint の VBA
-
給紙トレイをダイアログを使わ...
-
win32api複数のタイマーを同時...
-
画面に絵を出す方法
-
MFCでのコンボボックスについて
-
.NETのPictureBoxでウインドウ...
-
scilabでのグラフ描画時の軸設定
-
Excel VBA:コントロールボタン...
-
VC;;6.0のMFCで線を簡単に引け...
-
花火のアルゴリズム
-
VB.NETでグラフィックを描くと...
-
水平線の描画
-
Excel 2007で、フリーフォーム描画
-
C# DrawImage 物理サイズでな...
-
円の頂点の求め方を知りたいです。
おすすめ情報