TRVTableItemInfo.OnCellEditing

<< Нажмите, чтобы показать Содержание >>

TRVTableItemInfo.OnCellEditing

Вызывается перед началом редактирования ячейки таблицы и позволяет отменить его.

type

  TRVCellEditingEvent = procedure (Sender: TRVTableItemInfo;

    Row, Col : Integer; Automatic: Boolean;

    var AllowEdit: Boolean) of object;

Входные параметры:

Событие происходит, когда редактор пытается изменить содержимое ячейки Sender.Cells[Row, Col].

Если Automatic=True, то вызов произошёл не при попытке начать редактировать ячейку, а при выполнении операцией над группой ячеек (очистка содержимого, применение стиля и т.п.)

Выходные параметры:

Установите AllowEdit в False, чтобы запретить эту операцию.

 

Пример:

// Это обработчик OnCellEditing всех таблиц

procedure TMyForm.DoCellEditing(Sender: TRVTableItemInfo;

  Row, Col: Integer; Automatic: Boolean; var AllowEdit: Boolean);

begin

  // Запрещает редактирование всех ячеек первой строки

  if Row=0 then

    AllowEdit := False;

end;

Поскольку таблицы не являются компонентами, их события нельзя назначать во время проектирования в Инспекторе объектов. События необходимо назначать программно при создании таблицы. События не сохраняются в файлах RVF, поэтому требуется переназначать их после загрузки таблицы из файла. Лучшее место для этого – обработчик события TRichView.OnItemAction.

// MyRichViewEdit.OnItemAction. Присваивает DoCellEditing событиям

// OnCellEditing всех таблиц, вставляемых в MyRichViewEdit.

// (происходит когда таблица вставляется методами

// AddItem или InsertItem, или загружается из файла)

procedure TMyForm.MyRichViewEditItemAction(Sender: TCustomRichView;

  ItemAction: TRVItemAction; Item: TCustomRVItemInfo;

  var Text: TRVUnicodeString; RVData: TCustomRVData);

begin

  if (Item.StyleNo = rvsTable) and (ItemAction = rviaInserting) then

    TRVTableItemInfo(Item).OnCellEditing := DoCellEditing;

end;

 

См. также:

TParaInfo.Options (rvpaoReadOnly, rvpaoStyleProtect, rvpaoDoNotWantReturns – опции защиты абзацев);

TFontInfo.Protection (опции защиты текста);

TRVExtraItemProperty (rvepDeleteProtect, rvepResizable – защита нетекстовых элементов).