掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Delphi6で画像のちらつきをなくすには? (ID:14438)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
とりあえず下記のソースを参考にしてForm1に Image1を貼り付けてください 画像は適当な大きさのものをあらかじめ貼り付けてください。 Form1をリサイズするとImage1がちらつくことが分かります。 ちらつきが確認できたら Form1.DoubleBuffered:=True; にしてみてください、 さらにちらつきがなくなるのを確認したら Form1.DoubleBuffered:=False; にしてからコメントアウトを外してください。 とすると、DoubleBufferedを使用しないでちらつかない描画ができます。 ですが、このようなことを行うともはやTImageやTPaintBoxを使用するより自分でコントロールを作成する方が手っ取り早くなります。 >>sadoyama >>Frm1.DoubleBuffered や ScrollBox1.DoubleBuffered を使うしかありません。 そんな事はありません。ただ簡単では無いだけです。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg; type TForm1 = class(TForm) Image1: TImage; procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormResize(Sender: TObject); private { Private 宣言 } //procedure WMEraseBkGnd(var Msg: TMessage); message WM_ERASEBKGND; public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} //コメントを外して比較してください //その際FormPaintのコメントアウトした一文も外してください //procedure TForm1.WMEraseBkGnd(var Msg: TMessage); //begin // Msg.Result:=0; //end; procedure TForm1.FormCreate(Sender: TObject); begin Image1.Align:=alNone; Image1.AutoSize:=True; //切り替えてみてください DoubleBuffered:=False; Canvas.Pen.Color:=Canvas.Brush.Color; end; procedure TForm1.FormPaint(Sender: TObject); begin //Canvas.Rectangle(0,0,ClientWidth ,ClientHeight); end; procedure TForm1.FormResize(Sender: TObject); begin Image1.Left:=ClientWidth - Image1.Width - 50; Image1.Top :=ClientHeight - Image1.Height - 50; end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.