У меня есть TForm, который имеет событие FormResize
внутри этой функции я хочу нарисовать что-то внутри моего изображения.
Моя функция 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. Изображение привязано во всех 4 направлениях.
Кто-нибудь знает, как сделать изображение еще больше?
Использовать TPaintBox
вместо TImage
и сделай свой рисунок в TPaintBox::OnPaint
событие. Тогда вам не нужно использовать TForm::OnResize
событие больше.
void __fastcall TForm1::ViewPortPaintBoxPaint(TObject *Sender)
{
// Teken de blokjes
_viewPort->draw(ViewPortPaintBox->Canvas, ViewPortPaintBox->ClientWidth, ViewPortPaintBox->ClientHeight);
}
Других решений пока нет …