|
<< Нажмите, чтобы показать Содержание >> 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 – защита нетекстовых элементов).