Страница 1 из 1
rxdbGrid
Добавлено: 23.12.2011 10:33:30
grigoreo
Алексей подправь плиз кусок кода в процедуре TRxDBGrid.CalcTitle;
там переменая H отвечающая за высоту титлов, вычисляется 2 раза причем второй затирает результат первого (сразу вопрос на кой там лишний код), мне как раз нужен первый алгоритм я использую в Query запрос select * from <какая нить таблица>, и заранее не определяю ни ширину колонок ни ее какпции, все приходит с представлением а настройки колонок с самой базы, т.е у меня все динамически, поэтому я постоянно ремирую второй алгоритм,
поставь уже плиз проверку на то когда использовать первый а когда второй...
Re: rxdbGrid
Добавлено: 24.12.2011 17:13:42
dunin
Алексей, помоги разобраться пожалуйста
Добавил вот такой обработчик
Код: Выделить всё
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];
То первая колонка (индикатор), понятное дело, пропадает, но последняя отображается корректно.
Все таки баг? Не?
Re: rxdbGrid
Добавлено: 24.12.2011 18:14:53
ronin
я в соседней теме тот же баг описал
решил проблему TextOut для последней колонки (костыль)

p.s. причём в данном случае и ортировка глючит, щелчок по первому столбцу не отрабатывает вообще, а щелчок по шапке второго отрабатывает как по шапке первого и т.д.
Re: rxdbGrid
Добавлено: 24.12.2011 19:29:25
dunin
ronin писал(а):p.s. причём в данном случае и ортировка глючит, щелчок по первому столбцу не отрабатывает вообще, а щелчок по шапке
второго отрабатывает как по шапке первого и т.д.
Да. подтверждаю. Есть такое.

Re: rxdbGrid
Добавлено: 24.12.2011 20:48:34
Ism
Об этом надо писать в багтрекер с примером проекта воспроизводящего ошибку
Ну или в личку автору.
Re: rxdbGrid
Добавлено: 25.12.2011 22:45:43
dunin
Блин... Весь моск сломал - судя по исходникам RxDBGrid-а все должно без ошибки отрисовываться...
Добавлено спустя 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 минус один" - так и не разобрался.

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

не могу найти.
Re: rxdbGrid
Добавлено: 24.07.2012 12:58:21
OberonAR
dunin писал(а):Господа, подскажите, что надо включить-выключить, чтобы быстрый поиск по первым символам с клавитуры работал?
Вроде раньше работало - на пойму какое(ие) свойства неправильно поставил...

не могу найти.
Присоединяюсь к вопросу. Как заставить это работать?
Re: rxdbGrid
Добавлено: 24.07.2012 18:27:44
svk12
OptionsRx - rdgAllowQuickSearch ?
Но, похоже, не работает для полей с русским текстом.
Re: rxdbGrid
Добавлено: 24.07.2012 22:00:53
alexs
Проверю
Re: rxdbGrid
Добавлено: 24.07.2012 22:18:17
dunin
dunin писал(а):06.06.2012 09:47:25
...чтобы быстрый поиск по первым символам с клавитуры работал?
Вроде раньше работало...
alexs писал(а):24.07.2012 22:00:53
Проверю
Ну нормально так чо... и двух месяцев не прошло...
ОК. Ждемс...
Re: rxdbGrid
Добавлено: 25.07.2012 00:45:32
alexs
dunin писал(а):Ну нормально так чо... и двух месяцев не прошло...
Ну за два месяца можно и самому разобраться, и патчик сделать
Добавлено спустя 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]
После этого поиск активируется прямым набором текста в гриде.
Re: rxdbGrid
Добавлено: 25.07.2012 09:28:09
dunin
alexs писал(а):...
Из замечаний:
Запретить редактирование грида
...
ОК. Искренне спасибо.