|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Господа! Подскажите, пожалуйста, дилетанту, как узнать номер колонки Grid'а по клику по Header'у колонки. Есть форма, на ней Grid. Количество полей отображаемой таблицы может меняться. В методе Init формы определяется список отображаемых полей. Соответственно, настраивается Grid: прописывается количество колонок, привязываются источники данных и т.д. Для сортировки по полю таблицы нужно выяснить по Header'у какой колонки кликнули. Что-то не смог ни сообразить, ни найти как это сделать. Помогите, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 09:53 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
В хэдере ссылка на его Column это Код: sql 1.
этого достаточно, но можно и номер получить Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 10:03 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Если твой код где-то снаружи выполняется, есть еще Код: sql 1.
Но сначала надо проверять что он есть, а потом использовать Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 10:12 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Dima TВ хэдере ссылка на его Column это Код: sql 1.
этого достаточно, но можно и номер получить Код: sql 1.
Небольшое дополнение. ColumnOrder показывает не ссылку, и не номер, а порядок. Потому, вычислить конкретную колонку по нему, не верно. Юзер может переставить местами колонки, и все полетит. This.Parent.... самое правильное) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 11:01 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
deleteant, Не прочитал толком вопрос) Как подсказывал Dima T вам видимо достаточно Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 11:05 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Спасибо за скорые ответы! Как я понимаю, код field=this.parent.ControlSource надо размещать в обработчик события Click Header'а. Но. Форма создана конструктором. Количество полей прописать не могу. Изначально свойство Grid'а ColumnCount установлено в -1. Прописать необходимый код в конструкторе не могу. Количество полей устанавливается в событии Init формы. Вопрос. Как разместить код в обработчик события Click Header'а программно? Пробовал применить BINDEVENT(thisform.grid1.Columns(i).Header1,'click',thisform,'myindex') Естественно, не работает. Помогите, где туплю? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 11:45 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
deleteantВопрос. Как разместить код в обработчик события Click Header'а программно? Grid.ActiveColumn не пробовал использовать? 20349668 Заглянул как у меня это порешано, оказалось по другому. Уже не помню почему так, но работает стабильно. У меня так прописано MyGrid.Init() Код: sql 1. 2. 3. 4. 5. 6.
MyGrid.HeaderRightClick() Код: sql 1. 2. 3.
MyGrid.GetMouseObject() Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 12:16 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Спасибо, буду разбираться. Пытался привязаться к активной колонке. Ситуация с ActiveColumn следующая. Активна первая ячейка первой колонки. Кликаю, к примеру, по Header'у 7-й колонки. Активной остаётся первая ячейка первой колонки, и сортировка, соответственно, выполняется для первой колонки. Если предварительно активировать нужную ячейку и кликнуть по соответствующему ей Header'у, все нормально срабатывает. Но это ж неудобно для пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 12:22 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Смотри мой GetMouseObject(), остальное, как понял, у тебя уже написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 12:31 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Спасибо, изучил новую функцию. Теперь осталось выяснить, как к Grid'у метод добавить. Полагаю, создания своего класса для Grid не избежать? В конструкторе можно добавить метод только к форме? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 13:28 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
deleteantСпасибо, изучил новую функцию. Теперь осталось выяснить, как к Grid'у метод добавить. Полагаю, создания своего класса для Grid не избежать? В конструкторе можно добавить метод только к форме? Не обязательно его к гриду добавлять. Добавь к форме и вызывай ThisForm.GetMouseObject() Я свой класс-обертку использую, поэтому туда добавил. Можно вообще в процедуры добавить или сделать GetMouseObject.prg и тогда вызывать Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 13:47 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Спасибо, буду пробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 13:54 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
GetMouseObject('Header') возвращает .F. Думаю, связано с тем, что вызывается не с Grid'а, а с формы. Похожий результат был, когда с подсказки ВладимираМ ставил опыты с sys(1270). Тот же результат -- не видел объекта под указателем мыши. Или я неправильно понимаю суть происходящего или что-то неправильно делаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 14:25 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
deleteantGetMouseObject('Header') возвращает .F. Думаю, связано с тем, что вызывается не с Grid'а, а с формы. Похожий результат был, когда с подсказки ВладимираМ ставил опыты с sys(1270). Тот же результат -- не видел объекта под указателем мыши. Или я неправильно понимаю суть происходящего или что-то неправильно делаю. GetMouseObject() основан на AMOUSEOBJ() Он никак не привязан к месту вызова. Смотри что AMOUSEOBJ() возвращает. Может у тебя грид еще в каком-то контейнере, например на PageFrame. Тогда это тоже надо учесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 14:39 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Можешь простой пример сделать (проект из одной формы с гридом) и сюда выложить, посмотрю. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 14:48 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Grid лежит на форме, страниц нет. AMOUSEOBJ возвращает пустой массив, все элементы .F. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 16:04 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Dima TМожешь простой пример сделать (проект из одной формы с гридом) и сюда выложить, посмотрю. Спасибо, общую идею понял. Буду разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2017, 09:03 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
deleteantGetMouseObject('Header') возвращает .F. Думаю, связано с тем, что вызывается не с Grid'а, а с формы. Затестил, все работает. GetMouseObject() добавил как метод формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2017, 12:45 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
deleteantDima TМожешь простой пример сделать (проект из одной формы с гридом) и сюда выложить, посмотрю. Спасибо, общую идею понял. Буду разбираться. Тебе лень пример сделать, я мне, чтобы проверить, пришлось делать это за тебя. Сделал бы пример, я бы тебе его исправленный вернул. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2017, 12:48 |
|
Как узнать номер колонки Grid'а?
|
|||
---|---|---|---|
#18+
Dima TТебе лень пример сделать, я мне, чтобы проверить, пришлось делать это за тебя. Сделал бы пример, я бы тебе его исправленный вернул. Извиняюсь, что неоправданно напрягаю. Спасибо большое за участие. Тут непоняток и проблем воз и маленькая тележка. Озвученная -- только одна из них. Думаю, где-то кривизна закралась и плодит чудеса. Не хочется грузить практическими проблемами своих проектов. Мне бы теоретическую подсказку. Ее получил и, бонусом, работающий код, как иллюстрацию. За что большое спасибо. Все-таки, поковыряюсь сам. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2017, 14:10 |
|
|
start [/forum/topic.php?fid=41&fpage=15&tid=1581970]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 136ms |
0 / 0 |