Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.03.18;
Скачать: CL | DM;

Вниз

Редактирование ячейки 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.004 c
8-1243716518
v1ctar
2009-05-31 00:48
2018.03.18
Обработка изображений. Сегментация.


2-1459159042
TheEd
2016-03-28 12:57
2018.03.18
Редактирование ячейки DBGridEh только кнопкой


6-1263673971
zSvetik
2010-01-16 23:32
2018.03.18
Видеотрансляция по сети


2-1459500919
ford
2016-04-01 11:55
2018.03.18
TWebBrowser скролинг


15-1471037402
Юрий
2016-08-13 00:30
2018.03.18
С днем рождения ! 13 августа 2016 суббота