Изменение размера Paintbox и проблемы с графикой - PullRequest
0 голосов
/ 09 марта 2019

Всякий раз, когда я изменяю размер палитры, она просто очищается и не добавляет графику в той же процедуре.

Вот что я пытаюсь сделать (BMP - это растровое изображение).

 PaintBox1.Width := PaintBox1.Width - 20;
 PaintBox1.Height := PaintBox1.Height - 20;
 BMP.Width := PaintBox1.Width;
 BMP.Height := PaintBox1.Height;
 Paintbox1.Canvas.Draw(0,0,BMP,255);

Я попытался создать другую процедуру для рисования растрового изображения и запустить его сразу после изменения размера окна рисования, но это также не работает.

Кажется, что это работает, только когда я назначаю Canvas.Draw другой процедуре и затем выполняю ее с помощью другой кнопки.

Какие-нибудь решения?

1 Ответ

2 голосов
/ 09 марта 2019

Рисование экранной графики может быть перекрашено всякий раз, когда это необходимо для Windows. Система обмена сообщениями Windows отправляет сообщение WM_PAINT дескриптору окна, когда требуется выполнить рисование. В Delphi, в большинстве случаев, особенно TPaintBox, это означает реализацию обработчика событий OnPaint. Это событие вызывается каждый раз, когда Windows требует от вас рисования.

...