Глюки rxDBGrid

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

Глюки rxDBGrid

Сообщение ronin » 12.12.2011 19:28:14

Поставил обработчик события RxDBGrid TitleClick, но при нажатии по шапке столбца левой кнопкой мыши возвращается всегда предыдущий столбец, а на первом столбце событие вообще не срабатывает, а при щелчке правой кнопкой мыши всё ок, почему так?

Добавлено спустя 5 минут:
UPD ещё какой то непонятный глюк - последний столбец не отображает данных, просто пустые ячейки, если добавляю пустой столбец то в предыдущем всё ок, данные показываются о_О

Добавлено спустя 16 минут 53 секунды:
UPD2 поставил стандартный грид, всё ок, все данные отображаются корректно, TitleClick отрабатывает на нажатие левой кнопки мыши как надо

автор ответь пожалуйста, очень надо использовать rxDBGrid

Добавлено спустя 16 часов 14 секунд:
с сортировкой разобрался, свойство AutoSort поставил в false и сразу стала работать сортировка по щелчку левой кнопкой...

Добавлено спустя 2 минуты 5 секунд:
остаётся вопрос по последнему столбцу, в desigtime режиме активировал набор данных, всё ок, последний столбец отображает данные... в рантайме не хочет :(

Добавлено спустя 41 минуту 30 секунд:
отключил индикатор, последний столбец стал показывать данные, буду разбираться

Добавлено спустя 33 минуты 3 секунды:
в общем времени разбираться нету добавил следующий код

Код: Выделить всё
procedure TGemsForm.RxDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if Column.Index=TDBGrid(Sender).Columns.Count-1 then begin
    TDBGrid(Sender).Canvas.TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
    TDBGrid(Sender).Canvas.Font.Style:=[];
  end;

  TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;


данные выводятся...

надеюсь автор объяснит данные недостатки, почему так :)

Добавлено спустя 1 час 35 минут 6 секунд:
ещё обнаружил ошибку: если вызвать диалог изменения видимости и расположения столбцов (TrxDBGridColumsForm) и попытаться нажать кнопку смещения столбца вниз, при этом не выделив в листбоксе ни одной строки, генерируется ошибка Out of bounds

вот в этом месте кода:

Код: Выделить всё
procedure TrxDBGridColumsForm.SpeedButton2Click(Sender: TObject);
var
  S:string;
  i:integer;
begin
  if CheckListBox1.Items.Count > 1 then
  begin
      if CheckListBox1.ItemIndex<CheckListBox1.Items.Count-1 then
      begin
        i:=CheckListBox1.ItemIndex+1;
        S:=CheckListBox1.Items[CheckListBox1.ItemIndex];
        CheckListBox1.Items[CheckListBox1.ItemIndex]:=CheckListBox1.Items[i];
        CheckListBox1.Items[i]:=S;
        CheckListBox1.ItemIndex:=i;
      end;
  end;
end;
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: Глюки rxDBGrid

Сообщение alexs » 24.12.2011 09:56:44

ronin писал(а):ещё обнаружил ошибку: если вызвать диалог изменения видимости и расположения столбцов (TrxDBGridColumsForm) и попытаться нажать кнопку смещения столбца вниз, при этом не выделив в листбоксе ни одной строки, генерируется ошибка Out of bounds

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

Re: Глюки rxDBGrid

Сообщение ronin » 24.12.2011 18:13:46

Не понял, как можно не выделять строку - там она по умолчанию выделена


ну я же врать не буду :) нажимаю пункт меню сетки, открывается окно столбцов грида, нажимаю кнопку "сместить вниз", вылетает исключение

спасибо за ответ
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: Глюки rxDBGrid

Сообщение alexs » 25.12.2011 22:47:13

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

Re: Глюки rxDBGrid

Сообщение grigoreo » 29.12.2011 10:16:59

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

Re: Глюки rxDBGrid

Сообщение alexs » 29.12.2011 19:16:41

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

Re: Глюки rxDBGrid

Сообщение ronin » 30.12.2011 09:06:19

дело в том что указатель смещён не с учётом индикатора, что кажется логичным, а именно на 1 меньше, т.е. при включённом индикаторе щёлкая по шапке столбца Column ссылается на предыдущий столбец, таким образом при щелчке по шапке первого столбца (после индикатора) событие вообще не отрабатывает, дальше со сдвигом на 1 столбец, т.е. при щелчке по шапке второго столбца Column ссылается на первый столбец и т.д.

данное поведение меняется либо при отключении индикатора, либо как я писал выше при установке свойства Autosort в false

в стандартном гриде такого нет
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: Глюки rxDBGrid

Сообщение alexs » 30.12.2011 20:45:39

ronin писал(а):в стандартном гриде такого нет

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

Re: Глюки rxDBGrid

Сообщение ronin » 20.01.2012 08:14:46

ещё заметил один небольшой недостаток. у меня главная форма приложения имеет свойство FormStyle=fsNormal, остальные формы fsStayOnTop, для того чтобы при работе с главной формой остальные не прятались за главную и всегда были сверху. При открытии формы в модальном режиме и попытке открыть rxDBGridColumsForm (выбор видимых столбцов) данная форма оказывается за текущей формой, потому что свойство FormStyle=fsNormal для данной формы, я думаю это неправильно и по-умолчанию оно должно быть таким, чтобы обеспечить 100% появление окошка с выбором столбцов
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: Глюки rxDBGrid

Сообщение alexs » 20.01.2012 20:53:18

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

Re: Глюки rxDBGrid

Сообщение ronin » 20.01.2012 21:23:22

почему тогда остальные гриды которые я использовал ранее ведут себя как надо? пришлось менять свойство данной формы в папке с библиотекой и перекомпилировать проект. раз уж вы считаете это стандартным поведением... чтож, прийдётся смириться
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: Глюки rxDBGrid

Сообщение ronin » 03.02.2012 09:05:28

проверил тут ещё RXDBLookupComboBox тоже аналогичный баг, если форма в StayOnTop то выпадающий список не видно, он появляется за формой... или это тоже стандартное поведение? для сведения, стандартный DBLookupComboBox выпадает как надо, независимо от состояния формы, даже если она StayOnTop и в модальном режиме, как то так
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: Глюки rxDBGrid

Сообщение alexs » 04.02.2012 01:38:14

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

Я сам этот режим (StayOnTop) не признаю (абсолютно не нужная фича) - поэтому сейчас проверять не буду.
Потести - если всё будет нормально - то можно включить опционально такое поведение (готовь патчик).

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

Re: Глюки rxDBGrid

Сообщение ronin » 08.02.2012 09:21:13

Я сам этот режим (StayOnTop) не признаю (абсолютно не нужная фича)


тогда у меня вопрос как реализовать многооконный интерфейс в программе при условии что главная форма развёрнута на весь экран и чтобы остальные открытые формы приложения не пропадали при щелчке на главной или использовании меню главного окна? как например в фотошопе или paint.net (mdi режим не в счёт)
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: Глюки rxDBGrid

Сообщение Mr.Smart » 08.02.2012 11:01:46

ronin поиграйте со свойством TForm.PopupParent
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

След.

Вернуться в RxLib

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

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

Рейтинг@Mail.ru