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文の実行速度を遅くしたいの...
-
ローソク足をPHPで描くには・・・
-
c言語 ちらつき
-
VB.NETでグラフィックを描くと...
-
VC++のダイアログボックスに絵...
-
Excel VBA:コントロールボタン...
-
PictureBoxのダブルバッファリ...
-
IEでだけレイアウトが縦になる
-
Flashにおけるペンツールが使え...
-
Excel 2007で、フリーフォーム描画
-
vb6のTEXTBOX
-
C#2005でExcelの図形描画のよう...
-
BCB5:Canvas->FrameRectで描画...
-
COLORREF color の反転色
-
Word 描画オブジェクトを削除...
-
Visual C++ MaskedTextBoxの右...
-
scilabでのグラフ描画時の軸設定
-
VB.NETのグラフィック描画について
-
Linux上でのC++言語を用いたメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
給紙トレイをダイアログを使わ...
-
win32api複数のタイマーを同時...
-
VB.NETでグラフィックを描くと...
-
C#を用いて描画する四角形の角...
-
MFCでのコンボボックスについて
-
画面に絵を出す方法
-
Word 描画オブジェクトを削除...
-
PowerPoint の VBA
-
C#で壁の当たり判定と自キャラ...
-
VB.netで図形描画ができません^^;
-
図の削除直後の再描画
-
円の頂点の求め方を知りたいです。
-
VB.NETでphotoshopのレイヤーの...
-
C# DrawImage 物理サイズでな...
-
ビットマップに描画をしてピク...
-
Excel 2007で、フリーフォーム描画
-
COLORREF color の反転色
-
VC;;6.0のMFCで線を簡単に引け...
おすすめ情報