RxFPC - версия 1.1.1.75

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

Сообщение alexs » 15.05.2007 12:27:01

Очередное обновление
15.05.2007 - версия 1.1.1.75
+ В RxDBGrid добавлен метод OptimizeColumnsWidth(AColList:String) - подбирает
ширину колонки (колонок - перечисление через ";") по содержимому
+ В RxDBGrid добавлен метод OptimizeColumnsWidthAll - соотвественно производит автободбор
ширины для всех колонок
+ TRxColumn добавлен метод OptimizeWidth - подбор ширины указанной колонки
Для всех методов подбора ширины производится также выфетчивание всех записей
+ Опция rdgDblClickOptimizeColWidth в свойстве RxDBGrid.OptionsRx работает
- исправлен глюк расчёта высоты заголовка колонки для многострочного заголовка
- Исправлен глюк отерытия примера на RxDBGrid
+ В примере на RxDBGrid добавлен примера на оптимизацию ширины
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3675
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение m_guest » 16.05.2007 10:42:42

А почему такая странная дата обновления Rx - 15.03.2007?
И в новости тоже самое переехало....

Учитывая, что в WhatsNew.rus.txt предыдущая версия прописана
28.03.2007 - версия 1.1.0.68
m_guest
постоялец
 
Сообщения: 193
Зарегистрирован: 14.08.2005 15:10:21

Сообщение alexs » 16.05.2007 10:56:27

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

Сообщение Attid » 16.05.2007 13:17:45

все таки есть магическое информационое пространство
как раз недавно понадобился авторесайз колонок
делал для себя, а тут в rx появился =)
покладу пока сюда может кому пригодится , или покритикуют =)
код в RX еще не смотрел.

Код: Выделить всё
procedure ResizeGrid(var vGrid: TDBGrid);
var vNum:Integer;
var vLength:Integer;
var vColumn: TColumn;
begin
  for vNum := 0 to vGrid.Columns.Count -1 do
  begin
    vGrid.Columns.Items[vNum].Width := Length(vGrid.Columns.Items[vNum].Title.Caption)*8;
  end;
  while not vGrid.DataSource.DataSet.EOF do
  begin
    for vNum := 0 to vGrid.Columns.Count -1 do
    begin
      vColumn := TColumn(vGrid.Columns[vNum]);
      vLength := Length(vGrid.DataSource.DataSet.FieldByName(vColumn.FieldName).AsString)*8;
      if vGrid.Columns.Items[vNum].Width < vLength then
        vGrid.Columns.Items[vNum].Width := vLength;
    end;
    vGrid.DataSource.DataSet.Next;
  end;
  vGrid.DataSource.DataSet.First;
end;
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2578
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение alexs » 16.05.2007 16:45:45

а почему ты умношаеш ширину символа на 8? ведь не обязательно моноширинные шрифты - надо работать через Canvas.TextWidth
и ещё - я в своём коде не учитываю ширину заголовка - только оринтируюсь на ширину содержимого
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3675
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Attid » 16.05.2007 23:12:59

а почему ты умношаеш ширину символа на 8?

ну на самом деле чтоб быстрее написать :roll:
хотя можно доработать вынести в отдельную ветку примеров,
+ поставить ограничение чтоб фетчил не больше видимых записей.
и есть косячек если первая колонка имеет длину в 1 символ.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2578
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение alexs » 17.05.2007 00:13:39

+ поставить ограничение чтоб фетчил не больше видимых записей

Это идея - надо будет действительно это добавить в код - а фишка будет включаться через опцию
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3675
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение v-t-l » 19.05.2007 21:21:37

Есть мысли по RxDBGrid:
1. Вместо Footer и Filter Rows лучше сделать коллекцию закрепленных строк с опцией указания позиции (вверху/внизу) и возможностью пихать в них любые контролы.
2. "Странное" поведение заголовков колонок при изменении ширины, о котором писал Attid, неплохо было бы развить и для остальных строк. :D

Спасибо за библиотеку.
v-t-l
энтузиаст
 
Сообщения: 701
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение alexs » 20.05.2007 01:50:56

v-t-l писал(а):1. Вместо Footer и Filter Rows лучше сделать коллекцию закрепленных строк с опцией указания позиции (вверху/внизу) и возможностью пихать в них любые контролы.

Это ты намекаеш на аналог CtrlGrid-а из дельфей? или просто как TPanel?
для первого случая - LCL ещё не позволяет это делать
а для второго случая - я не вижу смысла

v-t-l писал(а):2. "Странное" поведение заголовков колонок при изменении ширины, о котором писал Attid, неплохо было бы развить и для остальных строк

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

Сообщение v-t-l » 20.05.2007 12:19:12

CtrlGrid - это здорово, но я имел ввиду, чтобы каждой ячейке закрепленной строки можно было назначить в дизайн-тайме свой контрол. Позиция, размер, видимость и переходы между которыми контролировались бы гридом.

(или даже по два контрола - для состояния просмотра и для состояния правки ячейки)
v-t-l
энтузиаст
 
Сообщения: 701
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение alexs » 21.05.2007 00:21:31

ну это ты круто загнул :-)
я пока даже так и не умею :-)))
глупый вопрос - а ЗАЧЕМ?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 3675
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение v-t-l » 21.05.2007 16:38:54

alexs писал(а):я пока даже так и не умею :-)))


Но ведь ты создаешь комбобоксы в рантайме для строки фильтров.
Почему бы не указывать подготовленный в дизайнтайме контрол.

alexs писал(а):глупый вопрос - а ЗАЧЕМ?


Можно лепить любые контролы на ячейки грида (хоть панели с контролами и обработчиками) - почти CtrlGrid
v-t-l
энтузиаст
 
Сообщения: 701
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение alexs » 22.05.2007 01:35:50

v-t-l писал(а):Но ведь ты создаешь комбобоксы в рантайме для строки фильтров.
Почему бы не указывать подготовленный в дизайнтайме контрол.

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

Сообщение Yogrik » 22.05.2007 14:57:21

alexs писал(а):
v-t-l писал(а):Но ведь ты создаешь комбобоксы в рантайме для строки фильтров.
Почему бы не указывать подготовленный в дизайнтайме контрол.

1. Комбобоксы работают только для одной строки
2. у меня нет времени на то, что мне самому не нужно - кстати - фильтра писал не я. соответсвенно - если хочеш такой функционал - давай код.

Ага, я тоже подумываю переписать на свой контрол, но займусь этим не раньше чем через месяц...:(
Yogrik
постоялец
 
Сообщения: 116
Зарегистрирован: 23.03.2006 00:41:48

Пред.

Вернуться в RxLib

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

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

Рейтинг@Mail.ru