![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редактирование ячейки DBGridEh только кнопкой
TheEd © (2016-03-28 12:57:00)Добрый день, мастера!
Что-то голову словам, есть DBGridEh, одно из полей (числовое) надо редактировать только кнопкой. Так вот - кнопка есть, работает, занимает всю площадь поля, но если войти на ячейку с клавы и начать набирать текст, то ячейка переходит в режим текстового редактирования.
Назначение свойства колонке TextEditing = false приводит к тому, что ячейка становится нередактируемой (т.е. EditButton не отображается).
Есть ли простой способ запретить текстовое редактирование, но при этом чтобы эдитбаттон показывался при клике на ячейке?
Германн (2016-04-03 02:23:00) [1]
> Юрий Зотов © (03.04.16 01:24) [8]
Юра, ты гораздо лучше меня знаешь что такое InplaceEditor. В навороченном гриде DBGridEh таких эдиторов море. Возможно и для числовых полей.
Германн (2016-04-03 02:06:00) [2]
> Юрий Зотов © (03.04.16 01:24) [8]
>
> > Германн © (03.04.16 01:15) [7]
>
> Это не кнопка.
>
По опыту общения с новичками на киберфоруме для них это именно кнопка.
Юрий Зотов (2016-04-03 01:24:00) [3]> Германн © (03.04.16 01:15) [7]
Это не кнопка.
Германн (2016-04-03 01:15:00) [4]
> Юрий Зотов © (31.03.16 11:14) [6]
>
> > одно из полей (числовое) надо редактировать только кнопкой
>
> А как можно КНОПКОЙ редактировать ЧИСЛО ?
TCombobox со стилем csDropDоwnList.
Юрий Зотов (2016-03-31 11:14:00) [5]> одно из полей (числовое) надо редактировать только кнопкой
А как можно КНОПКОЙ редактировать ЧИСЛО ?
Inovet (2016-03-30 15:20:00) [6]> [4] TheEd (30.03.16 12:27)
Есть правильные пути:
Вычисляемое поле - вывод картинки по вычисляемому полю, GetText()/SetText() - ввод и вывод в нужном формате с хранением в этом домене, Лукап поле. Комбинации этого.
TheEd (2016-03-30 12:27:00) [7]
> правильно делают, только лучше программиста, логика грида
> показывать данные, а не кнопки содержать. ИМХО, лучше бы
> исправить... например таки дать бедным юзерам править в
> гриде, раз уж пытаются (и это проще чем жать кнопку и только
> потом редактировать, сам попробуй), а вместо кнопки, что
> там у тебя делается (карточка товара на редактирование показывается)
> сделать по двойному клику. так оно будет хотя бы не забивать
> стандартное, а дополнять.
>
>
В целом, согласен - это есть общая логика ГУИ большинства распространённых АРМов. В моём случае кнопка отражает зубную формулу (число вида XY, где Х - 1..4, Y - 1..8), однако изначально в базе для данного поля был создан домен 1..32, что немного не правильно. В итоге, пока в программе где нужно используются преобразования "на лету". В частности, для обсуждаемого случая используются распространённые в стоматологии графические отображения зубной формулы а для редактирования вызывается графический редактор с изображением зубиков... Всё для юзверей :)
На будущее надо базу поправить полюбому.
sniknik (2016-03-29 10:54:00) [8]> начинаем набирать цифры, грид переходит в состояние редактирования.
type
TMyDBGrid = class(TDBGrid);
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
with TMyDBGrid(Sender) do
if SelectedField.FieldName = 'Name' then begin
Key:= #0;
if Assigned(InplaceEditor) then
InplaceEditor.Hide;
end;
end;
> зовут админа :()
правильно делают, только лучше программиста, логика грида показывать данные, а не кнопки содержать. ИМХО, лучше бы исправить... например таки дать бедным юзерам править в гриде, раз уж пытаются (и это проще чем жать кнопку и только потом редактировать, сам попробуй), а вместо кнопки, что там у тебя делается (карточка товара на редактирование показывается) сделать по двойному клику. так оно будет хотя бы не забивать стандартное, а дополнять.
TheEd (2016-03-29 08:59:00) [9]
> > одно из полей (числовое) надо редактировать только кнопкой
> > но если войти на ячейку с клавы и начать набирать текст
> Как это понимать?
становимся в соседнюю ячейку (напр., правее), стрелками (<-) перемещаемся на ту, в которой кнопка нарисована, начинаем набирать цифры, грид переходит в состояние редактирования. При этом под прорисованной кнопкой происходит ввод чисел, которые частично перерисовывают кнопку. Естественно, как только пост пройдёт, кнопка затирает
число и прорисовывает себя поверх.
Однако конечные юзеры не понимают что у них под кнопками творится, входят в ступор, зовут админа :()
Smile (2016-03-28 16:17:00) [10]> одно из полей (числовое) надо редактировать только кнопкой
> но если войти на ячейку с клавыи начать набирать текст
Как это понимать?