Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Проверка кол-ва символов в DBGridEh


Автор: kulikoff 13.7.2006, 15:12
Подскажите, как реализовать возможность, чтоб если  пользователь ввел в ячейку DBGridEh необходимое кол-во символов (вернее, максимальное для этого поля БД), то чтоб курсор автоматически переходил в следующую ячейку? Я видел такое в нескольких прогах, но как реализовать - без понятия. 

Автор: kulikoff 14.7.2006, 09:51
Тут порылся, решил, что наиболле правильный способ - это писать обработчик OnKeyPress, который будет следить за кол-вом символов в Cell. Подскажите примером, как правильно его написать? К чему прикрутить Length? 

Автор: Frees 14.7.2006, 11:10
в OnKeyPress считай сколько символов введено если количество нажатии на кнопки больше длинны поля то меняй ячейку с фокусом на следущую и обнуляй счетчик  

Автор: kulikoff 14.7.2006, 11:18
А можно примерчик? Просто никогда ничего подобного не писал, напишите пример, плиз!!! 

Автор: Frees 14.7.2006, 11:20
Цитата(kulikoff @ 14.7.2006,  09:51)
Тут порылся, решил, что наиболле правильный способ - это писать обработчик OnKeyPress, который будет следить за кол-вом символов в Cell. Подскажите примером, как правильно его написать? К чему прикрутить Length?

Length и не нужен 

windows.GetWindowTextLength(windows.GetFocus)

сразу возвращает длинну введенных символов 

Автор: kulikoff 14.7.2006, 11:34
Спасибо, отлично работает. Подскажите ещё, плиз, как перевести фокус в следующую ячейку? 

Автор: Frees 14.7.2006, 11:59
переход на следущую ячейку  если текущая ячейка не последняя
 
Код

    if TDBGridEh(Sender).Columns.Count > TDBGridEh(Sender).Col then
        begin
            TDBGridEh(Sender).Col:=TDBGridEh(Sender).Col+1;
        end;
 

Автор: kulikoff 14.7.2006, 14:36
Всё работает, когда ввожу в первый столбец 6 символов - автоматом переходит в следующую, но в первой то, что набирал не остается... Как написать, чтоб то, что вводил оставалось в ячейке? 

Автор: Frees 14.7.2006, 15:24
надо как то по другому текущии столбец значит менять 
почитай доку на ехи может че и найдеш, может там то что те надо уже сделано 

Автор: kulikoff 14.7.2006, 16:04
а можно ссылку на маны по ним? А то сколько не искал - ничего путнего не нашел... 

Автор: Akella 14.7.2006, 16:41
Цитата(kulikoff @  14.7.2006,  14:36 Найти цитируемый пост)
Всё работает, когда ввожу в первый столбец 6 символов - автоматом переходит в следующую, но в первой то, что набирал не остается... Как написать, чтоб то, что вводил оставалось в ячейке? 

посмотри в свойсвах грида "CancelOnExit" 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)