Grid | |
---|---|
M.Crazy Автор |
Есть объект Grid. Надо при нажатии на какой-либо Header сортировать по данному столбцу. Проблема в том, что неизвестно, сколько будет столбцов, поэтому в построителе нельзя указать ColumnCount. Я не нашел у Gridа события, реагирующего на нажатие на Header.
|
RE: Grid | |
---|---|
Игорь Сообщений: 64 Дата регистрации: 03.09.2000 |
Я думаю, что вам нужно отслеживать событие нажания мыши на Header, а потом смотреть к какому столбцу он привязан и делать анализ...
|
RE: Grid | |
---|---|
M.Crazy Автор |
Проблема в том, что Header создается во время выполнения программы и количество столбцов неизвестно. Как в таком случае отслеживать нажатие на Header?
|
RE: Grid | |
---|---|
ВладимирМ Сообщений: 14095 Откуда: Москва Дата регистрации: 02.09.2000 |
Не совсем ясно, почему ты не можешь сделать один метод с параметром в форме или в Gride, а при создании каждого Header на его метод Click повесить вызов этого метода с параметром равным номеру соответствующего столбца.
Правда я сам не пробовал и не знаю, как назначить метод, если колонка создается программно. |
RE: Grid | |
---|---|
M.Crazy Автор |
Как раз проблема (причем сталкивался я с ней и по другому поводу) - КАК ПРОГРАММНО НАЗНАЧИТЬ МЕТОД ОБЪЕКТУ в фоксе (конечно, объект создается сам - я его не создаю, а просто хочу заменить его стандартное событие)? У меня так и не получилось...
|
RE: Grid | |
---|---|
M.Crazy Автор |
Неужели никто не знает, как на этапе выполнения менять код события объекта (или переназначать собыия)?!
|
RE: Grid | |
---|---|
Sergio |
Придется определять свои классы для TextBox ( или чего-то еще ) и Header.
В Init Grid вручную добавлять в Колумны и Хедеры свои классы, при этом в описании класса для Хедера описывается реакция на Клик. Работает железно. При этом, если по ходу программы подменяется файл для Грида, то иначе вообще ничего не выйдет. Надеюсь, правильно понял проблему. Успехов. |
RE: Grid | |
---|---|
Sergey Titow Сообщений: 2242 Дата регистрации: 12.09.2000 |
Если юзается VFP6 можно попробовать так (сам не пробовал, только мысль):
поверх грида на уровне хедеров расположить пустой label с caption = "" autosize = .f. top = grid.top left = grid.left width = grid.width height = grid.HeaderHeight и ресайзить вместе с гридом В label.MouseDown для определения колонки использовать grid.gridhittest(...) |
RE: Grid | |
---|---|
ГВК Сообщений: 98 Дата регистрации: 03.10.2000 |
Именно так я и делал. Все отлично работает + получаешь возможность писать многострочный текст в HEDERe
|
RE: Grid | |
---|---|
M.Crazy Автор |
А как же визуальные эффекты при перемещении колонок, увеличении их размера?
|
© 2000-2024 Fox Club  |