Отрисовка многострочных заголовков и объеденение
Модераторы: alexs, Модераторы
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Я знаю о не верном расчёте высоты ячейки. Но руки не доходят переделать.
Если есть желание - посмотри процедуру CalcTitle - это именно там.
Либо будем ждать - когда у меня появится время или срочный стимул для дописывания.
Ещё один баг, о котором я знаю с гридом - частичная отрисовка объединённой ячейки заголовка грида.
Если есть желание - посмотри процедуру CalcTitle - это именно там.
Либо будем ждать - когда у меня появится время или срочный стимул для дописывания.
Ещё один баг, о котором я знаю с гридом - частичная отрисовка объединённой ячейки заголовка грида.
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
alexs писал(а):...
Либо будем ждать - когда у меня появится время или срочный стимул для дописывания.
...
Угу... То, что сообщество уже несколько месяцев хаит RxDbGrid только за один этот баг, типа того стимул не достаточный...
ОК. Ждемс...
Если кто не хочет ждать...
http://www.tkweb.eu/en/delphicomp/kgrid.html
Навороченный TStringGrid для Delphi & Lazarus, скриншоты присутствуют + демка в исходниках.
Из вкусностей:
- слияние(объединение) ячеек
- сортировка
- предварительный просмотр и печать грида
- выравнивание последней колонки
и многое другое...
PS. Рекомендуется скачивать KControls.zip, не KGrid*.zip, ибо в последнем отсутствуют некоторые нужные файлы, которые есть в первом архиве.
Помимо этого есть DataAware-ориентированная версия (TKDBGrid) - не юзал.
http://www.tkweb.eu/en/delphicomp/kgrid.html
Навороченный TStringGrid для Delphi & Lazarus, скриншоты присутствуют + демка в исходниках.
Из вкусностей:
- слияние(объединение) ячеек
- сортировка
- предварительный просмотр и печать грида
- выравнивание последней колонки
и многое другое...
PS. Рекомендуется скачивать KControls.zip, не KGrid*.zip, ибо в последнем отсутствуют некоторые нужные файлы, которые есть в первом архиве.
Помимо этого есть DataAware-ориентированная версия (TKDBGrid) - не юзал.
GrayEddy писал(а):Если кто не хочет ждать...
http://www.tkweb.eu/en/delphicomp/kgrid.html
Навороченный TStringGrid для Delphi & Lazarus, скриншоты присутствуют + демка в исходниках.
Из вкусностей:
- слияние(объединение) ячеек
- сортировка
- предварительный просмотр и печать грида
- выравнивание последней колонки
и многое другое...
PS. Рекомендуется скачивать KControls.zip, не KGrid*.zip, ибо в последнем отсутствуют некоторые нужные файлы, которые есть в первом архиве.
Помимо этого есть DataAware-ориентированная версия (TKDBGrid) - не юзал.
Спасибо GrayEddy, посмотрю обязательно, а на 28 lazarus становиться или какой там паскаль 2.2.4 или 2.4 ?
Ставился как на стабильном 28.3 (FPC 2.4.0), так и на свежем 0.29 с FPC 2.4.1.
Все нормально.
Демку соберешь с одного пинка - думаю, увиденное понравится.
Все нормально.
Демку соберешь с одного пинка - думаю, увиденное понравится.
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
dunin писал(а):То, что сообщество уже несколько месяцев хаит RxDbGrid только за один этот баг
Библиотеку я пишу для себя... пока устраивает... но патчик от тебя на исправления этого бага очень жду
alexs писал(а):dunin писал(а):То, что сообщество уже несколько месяцев хаит RxDbGrid только за один этот баг
Библиотеку я пишу для себя... пока устраивает... но патчик от тебя на исправления этого бага очень жду
Вот посмотрел на скору руку
В процедуре CalcTitle ИМХО перепутано желание получить (wrap) изменение высоты заголовка для разбора на строки, с максимальным количеством уровней загjловка, потом ведь идет присвоение
RowHeights[0] := DefaultRowHeight * ({FTitleLines+}H);
Короче подправил у себя код процедуры и высота стала нормальной,
найти причину лестницы не успел, это наверно где-то на уровне ресайза ?
Код: Выделить всё
Было ***********************
procedure TRxDBGrid.CalcTitle;
begin
....
if H2>WordCount(MLRec1.Caption, [' ']) then
H2:=WordCount(MLRec1.Caption, [' ']);
H1:=H1+H2;
end
end
else
begin
H1:=Max((tmpCanvas.TextWidth(rxTit.Caption)+2) div W + 1, H);
if H1>WordCount(rxTit.Caption, [' ']) then
H1:=WordCount(rxTit.Caption, [' ']);
end;
H:=Max(H1, H);
........
RowHeights[0] := DefaultRowHeight * ({FTitleLines+}H);
................
end;
Стало ..........
procedure TRxDBGrid.CalcTitle;
............
begin
if H2>WordCount(MLRec1.Caption, ['|']) then
H2:=WordCount(MLRec1.Caption, ['|']);
H1:=H1+H2;
end
end
else
begin
H1:=Max((tmpCanvas.TextWidth(rxTit.Caption)+2) div W + 1, H);
if H1>WordCount(rxTit.Caption, ['|']) then
H1:=WordCount(rxTit.Caption, ['|']);
end;
H:=Max(H1, H);
......
RowHeights[0] := DefaultRowHeight * ({FTitleLines+}H);
....................
end;
Добавлено спустя 2 минуты 8 секунд:
не думаю что идея сделать wrap при ресайзе столбца правильная, все кто делал подобное, укорачивают текст заголовка, а ширину стараются держать пропориональную
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
По многочисленным заявкам радиослушателей - тестируйте
вроде подправил расчёт высоты ячеек. Теперь высота меняется по необхоимости у всех ячеек, а не только самой последней. Код ещё сырой - в реальных проектах не обкатывал. Только тестирвание пока.
вроде подправил расчёт высоты ячеек. Теперь высота меняется по необхоимости у всех ячеек, а не только самой последней. Код ещё сырой - в реальных проектах не обкатывал. Только тестирвание пока.
Спасибо aleks !
А в каких файлах были изменения, чтобы не качать все и не пересобирать, а то у меня на разных ОС и гемморойно всю либу RXfpc пересобирать ?
А в каких файлах были изменения, чтобы не качать все и не пересобирать, а то у меня на разных ОС и гемморойно всю либу RXfpc пересобирать ?
alexs писал(а):rxdbgrid
а вобще юзай svn - это наш путь!
1 раз вытянул - а потом только изменения, заодно видно - что поменялось.
Сдуру попытался юзать последний релиз, но наступил на очередные грабли, там freepascal 2.4 и уже нужно все пересобирать да еще на двух ОС. Я уже писал, добавили выравнивание в ячейке Stringrid, а в свойствах канвас убрали, в результате я сначала трахался из-за того что эттого свойства нет, заменяя его действие через канвас, а теперь должен трахаться что-бы переписывать весть код и всю идеологию, НАХРЕНА мне такие тупые улучшения,
как никак народ софт пишет не для игрушек.
