Grid - как определить, что происходит ввод ( in EditMode)
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Янв 19, 2015 08:43  Grid - как определить, что происходит ввод ( in EditMode) |
|
Полезность: Нет оценки
|
Здравствуйте.
Не хватает свойства Грида EditMode (это в терминах Делфи).
Т.е. когда в ячейку Грида начали вводить символы - Грид переходит в состояние 'редактирования' - даже отображает в 0 столбце картинку (типа, редактируете ячейку).
Вот как бы добраться до этого свойства-картинки ?
Свойство Grid1_BeforeEdit(row, col, cancel), к сожалению, происходит :
- И в момент позиционирования на ячейке (т.е. ячейка только фокус ввода получила, а в состояние редактирования еще НЕ перешла)
- И в момент начала редактирования
Т.е. по одному только возникновению события _BeforeEdit невозможно определить переход в состояние редактирования.
есть решение?
PS: народ с праздников не проснулся чтоль - тихо в форуме.
Или эти гриды никто не пользует? |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Янв 19, 2015 09:16  Re: Grid - как определить, что происходит ввод ( in EditMode |
|
Полезность: Нет оценки
|
Damir пишет: |
есть решение?
|
Т.е. вот есть свойство IsAppendMode...
По аналогии, хотелось бы свойство IsEditorMode (чтобы анализировать его в событии _BeforeEdit)[/i] |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Пн Янв 19, 2015 10:08  Re: Grid - как определить, что происходит ввод ( in EditMode |
|
Полезность: Нет оценки
|
Damir пишет: | есть решение? |
Решение есть, но оно тебе не понравится.
Надо завести копию грида с данными.
И сравнивать - если данные в соответствующей ячейке поменялись - мы редактируем.
Ну как-то так.
А насчёт заказать удобный кодерский интерфейс для красивых ЭФ - я уже давно отчаялся. В отделе работ на весь текущий год. |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Янв 19, 2015 11:34  Re: Grid - как определить, что происходит ввод ( in EditMode |
|
Полезность: Нет оценки
|
Random пишет: |
Надо завести копию грида с данными.
И сравнивать - если данные в соответствующей ячейке поменялись - мы редактируем.
|
Это не поможет.
По двойному клику мышкой ячейка переходит в состояние редактирования (и по F2 тоже) - можно нажать ENTER без редактирования (при этом значение в ячейке НЕ мопенялось)
Кстати, делать копию грида не обязательно - есть свойства Grid.EditText и Grid.Text - можно их анализировать. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Пн Янв 19, 2015 12:00  Re: Grid - как определить, что происходит ввод ( in EditMode |
|
Полезность: Нет оценки
|
Ладно, уговорил.
Мне это событие было без надобности, поэтому могу чего-то не знать.
Кстати, может и тебе без надобности?
Что за задача-то? |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Янв 19, 2015 12:19  Re: Grid - как определить, что происходит ввод ( in EditMode |
|
Полезность: Нет оценки
|
Random пишет: | Что за задача-то? |
Задача мне поставлена 'влоб':
в операции заменить грид из контролов Edit на контрол Grid, ибо красивше.
PS:от ЦФТ-шных Гридов плакать хочется. |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Янв 19, 2015 15:05   |
|
Полезность: Нет оценки
|
Вдруг кто-то пухнуть над редактированием в гриде будет - выкладываю
'AS IS' - претензии не принимаются
Код: | dim GoNext
Public Sub GridServices_BeforeEdit(row, col, cancel)
if GoNext then
GoNext = false
call GoNextCell4Edit(GridServices) 'Процедура определения следующей редактируемой ячейки грида
end if
End Sub
Public Sub GridServices_ValidateEdit(row, col, cancel)
GoNext = true
End Sub
Public Sub GridServices_OnKeyDown(KeyCode, Shift)
if KeyCode = 9 and Shift = 0 then ' Табуляцию воспринимаем как ENTER
KeyCode = 13
end if
if KeyCode = 13 and Shift = 0 then
call GoNextCell4Edit(GridServices) 'Процедура определения следующей редактируемой ячейки грида
KeyCode = 0
end if
End Sub
|
|
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|