Страница 3 из 3
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 26.03.2010 20:14:22
alexs
ок.
посмотрю и включу в код.
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 29.06.2010 16:57:52
alexmai
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 29.06.2010 20:24:42
alexs
Я знаю о не верном расчёте высоты ячейки. Но руки не доходят переделать.
Если есть желание - посмотри процедуру CalcTitle - это именно там.
Либо будем ждать - когда у меня появится время или срочный стимул для дописывания.
Ещё один баг, о котором я знаю с гридом - частичная отрисовка объединённой ячейки заголовка грида.
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 30.06.2010 08:33:40
dunin
alexs писал(а):...
Либо будем ждать - когда у меня появится время или срочный стимул для дописывания.
...
Угу... То, что сообщество уже несколько месяцев хаит RxDbGrid
только за один этот баг, типа того стимул не достаточный...

ОК. Ждемс...
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 30.06.2010 09:00:27
GrayEddy
Если кто не хочет ждать...
http://www.tkweb.eu/en/delphicomp/kgrid.htmlНавороченный TStringGrid для Delphi & Lazarus, скриншоты присутствуют + демка в исходниках.
Из вкусностей:
- слияние(объединение) ячеек
- сортировка
- предварительный просмотр и печать грида
- выравнивание последней колонки
и многое другое...
PS. Рекомендуется скачивать KControls.zip, не KGrid*.zip, ибо в последнем отсутствуют некоторые нужные файлы, которые есть в первом архиве.
Помимо этого есть DataAware-ориентированная версия (TKDBGrid) - не юзал.
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 30.06.2010 13:05:10
alexmai
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 ?
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 30.06.2010 13:36:22
GrayEddy
Ставился как на стабильном 28.3 (FPC 2.4.0), так и на свежем 0.29 с FPC 2.4.1.
Все нормально.
Демку соберешь с одного пинка - думаю, увиденное понравится.
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 30.06.2010 21:45:45
alexs
dunin писал(а):То, что сообщество уже несколько месяцев хаит RxDbGrid только за один этот баг
Библиотеку я пишу для себя... пока устраивает... но патчик от тебя на исправления этого бага очень жду

Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 01.07.2010 19:58:38
alexmai
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 при ресайзе столбца правильная, все кто делал подобное, укорачивают текст заголовка, а ширину стараются держать пропориональную
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 08.07.2010 22:52:23
alexs
По многочисленным заявкам радиослушателей - тестируйте
вроде подправил расчёт высоты ячеек. Теперь высота меняется по необхоимости у всех ячеек, а не только самой последней. Код ещё сырой - в реальных проектах не обкатывал. Только тестирвание пока.
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 12.07.2010 15:29:59
alexmai
Спасибо aleks !
А в каких файлах были изменения, чтобы не качать все и не пересобирать, а то у меня на разных ОС и гемморойно всю либу RXfpc пересобирать ?
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 12.07.2010 20:24:17
alexs
rxdbgrid
а вобще юзай svn - это наш путь!
1 раз вытянул - а потом только изменения, заодно видно - что поменялось.
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 13.07.2010 11:50:02
alexmai
alexs писал(а):rxdbgrid
а вобще юзай svn - это наш путь!
1 раз вытянул - а потом только изменения, заодно видно - что поменялось.
Сдуру попытался юзать последний релиз, но наступил на очередные грабли, там freepascal 2.4 и уже нужно все пересобирать да еще на двух ОС. Я уже писал, добавили выравнивание в ячейке Stringrid, а в свойствах канвас убрали, в результате я сначала трахался из-за того что эттого свойства нет, заменяя его действие через канвас, а теперь должен трахаться что-бы переписывать весть код и всю идеологию, НАХРЕНА мне такие тупые улучшения,
как никак народ софт пишет не для игрушек.
Re: Отрисовка многострочных заголовков и объеденение
Добавлено: 13.07.2010 20:14:22
alexs
сделай себе индивидуальный патчик - каждйы раз при сборке автоматом натягивай его
а ещё лучше - поставь запрос для Дж. Рейса - пусть вернёт канвас на место...