0

我有一个 TForm 有一个事件FormResize,在那个函数中我想在我的 TImage 中绘制一些东西。

我的 FormResize 函数如下所示

void __fastcall TForm1::FormResize(TObject *Sender)
{
    // Teken de blokjes
    _viewPort->draw(_viewPortImage->Canvas, _viewPortImage->Width, _viewPortImage->Height);
}

在这个函数中,我只绘制一个绘制边框的矩形:

ViewPort::draw(Vcl::Graphics::TCanvas* Canvas, int width, int height)
{
    Canvas->Rectangle(0, 0, width, height);
}

现在的问题。当我使表单小于原始表单时,它可以很好地缩放。但是当表格变得比原始尺寸大时。背景+边框画得不好。请参阅下面的屏幕截图。白色背景/画布来自 TImage。TImage 在所有 4 个方向上都锚定。

任何人都知道如何使图像能够调整更大?

截图原图更小更大

4

1 回答 1

0

使用 aTPaintBox代替 aTImage并在TPaintBox::OnPaint活动中进行绘图。然后你就不需要再使用这个TForm::OnResize事件了。

void __fastcall TForm1::ViewPortPaintBoxPaint(TObject *Sender)
{
    // Teken de blokjes
    _viewPort->draw(ViewPortPaintBox->Canvas, ViewPortPaintBox->ClientWidth, ViewPortPaintBox->ClientHeight);
}
于 2013-02-11T23:20:04.537 回答