Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как сделать координатную сетку ?


Павел Блажеев

Вопрос

Добрый день. Очень нужна Ваша помощь. 
Мне необходимо сделать координатную сетку в виде точек. При масштабировании панели количество точек должно изменяться . 

Хочу все это сделать на канве панели. Унаследовал класс и переопределил 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?


 

g1.png

g2.png

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
В 19.11.2019 в 21:30, dnekrasov сказал:

Посмотрите компонент TPlotGrid. Может поможет чем

Спасибо. Пока что использовал этот компонент как временное решение) Но вопрос остается открытым) Еще раз благодарю) 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...