掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Canvasへの線の再描画がTImageの再描画で消される? (ID:43851)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>>procedure TForm1.Button1Click(Sender: TObject); >>begin >> Image1.Picture.LoadFromFile('test.jpg'); >> MoveToEx(Canvas.Handle,10,20,nil); >> LineTo(Canvas.Handle,100,150); >>end; >とすると、Lineが描画されたあとに画像が描画されるようで、 >Lineは画像により見えなくなります。 画像がロードされた時点で再描画が要求されるが、実際には Button1Click が終わった時点で処理されるので 画像ロード -> 線描画 -> 画像描画 になるので 線が消える ロードした後に Application.ProcessMessages すれば消えない /// フォームを描画後に各コンポーネントを描画しにいくので OnPaint でフォーム描画後にImageを再描画しに行くので 線が消える なので WM_PAINT 後に描画するしかない type TForm7 = class(TForm) Image1: TImage; procedure WMPAINT(var Message: TWMPAINT);message WM_PAINT; private public end; var Form7: TForm7; implementation {$R *.dfm} procedure TForm7.WMPAINT(var Message: TWMPAINT); begin inherited; Canvas.Pen.Width := 2; Canvas.MoveTo(0,0); Canvas.LineTo(100,100); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.