![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрет редактирования записей [D7, MSSQL]
evgen2301 © (2010-11-03 10:47:00)Ситуация. Стандартный DBGrid с набором данных.
Обработчики:
procedure TfrObject.dbgObjectCellClick(Column: TColumn);
begin
if Column.FieldName <> 'моё поле'
then dbgObject.Options:=[dgTitles,dgIndicator,dgColLines,dgRowLines,dgTabs,dgConfirmD elete,dgCancelOnExit]; // запрет редактирования всех полей кроме одного
end;
procedure TfrObject.dbgObjectColExit(Sender: TObject);
begin
dbgObject.Options := [dgEditing,dgTitles,dgIndicator,dgColLines,dgRowLines,dgTabs,dgConfirmDelete,dgC ancelOnExit]; // разрешаем редактировать
end;
Вопрос: поле которое можно редактировать имеет PickList из фикс. значений. При двойном нажатии PickList выпадает и устанавливает фокус в ячейке. Как в данном случае запретить ввод символов и оставить только возможность выбора из списка?
Sergey13 (2010-11-08 10:24:00) [1]ИМХО в данном случае было бы правильнее не пиклист использовать, а справочник и лукап поле на него.
evgen2301 (2010-11-07 21:42:00) [2]Да, чуть не забыл, в базу сохраняется только значение из списка, что-бы пользователь не вводил - проверено. Но требования заказчика к СПО таковы:
- дружественный интерфейс;
- никаких двусмысленностей для пользователя.
Вносить в руководство оператора подобную мелочь... как бы стыдно.
Причём пользователи, по моему опыту, все равно РО не читают, просто шлют мне на мыло свои замечания (как и в этот раз собственно).
evgen2301 (2010-11-07 21:33:00) [3]Вопрос в не установке ЧИСТОГО запрета редактирования поля.
А в том что-бы в ячейку не попадал курсор ввода символов.
Значение в данном поле устанавливается из PickList (TStrings), а он в моей проге имеет фиксированный набор возможных значений.
Пользователь кликает - появляется список, чуток смещает курсор, кликает ещё раз и... вот он курсор в ячейке -> вводите что хотите.
А пример, это так один из десяти вариантов которые я испробовал.
stas (2010-11-03 16:47:00) [4]А почему нельзя установить у всех колонок ReadOnly:=True кроме одной?
Медвежонок Пятачок (2010-11-03 10:58:00) [5]чума.
тыцнули на запрещенное поле, убралось редактирование.
уходим из ячейки, но не мышкой, а стрелкой. редактирование появляется.
а вышли мы стрелкой вверх/вниз, не поменяв поле, которое не должно редактироваться.