Перейти к содержанию
  • Регистрация
  • 0
Razmir

Сетка перекрывает элементы

Вопрос

Приветствую. Рисую координатную сетку с помощью такого кода:

  with Panel1 do
  begin
    Canvas.BeginScene;
    try
      Canvas.Stroke.Color:=talphacolorRec.Darkgrey;
      b:=trunc(Width/CellSize)-1;
      c:=trunc(height/CellSize)-1;
      for a := 0 to b do
      begin
        if (a mod 10 = 0) then Canvas.Stroke.Thickness:=2 else Canvas.Stroke.Thickness:=1;
        Canvas.DrawLine(PointF(a * CellSize + 0.5, 0.5), PointF(a * CellSize + 0.5, height-1), 1);
      end;
      for a := 0 to c do
      begin
        if (a mod 10 = 0) then Canvas.Stroke.Thickness:=2 else Canvas.Stroke.Thickness:=1;
        Canvas.DrawLine(PointF(0.5, a * CellSize + 0.5), PointF(width-1, a * CellSize + 0.5), 1);
      end;
      finally
      Canvas.EndScene;
    end;
  end;

Проблема в том, что при размещении компонентов на панели, сетка рисуется и на них. Как от этого избавиться? Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • 0
52 минуты назад, Razmir сказал:

сетка рисуется и на них

Попробуйте Width и Heigh взять из координаты ARect события OnPainting, мне помогло. 

    PROCEDURE pbGraphPainting( Sender : TObject; Canvas : TCanvas; const ARect : TRectF );

...

   _rGraph.OnPainting := pbGraphPainting;

 

 

Изменено пользователем GASCHE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
18 часов назад, GASCHE сказал:

Попробуйте Width и Heigh взять из координаты ARect события OnPainting, мне помогло. 

    PROCEDURE pbGraphPainting( Sender : TObject; Canvas : TCanvas; const ARect : TRectF );

...

   _rGraph.OnPainting := pbGraphPainting;

 

Попробовал, то же самое.

В общем на панель кинул rectangle, сетку рисую на нем, а объекты размещаю на панели, так все норм

Изменено пользователем Razmir

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

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


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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