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