проблемки с TDBGrid

Вопросы программирования и использования среды Lazarus.

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

проблемки с TDBGrid

Сообщение grigoreo » 02.06.2010 11:47:09

Уважаемые форумчане, столкнулся с таким вот неудобством.

есть к примеру 2 формы Form1 и Form2(создается не автоматически)

на первой форме есть кнопка по клику на которую создается Form2 со связкой TQuery+TDataSet+TDBGrid(TRxDBGrid), создается запрос делается Query.Open, в конце всего я делаю команду DBGrid.SetFocus, как бы все логично фокус должен уйти гриду но, курсор активной записи замирает на первой строке и если нажимать кнопки вниз вверх, то он там и остается а набор данных в гриде начинает перемещатся когда как будто какой то невидимый курсор не достигнет низа, а вот если щелкнуть мышкой после этих манипуляций то видимый курсор переходит на вот этот мнимый сразу скачком..

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

Re: проблемки с TDBGrid

Сообщение dunin » 03.06.2010 08:55:22

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

Re: проблемки с TDBGrid

Сообщение grigoreo » 15.06.2010 12:19:44

наконец то удалось найти то после чего все это происходит дело в том что это выходит после смены размеров ширины колонок грида (программным путем во всяком случае)

пример прикреплен архивом

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

Re: проблемки с TDBGrid

Сообщение dunin » 16.06.2010 13:16:21

grigoreo писал(а):наконец то удалось найти то после чего все это происходит дело в том что это выходит после смены размеров ширины колонок грида (программным путем во всяком случае)

пример прикреплен архивом

Поковырялся в архиве. Короче так... Надо сделать вот что
Код: Выделить всё
...
  //dg.Columns[0].Width:=0;
  dg.Columns[0].Visible:= false; 
...

Фокус остается на первой колонке, а ее ширина 0 - от того такое безобразие. Если принудительно сделать ее не отображаемой - то фокус уходит на вторую колонку и все ОК.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: проблемки с TDBGrid

Сообщение grigoreo » 16.06.2010 14:45:27

dunin писал(а):Надо сделать вот что
Код: Выделить всё
...
  //dg.Columns[0].Width:=0;
  dg.Columns[0].Visible:= false; 
...

Фокус остается на первой колонке, а ее ширина 0 - от того такое безобразие. Если принудительно сделать ее не отображаемой - то фокус уходит на вторую колонку и все ОК.


хорошо а что мне делать в таком случае

dg.Columns[0].Width:=55;

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

Re: проблемки с TDBGrid

Сообщение dunin » 16.06.2010 15:21:42

grigoreo писал(а):хорошо а что мне делать в таком случае

dg.Columns[0].Width:=55;

???

Ничего не делать. В таком случае все нормально работает. По крайней мере у меня в Вашем примере
1.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: проблемки с TDBGrid

Сообщение grigoreo » 16.06.2010 16:23:51

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


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

Re: проблемки с TDBGrid

Сообщение dunin » 16.06.2010 16:40:41

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


Вернуться в Lazarus

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 31

Рейтинг@Mail.ru