Отрисовка многострочных заголовков и объеденение

Модераторы: alexs, Модераторы

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexs » 26.03.2010 21:14:22

ок.
посмотрю и включу в код.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexmai » 29.06.2010 16:57:52

alexmai
постоялец
 
Сообщения: 106
Зарегистрирован: 02.02.2009 14:58:42

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexs » 29.06.2010 20:24:42

Я знаю о не верном расчёте высоты ячейки. Но руки не доходят переделать.
Если есть желание - посмотри процедуру CalcTitle - это именно там.
Либо будем ждать - когда у меня появится время или срочный стимул для дописывания.

Ещё один баг, о котором я знаю с гридом - частичная отрисовка объединённой ячейки заголовка грида.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Отрисовка многострочных заголовков и объеденение

Сообщение dunin » 30.06.2010 08:33:40

alexs писал(а):...
Либо будем ждать - когда у меня появится время или срочный стимул для дописывания.
...

Угу... То, что сообщество уже несколько месяцев хаит RxDbGrid только за один этот баг, типа того стимул не достаточный... :roll:
ОК. Ждемс...
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Отрисовка многострочных заголовков и объеденение

Сообщение GrayEddy » 30.06.2010 09:00:27

Если кто не хочет ждать...
http://www.tkweb.eu/en/delphicomp/kgrid.html
Навороченный TStringGrid для Delphi & Lazarus, скриншоты присутствуют + демка в исходниках.
Из вкусностей:
- слияние(объединение) ячеек
- сортировка
- предварительный просмотр и печать грида
- выравнивание последней колонки
и многое другое...

PS. Рекомендуется скачивать KControls.zip, не KGrid*.zip, ибо в последнем отсутствуют некоторые нужные файлы, которые есть в первом архиве.

Помимо этого есть DataAware-ориентированная версия (TKDBGrid) - не юзал.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexmai » 30.06.2010 13:05:10

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 ?
alexmai
постоялец
 
Сообщения: 106
Зарегистрирован: 02.02.2009 14:58:42

Re: Отрисовка многострочных заголовков и объеденение

Сообщение GrayEddy » 30.06.2010 13:36:22

Ставился как на стабильном 28.3 (FPC 2.4.0), так и на свежем 0.29 с FPC 2.4.1.
Все нормально.
Демку соберешь с одного пинка - думаю, увиденное понравится.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexs » 30.06.2010 21:45:45

dunin писал(а):То, что сообщество уже несколько месяцев хаит RxDbGrid только за один этот баг

Библиотеку я пишу для себя... пока устраивает... но патчик от тебя на исправления этого бага очень жду :lol:
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexmai » 01.07.2010 19:56:30

alexs писал(а):
dunin писал(а):То, что сообщество уже несколько месяцев хаит RxDbGrid только за один этот баг

Библиотеку я пишу для себя... пока устраивает... но патчик от тебя на исправления этого бага очень жду :lol:


Вот посмотрел на скору руку

В процедуре 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 при ресайзе столбца правильная, все кто делал подобное, укорачивают текст заголовка, а ширину стараются держать пропориональную
alexmai
постоялец
 
Сообщения: 106
Зарегистрирован: 02.02.2009 14:58:42

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexs » 08.07.2010 22:52:23

По многочисленным заявкам радиослушателей - тестируйте
вроде подправил расчёт высоты ячеек. Теперь высота меняется по необхоимости у всех ячеек, а не только самой последней. Код ещё сырой - в реальных проектах не обкатывал. Только тестирвание пока.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexmai » 12.07.2010 15:29:59

Спасибо aleks !
А в каких файлах были изменения, чтобы не качать все и не пересобирать, а то у меня на разных ОС и гемморойно всю либу RXfpc пересобирать ?
alexmai
постоялец
 
Сообщения: 106
Зарегистрирован: 02.02.2009 14:58:42

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexs » 12.07.2010 20:24:17

rxdbgrid
а вобще юзай svn - это наш путь!
1 раз вытянул - а потом только изменения, заодно видно - что поменялось.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexmai » 13.07.2010 11:50:02

alexs писал(а):rxdbgrid
а вобще юзай svn - это наш путь!
1 раз вытянул - а потом только изменения, заодно видно - что поменялось.

Сдуру попытался юзать последний релиз, но наступил на очередные грабли, там freepascal 2.4 и уже нужно все пересобирать да еще на двух ОС. Я уже писал, добавили выравнивание в ячейке Stringrid, а в свойствах канвас убрали, в результате я сначала трахался из-за того что эттого свойства нет, заменяя его действие через канвас, а теперь должен трахаться что-бы переписывать весть код и всю идеологию, НАХРЕНА мне такие тупые улучшения,
как никак народ софт пишет не для игрушек.
alexmai
постоялец
 
Сообщения: 106
Зарегистрирован: 02.02.2009 14:58:42

Re: Отрисовка многострочных заголовков и объеденение

Сообщение alexs » 13.07.2010 20:14:22

сделай себе индивидуальный патчик - каждйы раз при сборке автоматом натягивай его
а ещё лучше - поставь запрос для Дж. Рейса - пусть вернёт канвас на место...
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Пред.

Вернуться в RxLib

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru