CftClub.ru
Клуб специалистов ЦФТ-Банк

Grid - как определить, что происходит ввод ( in EditMode)

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
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
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru