• Главная
  • Исходники Delphi
  • Справочники Delphi
  • Книги Delphi
  • Основы Delphi
  • библиотека Delphi исходников
  • Форум
  • Блоги

Последние записи

  • Прозрачность тайлсета в TPNGImage
  • Как сделать VBA макрос в excel
  • Поиск по столбцу 1-ого не нулевого значения (формулой в Microsoft Office Excel)
  • Простановка единиц в ячейки под объектами (Microsoft Office Excel)
  • Расчет затраченного времени между определенным рабочим временем (формулой в Microsoft Office Excel)
  • Мигающий экран на Assembler
  • VBA-макрос по копированию 10 строчек в выбранном диапазоне в Microsoft Office Excel
  • Копирование только нужного диапазона в Microsoft Office Excel
  • Перенос диапазона стоки в Microsoft Office Excel на другой лист по условию
  • Мелодия в Pascal.ABC.Net с помощью System.Console.Beep — задержка воспроизведения звука
  • .NET
  • ASP.NET
  • assembler
  • Basic
  • c/c++
  • CMS
  • Delphi
  • HTML
  • iPhone
  • Java
  • JavaScript
  • Linux
  • Pascal
  • Perl
  • Photoshop
  • php
  • Python
  • Ruby
  • SEO
  • sql
  • VBA
  • Win Api
  • Windows
  • XML и XSLT
  • Администрирование ОС
  • Апгрейды
  • Архив
  • Безопасность
  • Блоги
  • Веб-аналитика
  • Железо
  • Журнал
  • Заметки
  • Имейдж
  • Интервью
  • Исходники
  • Новости
  • Общалка
  • Операционные системы
  • Пост-обзор
  • Профлитература
  • Рассылка
  • Реклама
  • си шарп
  • Советы
  • Софт
  • Статьи
  • Топик-обзор
  • Файлы








18th
Июн

Объединить 2 первых ячейки по горизонтали в DBgridEh

Posted by Chas under Delphi

Как объединить несколько горизонтальных ячеек в одну большую?

Nightmareterrible
Мне понадобилось объединить 2 первых ячейки по горизонтали, и оказывается, что статей по этому поводу в интернете не особо-то и найдёшь.
Вот результат моих наработок, если кому-то надо, используйте:

Мне нужно было в onDrawFooterCell, но можно везде поменять на ColumnCell — будет работать.

procedure DBGridEh1DrawFooterCell(Sender: TObject;
DataCol, Row: Integer; Column: TColumnEh; Rect: TRect; State: TGridDrawState);
begin
if Row = 1 then // нумерация с 0
begin
DBGridEh1.Canvas.Brush.Color := clSilver;
if Column.Index = 1 then
begin
// Отключение отрисовки не сработает, т.к. в DBGridEh.pas FonDrawFooterCell вызывается
// уже после прорисовки ячейки методом по умолчанию.
// НО: можно рисовать ячейку 1 после отрисовки ячейки 2
Rect.Left := Rect.Left - DBGridEh1.Columns[0].Width;
DBGridEh1.Canvas.FillRect(Rect);
DBGridEh1.Canvas.TextOut(Rect.Left, Rect.Top + 2, DBGridEh1.GetFooterValue(Row,
DBGridEh1.Columns[0]));
end
else
DBGridEh1.DefaultDrawFooterCell(Rect, DataCol, Row, Column, State);
end
else
begin
Column.Footer.ValueType := fvtSum;
inherited;
end;
end;

тема на форуме

Похожие статьи

  • Как нарисовать две перпендикулярных линии(уголок)?
  • Нарисовать флаг Дании и Швейцарии
  • Движение обьекта на заданный угол
  • Соединить 2 edit линией
  • Как сделать снимок memo поля в программе
  • Как сделать скриншот во время игры?
  • Столкновения в 2D-игре
  • Работа с Canvas HTML5 (примеры)
  • Окружность на канве
  • Крестики нолики исходник
Теги: canvas | dbgrideh | объединить ячейки | ячейки








© Copyright "Клуб программистов" – материалы по Delphi и С++. Создание и продвижние сайта - Веб-сателлит.