Мне нужно написать текст в ящик для рисования, и я делаю это в событии OnPaint.Когда я устанавливаю размер шрифта дважды в методе, OnPaint-событие вызывается неоднократно.
Чтобы убедиться в этом, попробуйте следующее:
- Создайте новыйПриложение VCL Forms
- Поместите поле для рисования в форму
- Вставьте следующий код в событие OnPaint:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.MoveTo(random(PaintBox1.Width),random(PaintBox1.Height));
PaintBox1.Canvas.LineTo(random(PaintBox1.Width),random(PaintBox1.Height));
PaintBox1.Font.Size := 10;
PaintBox1.Font.Size := 12;
end;
При запуске приложения вы будетеувидеть линию "прыгать" вокруг на коробке с краской.Однако если вы удалите одну или обе строки, задающие размер шрифта, вы увидите одну стационарную строку.
Почему это происходит и что я могу сделать, чтобы обойти это?