> -- Илья Ермаков писал(а):
> А зачем "самопальные" Paint? Я не до конца понимаю логику... Подозреваю, что по Action Вы вызываете свой Paint(c, f)? Этого делать нельзя. Хотя бы потому, что Вы не можете делать никаких предположений о кадре за пределами Restore и HandleCtrlMsg, куда он передаётся; он может меняться в любой момент.Обычно делается так: рисование описывается в yourControl.Restore, а из Action периодически вызывается Views.Update(yourControl, Views.keepFrames). Вы пробовали эту схему? Если да, то чем она не подошла?А для чего p.OpenBuffer?

Пардон, что не до конца объяснил. Paint как раз в Restore и вызывается:

PROCEDURE (c: Control) Restore* (f: Views.Frame; l, t, r, b: INTEGER);
BEGIN
Paint(c, f)
END Restore;

В Action вызывается value := value + 1; Dialog.UpdateReal(value), где value связана с контролом.
Почему p.OpenBuffer, потому что тогда вся последующая отрисовка(как я понял идет в Bitmap)
p.CloseBuffer затем выводит на экран Bitmap. p.OpenBuffer и p.CloseBuffer - это я потом добавил.
Было просто c.Paint(). Отрисовка контрола мерцает.