Конференция "Базы" » Запрет редактирования записей [D7, MSSQL]
 
  • evgen2301 (03.11.10 10:47) [0]
    Ситуация. Стандартный 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 выпадает и устанавливает фокус в ячейке. Как в данном случае запретить ввод символов и оставить только возможность выбора из списка?
  • Медвежонок Пятачок © (03.11.10 10:58) [1]
    чума.
    тыцнули на запрещенное поле, убралось редактирование.
    уходим из ячейки, но не мышкой, а стрелкой. редактирование появляется.
    а вышли мы стрелкой вверх/вниз, не поменяв поле, которое не должно редактироваться.
  • stas © (03.11.10 16:47) [2]
    А почему нельзя установить у всех колонок ReadOnly:=True кроме одной?
  • evgen2301 (07.11.10 21:33) [3]
    Вопрос в не установке ЧИСТОГО запрета редактирования поля.
    А в том что-бы в ячейку не попадал курсор ввода символов.
    Значение в данном поле устанавливается из PickList (TStrings), а он в моей проге имеет фиксированный набор возможных значений.
    Пользователь кликает - появляется список, чуток смещает курсор, кликает ещё раз и... вот он курсор в ячейке -> вводите что хотите.
    А пример, это так один из десяти вариантов которые я испробовал.
  • evgen2301 (07.11.10 21:42) [4]
    Да, чуть не забыл, в базу сохраняется только значение из списка, что-бы пользователь не вводил - проверено. Но требования заказчика к СПО таковы:
    - дружественный интерфейс;
    - никаких двусмысленностей для пользователя.
    Вносить в руководство оператора подобную мелочь... как бы стыдно.
    Причём пользователи, по моему опыту, все равно РО не читают, просто шлют мне на мыло свои замечания (как и в этот раз собственно).
  • Sergey13 © (08.11.10 10:24) [5]
    ИМХО в данном случае было бы правильнее не пиклист использовать, а справочник и лукап поле на него.
 
Конференция "Базы" » Запрет редактирования записей [D7, MSSQL]
Есть новые Нет новых   [134431   +15][b:0][p:0]