Хороший день ... Я использую OnPaint Delphi, чтобы создать несколько строк ... пока все будет в порядке ... Моя проблема начинается, когда я пытаюсь обновить эти строки ...Как обновить чертеж в OnPaint Delphi
я обнаружил, что для очистки экрана, я могу использовать:
Invalidate()
например:
Then if True
Begin
Canvas.Ellipse (0,0,100,50);
End Else Begin
Invalidate();
end;
Этот способ работает очень хорошо ... Но проблема заключается в том, что потребление памяти Invalidate() ; использует ....
Нормальный Он потребляет меньше 0,3% .... Теперь Invalidate();
потребляет 30% ... большая разница ...
Есть ли какие-либо другие функции, которые могут использовать для очистки экрана без использования OnPaint как процессора, так и способа сделать OnPaint одним проходом, чтобы дать Invalidate(); ... Потому что он постоянно обновляется, поэтому потребляет много процессора .... Мне нужно очистить этот экран в то время, но другим нужно обновить изображение OnPaint ...
сделал вы помещаете 'Invalidate'' внутри' OnPaint'-Method? –
BTW 'Invalidate' сделал ** не ** очистить экран, это просто, чтобы проинформировать элемент управления, чтобы перекрасить как можно скорее. http://docwiki.embarcadero.com/Libraries/en/Vcl.Controls.TControl.Invalidate –
@SirRufo Это не то, что делает Invalidate. Перерисовать или обновить. Invalidate помещает элемент управления как грязный, вызывая InvalidateRect. Только когда очередь сообщений пуста, будет инициирован цикл рисования. –