Если создал проект в использованием модуля System.Windows.Forms , можно ли что-то нарисовать в нём как в GraphWPF - круг, квадрат или что-то такое? Совместно System.Windows.Forms и GraphWPF не “дружат”. Сanvas , как в дельфи тоже нет. Какие есть варианты?
{$reference System.Windows.Forms.dll}
{$reference System.Drawing.dll}
{$apptype windows}
uses System.Windows.Forms;
uses System.Drawing;
begin
var MainForm := new Form;
MainForm.Paint += (o,e)->
begin
var gr := e.Graphics;
var brush := new SolidBrush(Color.Red);
gr.FillEllipse(brush, 10,10,50,50);
end;
Application.Run(MainForm);
end.
Создавать объект типа Graphics
можно и без ивента .Paint
, но это, обычно, не правильно. Потому что wf это не для игры, с перерисовкой по 60 раз в секунду минимум. А для вывода меню, с текстовыми полями и кнопочками, которое перерисовывается только когда надо.
Ну, перерисовку можно вызвать досрочном, методом .Invalidate
. Этот метод вызывает полный пересчёт состояния элемента управления в ближайшее время после вызова (но не сразу и не синхронно).
1 лайк
Большое спасибо за ответ!