rxdbGrid

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

rxdbGrid

Сообщение grigoreo » 23.12.2011 10:33:30

Алексей подправь плиз кусок кода в процедуре TRxDBGrid.CalcTitle;

там переменая H отвечающая за высоту титлов, вычисляется 2 раза причем второй затирает результат первого (сразу вопрос на кой там лишний код), мне как раз нужен первый алгоритм я использую в Query запрос select * from <какая нить таблица>, и заранее не определяю ни ширину колонок ни ее какпции, все приходит с представлением а настройки колонок с самой базы, т.е у меня все динамически, поэтому я постоянно ремирую второй алгоритм,

поставь уже плиз проверку на то когда использовать первый а когда второй...
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: rxdbGrid

Сообщение dunin » 24.12.2011 09:45:01

Алексей, помоги разобраться пожалуйста

Добавил вот такой обработчик
Код: Выделить всё
procedure TMainForm.GridReDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
  //var FontText:TColor;
begin

  //FontText := tDBGrid(Sender).Canvas.Font.Color;
    if (not (gdFocused in State)) and (not (gdSelected in State)) then begin
      if (tDBGrid(Sender).DataSource.DataSet.FieldByName('id_status').AsInteger in [1,6])
        then tDBGrid(Sender).Canvas.Font.Color := clRed else
      if (tDBGrid(Sender).DataSource.DataSet.FieldByName('id_status').AsInteger in [5,8])
        then tDBGrid(Sender).Canvas.Font.Color := clGray else
      if (tDBGrid(Sender).DataSource.DataSet.FieldByName('id_performer').AsInteger = UserID)
        then tDBGrid(Sender).Canvas.Font.Color := clMaroon else
      if (tDBGrid(Sender).DataSource.DataSet.FieldByName('id_client').AsInteger = UserID)
        then tDBGrid(Sender).Canvas.Font.Color := clNavy else
     end;

  tDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State);
  //tDBGrid(Sender).Canvas.Font.Color := FontText;

end;   

В результате последняя колонка не отрисовывается.
Изображение Изображение
Куда копать? Или бага?

Добавлено спустя 7 часов 28 минут 41 секунду:
Если сделать так:
Код: Выделить всё
GridRe.Options:= GridRe.Options - [dgindicator];

То первая колонка (индикатор), понятное дело, пропадает, но последняя отображается корректно.
Все таки баг? Не?
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: rxdbGrid

Сообщение ronin » 24.12.2011 18:14:53

я в соседней теме тот же баг описал

решил проблему TextOut для последней колонки (костыль) :)

p.s. причём в данном случае и ортировка глючит, щелчок по первому столбцу не отрабатывает вообще, а щелчок по шапке второго отрабатывает как по шапке первого и т.д.
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: rxdbGrid

Сообщение dunin » 24.12.2011 19:29:25

ronin писал(а):p.s. причём в данном случае и ортировка глючит, щелчок по первому столбцу не отрабатывает вообще, а щелчок по шапке
второго отрабатывает как по шапке первого и т.д.

Да. подтверждаю. Есть такое. :(
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: rxdbGrid

Сообщение Ism » 24.12.2011 20:48:34

Об этом надо писать в багтрекер с примером проекта воспроизводящего ошибку
Ну или в личку автору.
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: rxdbGrid

Сообщение dunin » 25.12.2011 16:27:56

Блин... Весь моск сломал - судя по исходникам RxDBGrid-а все должно без ошибки отрисовываться... :shock:

Добавлено спустя 6 часов 17 минут 47 секунд:
Нашел неожиданное решение.
Код: Выделить всё
procedure TMainForm.GridReDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  ...
  TRxDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol - 1 ,Column,State);
end;

Хотя почему так и почему "DataCol минус один" - так и не разобрался. :(
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: rxdbGrid

Сообщение dunin » 06.06.2012 09:47:25

Господа, подскажите, что надо включить-выключить, чтобы быстрый поиск по первым символам с клавитуры работал?
Вроде раньше работало - на пойму какое(ие) свойства неправильно поставил... :| не могу найти.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: rxdbGrid

Сообщение OberonAR » 24.07.2012 12:58:21

dunin писал(а):Господа, подскажите, что надо включить-выключить, чтобы быстрый поиск по первым символам с клавитуры работал?
Вроде раньше работало - на пойму какое(ие) свойства неправильно поставил... :| не могу найти.


Присоединяюсь к вопросу. Как заставить это работать?
Аватара пользователя
OberonAR
новенький
 
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

Re: rxdbGrid

Сообщение svk12 » 24.07.2012 18:27:44

OptionsRx - rdgAllowQuickSearch ?

Но, похоже, не работает для полей с русским текстом.
svk12
постоялец
 
Сообщения: 408
Зарегистрирован: 09.06.2008 18:42:47

Re: rxdbGrid

Сообщение alexs » 24.07.2012 22:00:53

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

Re: rxdbGrid

Сообщение dunin » 24.07.2012 22:18:17

dunin писал(а):06.06.2012 09:47:25
...чтобы быстрый поиск по первым символам с клавитуры работал?
Вроде раньше работало...

alexs писал(а):24.07.2012 22:00:53
Проверю

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

Re: rxdbGrid

Сообщение alexs » 25.07.2012 00:35:11

dunin писал(а):Ну нормально так чо... и двух месяцев не прошло... :roll:

Ну за два месяца можно и самому разобраться, и патчик сделать :lol:

Добавлено спустя 10 минут 21 секунду:
Всё работает.
Lazarus 1.1 r38033M FPC 2.7.1 x86_64-linux-gtk 2
rx также последний
Fedora Linux 16 x 64.

Из замечаний:
Запретить редактирование грида
Код: Выделить всё
ReadOnly = true
Option = Options - [dgEditing]
OptionsRx = OptionsRx + [rdgAllowQuickSearch]

После этого поиск активируется прямым набором текста в гриде.
Вложения
demo_33_RxDBGrid.tar.bz2
Пример быстрого поика в RxDBGrid
(78.54 КБ) Скачиваний: 633
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: rxdbGrid

Сообщение dunin » 25.07.2012 09:28:09

alexs писал(а):...
Из замечаний:
Запретить редактирование грида
...

ОК. Искренне спасибо.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и


Вернуться в RxLib

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

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

Рейтинг@Mail.ru