Форум: "Начинающим";
Текущий архив: 2018.03.18;
Скачать: [xml.tar.bz2];
ВнизРедактирование ячейки DBGridEh только кнопкой Найти похожие ветки
← →
TheEd (2016-03-28 12:57) [0]Добрый день, мастера!
Что-то голову словам, есть DBGridEh, одно из полей (числовое) надо редактировать только кнопкой. Так вот - кнопка есть, работает, занимает всю площадь поля, но если войти на ячейку с клавы и начать набирать текст, то ячейка переходит в режим текстового редактирования.
Назначение свойства колонке TextEditing = false приводит к тому, что ячейка становится нередактируемой (т.е. EditButton не отображается).
Есть ли простой способ запретить текстовое редактирование, но при этом чтобы эдитбаттон показывался при клике на ячейке?
← →
Smile © (2016-03-28 16:17) [1]> одно из полей (числовое) надо редактировать только кнопкой
> но если войти на ячейку с клавы и начать набирать текст
Как это понимать?
← →
TheEd (2016-03-29 08:59) [2]
> > одно из полей (числовое) надо редактировать только кнопкой
> > но если войти на ячейку с клавы и начать набирать текст
> Как это понимать?
становимся в соседнюю ячейку (напр., правее), стрелками (<-) перемещаемся на ту, в которой кнопка нарисована, начинаем набирать цифры, грид переходит в состояние редактирования. При этом под прорисованной кнопкой происходит ввод чисел, которые частично перерисовывают кнопку. Естественно, как только пост пройдёт, кнопка затирает
число и прорисовывает себя поверх.
Однако конечные юзеры не понимают что у них под кнопками творится, входят в ступор, зовут админа :()
← →
sniknik © (2016-03-29 10:54) [3]> начинаем набирать цифры, грид переходит в состояние редактирования.
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-30 12:27) [4]
> правильно делают, только лучше программиста, логика грида
> показывать данные, а не кнопки содержать. ИМХО, лучше бы
> исправить... например таки дать бедным юзерам править в
> гриде, раз уж пытаются (и это проще чем жать кнопку и только
> потом редактировать, сам попробуй), а вместо кнопки, что
> там у тебя делается (карточка товара на редактирование показывается)
> сделать по двойному клику. так оно будет хотя бы не забивать
> стандартное, а дополнять.
>
>
В целом, согласен - это есть общая логика ГУИ большинства распространённых АРМов. В моём случае кнопка отражает зубную формулу (число вида XY, где Х - 1..4, Y - 1..8), однако изначально в базе для данного поля был создан домен 1..32, что немного не правильно. В итоге, пока в программе где нужно используются преобразования "на лету". В частности, для обсуждаемого случая используются распространённые в стоматологии графические отображения зубной формулы а для редактирования вызывается графический редактор с изображением зубиков... Всё для юзверей :)
На будущее надо базу поправить полюбому.
← →
Inovet © (2016-03-30 15:20) [5]> [4] TheEd (30.03.16 12:27)
Есть правильные пути:
Вычисляемое поле - вывод картинки по вычисляемому полю, GetText()/SetText() - ввод и вывод в нужном формате с хранением в этом домене, Лукап поле. Комбинации этого.
← →
Юрий Зотов © (2016-03-31 11:14) [6]> одно из полей (числовое) надо редактировать только кнопкой
А как можно КНОПКОЙ редактировать ЧИСЛО ?
← →
Германн © (2016-04-03 01:15) [7]
> Юрий Зотов © (31.03.16 11:14) [6]
>
> > одно из полей (числовое) надо редактировать только кнопкой
>
> А как можно КНОПКОЙ редактировать ЧИСЛО ?
TCombobox со стилем csDropDоwnList.
← →
Юрий Зотов © (2016-04-03 01:24) [8]> Германн © (03.04.16 01:15) [7]
Это не кнопка.
← →
Германн © (2016-04-03 02:06) [9]
> Юрий Зотов © (03.04.16 01:24) [8]
>
> > Германн © (03.04.16 01:15) [7]
>
> Это не кнопка.
>
По опыту общения с новичками на киберфоруме для них это именно кнопка.
← →
Германн © (2016-04-03 02:23) [10]
> Юрий Зотов © (03.04.16 01:24) [8]
Юра, ты гораздо лучше меня знаешь что такое InplaceEditor. В навороченном гриде DBGridEh таких эдиторов море. Возможно и для числовых полей.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2018.03.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c