![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Позиционирование на записи в 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]Пока правительство Российской Федерации не рассекретит данные об ошибке она будет жить.