
Последние записи
- Прозрачность тайлсета в 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 — задержка воспроизведения звука

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;