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

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

Позиционирование на записи в cxGrid


Гость ©   (2009-04-30 13:16:00) 


with ProductsGridView1.DataController do
 begin
// Добавляю новую запись.
   RecordCount := RecordCount + 1;
   SetValue(RecordCount-1,1,Bcode);
   SetValue(RecordCount-1,2,Desc);
   SetValue(RecordCount-1,3,GridPosition);
   SetValue(RecordCount-1,4,Id);
// Хочу позиционироваться на ней
  FocusedRecordIndex := RecordCount - 1; // Единица на рез-т не влияет.
  //ProductsGridView1.ViewData.Records[RecordCount - 1].Selected := True;

 end;

В рез-те кода выделенной становиться не добавленная запись, а предыдущая. На закоментированной строке так просто вываливается ошибка.
Подскажите, где я что делаю не так?


sniknik   (2009-05-04 09:46:00) [1]

> А вы считаете, что достаточно купить и все заработает??
не обязательно, но... при покупке обычно дают исходники, т.е. можно будет править самому если что. + при покупке становится доступной поддержка куда можно будет обратится с вопросом "что за нафиг?" и тебя ответят...

> И более того, сам грид не активен
а разве должен быть? активность определяется пользователем, при выборе/переходе между компонентами, ну или программистом, когда он делает этот выбор за него. ну во всяком случае у обычных так.

> а исходя из хелпа достаточно вот этой строки
> FocusedRecordIndex := RecordCount - 1;
> для позиционирования.
индексируются записи с 0? что будете если здесь убрать 1-цу? что будет если устанавливать 1-ю, 2-ю... записи? в гриде есть "футер"? типа с суммированными результатами который как бы не считается записью списка, но отображается (обычно) как раз последним.

а вообще по логике нестандартного компонента нужно обращаться к его автору. ну и к мануалу сначала.


Гость   (2009-05-04 08:21:00) [2]


> Кролик-Фролик

А вы считаете, что достаточно купить и все заработает??


> sniknik ©

К сожалению, добавленная запись на становиться активной. И более того, сам грид не активен, если программно установить на него фокус, то как раз предпоследняя запись и будет активной.
а исходя из хелпа достаточно вот этой строки
FocusedRecordIndex := RecordCount - 1;
для позиционирования.


Кролик-Фролик   (2009-05-01 01:40:00) [3]


> Германн ©   (01.05.09 01:24) [5]

у вас есть подозрения, что грид от ДивЕкспресс принципиально отличен от других?
или вы вы считаете, что достаточно скачать (своровать) и всё само собой наладится?


sniknik   (2009-05-01 01:32:00) [4]

> P.S. Я сей компонент не знаю. говорю только исходя из жизненного опыта.
аналогично не знаю, но опыт подсказывает, что добавленная запись сама становится текущей, без всяких манипуляций. как и во всех подобных компонентах. а если не становится... то виноваты вот эти самые манипуляции. либо показанные либо те что "за кадром".


Германн   (2009-05-01 01:24:00) [5]


> Кролик-Фролик   (01.05.09 00:47) [4]

"Ворованность" тут не при чём. Имхо. Как, в прочем, и "базовые основы".
Просто не любит народ читать документацию и справку.

P.S. Я сей компонент не знаю. говорю только исходя из жизненного опыта.


Кролик-Фролик   (2009-05-01 00:47:00) [6]

а всё от того, что скорее бы попользовать ворованные компоненты, абсолютно не понимая базовых основ


clickmaker   (2009-04-30 17:50:00) [7]

> ProductsGridView1.ViewData.Records

у этого count есть? чему равен?


Гость   (2009-04-30 14:18:00) [8]

Дело не в ошибке, а в том, что курсорчик позиционируется не на последней только что добавленной записи, а на предпоследней!!
Ошибка, если угодно:
Project Project1.exe raised exception class EListError with message 'List index out of bounds (0)'.
и причины мне ее не совсем понятны, одну то запись я перед ней добавляю.


Palladin   (2009-04-30 13:48:00) [9]

Пока правительство Российской Федерации не рассекретит данные об ошибке она будет жить.


Наверх

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