Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
13.11.2008, 14:09
|
|||
---|---|---|---|
|
|||
Поиск по grid |
|||
#18+
У меня на форме есть combobox, grid (данные в которым берутся из localview с параметром) и edit. Как сделать так, чтоб при вводе строки в edit в гриде курсор переходил на эту ячейку? Просто получается так, что когда я выбираю select'ом номер нужной строки и пишу thisform.grdrasp.ActivateCell(st,1) thisform.grdRasp.SetFocus то курсор ставится на последнюю строку текущей страницы в гриде. Т.е. насколько я понимаю надо как-то держать в памяти (постоянно) номер текущей ячейки и т.п. может кто подскажет как сделать этот поиск? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.11.2008, 14:16
|
|||
---|---|---|---|
|
|||
Поиск по grid |
|||
#18+
nastasjal, во-первых, забудьте термин "ячейка" по отношения к гриду, во-вторых запомните раз и навсегда, что в гриде ничего нет и ничего Вы в нем не найдете. Искать можно и нужно только в таблице/курсоре, содержимое которого показывает грид. При нахождении нужной записи указатель в гриде встанет автоматически на нужную запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.11.2008, 14:25
|
|||
---|---|---|---|
|
|||
Поиск по grid |
|||
#18+
Так а как написать, я не пойму? Я пишу так Код: plaintext 1. 2.
Только почему-то если полученный в запросе номер больше чем число строк отображаемых на странице грида то курсор ставится на последнюю строку на отображаемой странице. Т.е. по идее еще надо делать doscroll. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.11.2008, 14:27
|
|||
---|---|---|---|
Поиск по grid |
|||
#18+
Grid - это окно, через которое вы смотрите на таблицу. Вы, конечно, можете ткнуть пальцем в окно, но это не означает, что вы нашли ячейку таблицы. В Grid, максимум, что вы можете сделать - это определить номер строки и столбца в видимой части Grid. Т.е. номер столбца считая от правой границы Grid и номер строки, считая от верхней границы Grid. Именно эти координаты и используются в свойствах и методах возвращающих активную строку или столбец. В частности Grid.ActivateCell(). Но, разумеется, видимая область - это не все строки и столбцы таблицы. Это просто то, что видно в данный момент. Как следствие, если вы пытаетесь передать в метод Grid.ActivateCell() номер строки больший, чем видно в Grid, то и попадаете в самый конец. Чтобы перейти на нужную запись таблицы предпринимать какие-то действия в Grid (на окне) - бессмысленно. Необходимо сделать этот переход в самой таблице. А уж в окне (в Grid) найденная запись отобразится автоматически. Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.11.2008, 14:30
|
|||
---|---|---|---|
|
|||
Поиск по grid |
|||
#18+
nastasjalТак а как написать, я не пойму? Я пишу так Код: plaintext 1. 2.
Только почему-то если полученный в запросе номер больше чем число строк отображаемых на странице грида то курсор ставится на последнюю строку на отображаемой странице. Т.е. по идее еще надо делать doscroll. Еще раз: ищут в таблице, а не в гриде. При этом указатель записи надо поставить на найденную запись. Забудьте про ActiveCell(). "nj совершенно из другой оперы. Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&mobile=1&tid=1587075]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 337ms |
total: | 490ms |
0 / 0 |