質問

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;
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top