Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обновление в DbGrid [D7, fb]


Страницы:   1 2

Евгений Р. ©   (2008-07-19 15:30:00) 

dbGrid отражает информацию tIbQuery
необходимо обновить информацию
делаю:

key:=quKey.asInteger;
qu.close;
qu.open;
qu.locate('key',variant(key),[]);  (или BookMark)

все работает, но информация в гриде смещается. Можо ли сделать, сохранить одновременно позицию первой строки грида и текущей записи?


MsGuns   (2008-07-25 14:25:00) [1]

Под "иногда" я имел в виду не технологию, а сам совет, которым надо пользоваться ВДУМЧИВО.
В данном случае, ИМХО, именно так и произошло ;)


Германн   (2008-07-25 01:04:00) [2]


> MsGuns ©   (24.07.08 20:55) [33]
>
> Снимаю свое замечание в [17]
> Иногда такое действует ;)


> isasa ©   (25.07.08 00:13) [34]


Аааа. Так вот что ты имел ввиду. Тут isasa © прав. .
ЮЗ для такого маневра даже изобрел имя THackxxxx. :)
И этот манёвр староизвестен ещё с Д1.


isasa   (2008-07-25 00:13:00) [3]

MsGuns ©   (24.07.08 20:55) [33]

Снимаю свое замечание в [17]
Иногда такое действует ;)


Почему "иногда". Это один из "стандартных" обходных маневров для получения доступа к protected членам класса. :)


MsGuns   (2008-07-24 20:55:00) [4]

Снимаю свое замечание в [17]
Иногда такое действует ;)


Плохиш   (2008-07-24 14:00:00) [5]


> TDBGrid - согласен, но не понимаю. Для доступа к Row работало
> даже при tCustomGrid.

Для доступа к protected-свойствам необходимо создавать класс-наследник от класса, к свойствам которого мы хотим получить доступ. В данном случае тебе просто повезло :-)

> BeginUpdate/EndUpdate - часто встречаю, но не понимаю их
> назначения. Если возможно - киньте где почитать.

В справке, например.


Евгений Р.   (2008-07-24 12:05:00) [6]


> Плохиш ©   (24.07.08 11:21) [30]

TDBGrid - согласен, но не понимаю. Для доступа к Row работало даже при tCustomGrid.

BeginUpdate/EndUpdate - часто встречаю, но не понимаю их назначения. Если возможно - киньте где почитать. Но, к статьи и без них все работает.


Плохиш   (2008-07-24 11:21:00) [7]


> Евгений Р.   (24.07.08 02:11) [29]
> type tMyGrid=class(T CustomDbGrid);

Настойчиво советую убрать выделенное, т.к. нужен наследник TDBGrid-a, а не его брат :-)

PS. И куда делись BeginUpdate/EndUpdate?


Евгений Р.   (2008-07-24 02:11:00) [8]

Большое спасибо всем, особенно Плохишу.
Не все понял, но в азах разобрался. Последовал совету, не использовать доп.компонентов. Сделал так:

type tMyGrid=class(TCustomDbGrid);
procedure TfzvkJourn.RefreshData;
  var idfD:integer;
      OldActiveRecord:integer;
Begin
  idfD:=quZvkIdfD.AsInteger;
  OldActiveRecord:=tMyGrid(dbg).DataLink.ActiveRecord;
  ta.Commit;
  quZvk.Open;
  quZvk.Locate('idfD',variant(idfD),[loPartialKey]);

  quZvk.MoveBy(tMyGrid(dbg).RowCount-OldActiveRecord-2);

  quZvk.MoveBy(-(tMyGrid(dbg).RowCount-OldActiveRecord-2));
End;{RefreshData}


работает так, как я хотел. Мерцание есть, но с ним пока мирюсь.
интересно послушать критику


Petr V. Abramov   (2008-07-22 23:32:00) [9]

Удалено модератором


Игорь Шевченко   (2008-07-22 21:16:00) [10]


> уж если менять grid то на devexpress ExpressQuantumGrid
> и более не мучится


Самолет продается только в комплекте с авианосцем


Johnmen   (2008-07-22 17:40:00) [11]


> dolmat   (22.07.08 13:39) [25]
> уж если менять grid то на devexpress ExpressQuantumGrid
> и более не мучится

Вот так, по смешному чиху, увеличить ехешник на восемь метров...


dolmat   (2008-07-22 13:39:00) [12]

уж если менять grid то на devexpress ExpressQuantumGrid и более не мучится


Плохиш   (2008-07-22 12:18:00) [13]

Вообще-то в D7 TRxDBGrid скролится точно также как и нормальный...


Anatoly Podgoretsky   (2008-07-22 11:53:00) [14]

На наркотик сядет, потом постоянно будет по форумам бегать, дайте RX для ДельфиXXXX


MsGuns   (2008-07-22 11:49:00) [15]

>Германн ©   (22.07.08 01:17) [20]
>А в Д7 без TRxDBGrid и работать не стОит. Нормальный скролл в TDBGrid Борланд реализовал только в Д2005

Глупости.
Мне не "впадлу" (ИШ) написать 5 строчек кода (копи-пасте) в юните с гридами. Тащить же монстра RX ради скрола - все равно что не садиться за стол без жареного быка и ванны водки


Vlad Oshin   (2008-07-22 09:55:00) [16]

а если спозиционировать на 50й записи и послать 5раз нажатие клавиши курсор_вниз?


Германн   (2008-07-22 01:17:00) [17]


> MsGuns ©   (21.07.08 15:13) [17]
>
> >Плохиш ©   (20.07.08 23:32) [16]
> >Если я всё правильно понял, то на
> >type
> TMyDBGrid = class(TrxDBGrid)
>
> Замечательный совет ;)
>
> ЗЫ Вот зачем давать заведомо неработающий код ?
>

А в Д7 без TRxDBGrid и работать не стОит. Нормальный скролл в TDBGrid Борланд реализовал только в Д2005, если Джо не соврал. Я лично, его (нормальный скролл в TDBGrid) увидел только в BDS2006.


Игорь Шевченко   (2008-07-21 21:38:00) [18]

MsGuns ©   (21.07.08 15:13) [17]


> ЗЫ Вот зачем давать заведомо неработающий код ?


А тебе влом или впадлу дать заведомо работающий ?


Плохиш   (2008-07-21 17:19:00) [19]


> MsGuns ©   (21.07.08 15:13) [17]
> ЗЫ Вот зачем давать заведомо неработающий код ?

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


MsGuns   (2008-07-21 15:13:00) [20]

>Плохиш ©   (20.07.08 23:32) [16]
>Если я всё правильно понял, то на
>type
TMyDBGrid = class(TrxDBGrid)

Замечательный совет ;)

ЗЫ Вот зачем давать заведомо неработающий код ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо