掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
グラフィック画面のチラツキ防止など (ID:21440)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi6+Win-XPで数週間前からVBから移植しています。 下記のようなもので一旦UraImgに画像を書き上げてからImage1に画像をコピーするものを作りましたがどうしても表示画面がちらつきます。(VB6ではこの10倍以上の描画をさせても滑らかでした)この問題に関してご教示ください。 1.Imageに描いてImageに転送していますがこのような場合はImageを使うのは適していますでしょうか。このような目的にはどのような描画コントロールを使えば良いか分からないで試しています。 2.画面をクリアする方法が分からずバックカラーで塗りつぶしていますが何か良い方法があるのでしょうか? 3.作業エリアから表示画面にCopyRectを使ってみましたがチラツキの改善手段と考えてBitBltを試してみました(コード末尾の//節)が最初の画面が出るだけで画面が移動しませんが何か問題があるのか、またその改善策を教えてください。 var Form1: TForm1; imgW,imgH:integer; UraImg:Timage; ImgRect:TRect; YPos:integer; implementation (省略) procedure TForm1.FormCreate(Sender: TObject); begin imgH:=800; imgW:=800; UraImg:=TImage.create(self); UraImg.Width:=imgW; UraImg.Height:=ImgH; panel1.Width:=imgW; Panel1.Height:=800; ImgRect:=rect(0,0,ImgW,ImgH); timer1.interval:=50; end; procedure TForm1.Timer1Timer(Sender: TObject); var i,h:integer; begin YPos:=YPos+1; If YPos>10 then Ypos:=0; with UraImg.canvas do begin Brush.Color:=rgb(128,192,255); rectangle(ImgRect) end; h:=Round(imgH/10); for i:=0 to h do begin UraImg.canvas.pen.color:=rgb(255,255,255); UraImg.canvas.MoveTo(0,YPos+i*10); UraImg.canvas.LineTo(imgW,Ypos+i*10); end; Image1.canvas.CopyRect(ImgRect,UraImg.canvas,ImgRect); //BitBlt(Image1.Canvas.Handle,0,0,ImgW,ImgH,UraImg.Canvas.Handle,0,0,SrcCopy); end; 以上、よろしくご指導ください。なおこのような目的にマッチした書籍などありましたら教えてください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.