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

Объединение ячеек одного стоблца


striker

Вопрос

Всем привет!
Нужен совет.
Есть Grid, в нем расписание дня.
В БД каждая строка это отдельная запись.
Нужно как-то визуально сделать подобие объединения ячеек в Excel.
Т.е. нужно занять расписание на 2 часа.

При этом функционал по событиям для строки "второго часа" должен быть недоступен.
Может хотя бы границу стирать, т.е. оставлять значение в верхней ячейки, а нижнюю просто не отображать.
Как это лучше сделать?

FMX, Windows, Delphi XE6, MySQL
 

01.PNG

Изменено пользователем striker
Ссылка на комментарий

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

  • 0

Попробуйте через события TGrid.OnDrawColumnCell или TGrid.OnDrawColumnBackground.

Там можно отрисовывать в ячейках то, что вам нужно

Изменено пользователем Alex7wrt
Ссылка на комментарий
  • 0
if (zqOneDay5.FieldByName('TwoHoursKind').Value=2) and (Column = TGrid(Sender).Columns[1]) then
  begin
    TextRect := Bounds;
    TextRect.Left := TextRect.Left+2;
    TextRect.Right:= TextRect.Right-1;
    TextRect.Top := TextRect.Top-(TextRect.Bottom-TextRect.Top)+1;
    TextRect.Bottom :=TextRect.Bottom-2;
    TextRect.Inflate(-HorzTextMargin, -VertTextMargin);
    Canvas.Stroke.Thickness:=2;
    Canvas.Stroke.Color:=TAlphaColorRec.Blue;

    Canvas.DrawRect(TextRect, 0, 0, AllCorners, 1);
    Canvas.Stroke.Thickness:=1; 

       TGrid(Sender).DefaultDrawColumnCell(Canvas, Column, Bounds, Row, Value, State);
  end;

Вот, что получилось самое лучшее.

Как убрать белую линию-разделитель ячеек по горизонтали?

 

Безымянный.png

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

Есть событие: *DrawColumnCell. Через него можно отрисовать в ячейке что угодно. Единственная проблема - выводить будешь на уже отрисованный контент поверх, т.е. тормоза. Понимаю, что идиотизи, но других вариантов нет. Ну и ествественно onedit надо ловить, но он очень глючно доходит под всеми OS, но доходит после танцев с бубном. В принципе всё.
 

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

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

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

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

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

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

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

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

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

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