2013-02-10 3 views
0

У меня есть TForm, у которого есть событие FormResize, в рамках этой функции я хочу нарисовать что-то внутри моего TImage.TImage ширина/высота якорь не работает

функция My 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 закреплен во всех четырех направлениях.

Кто-нибудь знает, как сделать изображение более крупным?

Screenshot original smaller bigger

ответ

0

TPaintBox Используйте вместо TImage и сделать свой рисунок в TPaintBox::OnPaint случае. Тогда вам больше не нужно использовать событие TForm::OnResize.

void __fastcall TForm1::ViewPortPaintBoxPaint(TObject *Sender) 
{ 
    // Teken de blokjes 
    _viewPort->draw(ViewPortPaintBox->Canvas, ViewPortPaintBox->ClientWidth, ViewPortPaintBox->ClientHeight); 
} 
Смежные вопросы