フォームキャンバスに描画


るるとん@K  2004-05-09 03:10:58  No: 8838  IP: [192.*.*.*]

フォームに枠をつけたいのですがうまくいきません
フォームサイズ変更時に領域内部に枠が残るのを防ぐため、
ブラシで塗りつぶしてみましたが、無理でした。
procedure TMain.FormPaint(Sender: TObject);
begin
Canvas.Brush.Style:=bsSolid;
Canvas.Brush.Color:=$00E1E1E1;
Canvas.FillRect(ClientRect);
Canvas.Pen.Color:=clGray;
Canvas.Rectangle(ClientRect);
end;
どうすれば枠が残らないのでしょうか?
宜しくお願いしますn(__)n

編集    削除
jok  2004-05-09 03:35:39  No: 8839  IP: [192.*.*.*]

OnResize イベントハンドラで 再描画します。FillRect() は不要です。

procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Brush.Style:=bsSolid;
  Canvas.Brush.Color:=$00E1E1E1;
  Canvas.Pen.Color:=clGray;
  Canvas.Rectangle(ClientRect);
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  Refresh;
end;

編集    削除
るるとん@K  2004-05-09 05:17:22  No: 8840  IP: [192.*.*.*]

なるほど!綺麗に出来ました。
onResize時にrefreshを呼び出すんですね。
有難う御座いましたm(__)m

編集    削除