delphi - tpaintbox - サイズ変更
質問
TPaintboxのサイズ変更とそれを描く問題がある:
私の形式(FMAINという名前)では、TPAINTBOX(DisplayImageという名前)をドロップしました。
それを行うことは、FMAINのためのonResize()メソッドを書きました(私は正しく呼ばれていることを確認しました)。
procedure TFMain.FormResize(Sender: TObject);
begin
DisplayImage.Width := FMain.ClientWidth;
DisplayImage.Height := FMain.ClientHeight;
DisplayImage.Canvas.Brush.Color := clGreen;
DisplayImage.Canvas.Brush.Style := bsSolid;
DisplayImage.Canvas.Rectangle(0, 0, DisplayImage.Width, DisplayImage.Height);
end;
.
imho最後のコードは完全な画像の上にフルイメージ緑の長方形を描くべきであり、それを効果的に常に緑色にします。代わりに、(Delphiの標準的なBG色のように)グレーの画像を取得し、スプリットの2番目のサイズの間に緑色の画像が点滅します。
私が行方不明のものは、サイズ変更後に更新する必要があるいくつかの隠されたコンポーネントがありますか?
事前にありがとう、
ブリザード
解決
まず第一に、
をする代わりにDisplayImage.Width := FMain.ClientWidth;
DisplayImage.Height := FMain.ClientHeight;
.
各サイズ変更で、ペイントボックスのAlign := alClient
を設定するだけです。
次に、ペイントボックスに描画するには、ペイントボックスのOnPaint
イベントを使用します。
procedure TFMain.DisplayImagePaint(Sender: TObject);
begin
DisplayImage.Canvas.Brush.Color := clGreen;
DisplayImage.Canvas.Brush.Style := bsSolid;
DisplayImage.Canvas.Rectangle(0, 0, DisplayImage.Width, DisplayImage.Height)
end;
. 所属していません StackOverflow