Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.001 c
2-1456676881
Илья_666
2016-02-28 19:28
2018.03.18
Взаимодействие с компонентами


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


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


2-1459610574
chuxlo
2016-04-02 18:22
2018.03.18
Командная строка


2-1459026105
lewka
2016-03-27 00:01
2018.03.18
Протоколы буфера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский