Добрый день. Очень нужна Ваша помощь.
Мне необходимо сделать координатную сетку в виде точек. При масштабировании панели количество точек должно изменяться .
Хочу все это сделать на канве панели. Унаследовал класс и переопределил procedure Paint; override;
Tfield = class(TPanel)
Constructor Create( parent: TFmxObject);
procedure Paint; override;
Procedure OnMyClick (Sender: TObject);
end;
В теле метода я пробовал рисовать. Экспериментировал и столкнулся с такой проблемой. Ничего не отображается. Нет никаких изменений.
Если я наследую не от Tpanel а от Timage то часть кода работает а часть работает очень криво. Очень хочу разобраться почему .
{Отображается сразу}
for a:=1 to 1000 do
begin
self.Canvas.Fill.Color:= TAlphaColors.Crimson;
self.Canvas.FillEllipse(rect(1,1,10,10),self.AbsoluteOpacity);
self.Canvas.FillEllipse(rect(round(self.Width-9),round(self.Height-9),round(self.Width), round(self.Height)),self.AbsoluteOpacity);
self.Canvas.FillEllipse(rect(round(self.Width-9),1,round(self.Width), 9),self.AbsoluteOpacity);
self.Canvas.FillEllipse(rect(1,round(self.Height-9),10, round(self.Height)),self.AbsoluteOpacity);
end;
{Отображается только после того как я проскролю Scrollbox на котором лежит панель в крайнее нижнее правое положение}
self.Canvas.Stroke.Color:= TAlphaColors.Crimson;
self.Canvas.Stroke.Thickness:=7;
Canvas.BeginScene;
self.Canvas.DrawLine(PointF(20, 20), PointF(100, 50), self.AbsoluteOpacity);
Canvas.EndScene;
Подскажите пожалуйста, почему не работает такое с панелью? Как правильно рисовать на панели?
Почему в случае с имейджем все работает так некорректно? Почему работает только после скрола?
Каким способом мне лучше сделать координатную сетку? состоящую из точек как в режиме Design?