|
<< Нажмите, чтобы показать Содержание >> TRVNoteReferenceItemInfo |
TRVNoteReferenceItemInfo – это класс, представляющий элемент документа, ссылающийся на сноску, концевую сноску или сноску в рамке в основном документе. Это не компонент. Объекты этого класса создаются в коде и добавляются в компонент TRichView (см. AddItem) или вставляются в компонент TRichViewEdit (см. InsertItem). Тип (стиль) этого типа элемента: rvsNoteReference (-205).
Модуль [VCL/FMX] RVNote / fmxRVNote.
Синтаксис
TRVNoteReferenceItemInfo = class(TRVLabelItemInfo)
TObject
TPersistent
TRVNonTextItemInfo
TRVRectItemInfo
При вставке в документ сноски (Document), этот элемент показывает тот же текст, что и сама сноска.
При вставке в TCustomRichView, он показывает текст NoteText.
Значения свойства Text этого элемента вычисляется автоматически.
Для присваивания свойства TextStyleNo в вызове конструктора используйте функцию RVGetNoteTextStyleNo.
Чтобы изменять свойства этого элемента операциями редактирования, используйте SetCurrentItemExtraIntPropertyEx и SetCurrentItemExtraStrPropertyEx.
См. примеры в разделах о TRVFootnoteItemInfo и TRVEndNoteItemInfo, показывающие, как вставлять сноски с документами, содержащими ссылки на них.
Этот пример показывает, как реализовать редактирование документа сноски NoteItem в rveNote (TCustomRichViewEdit).
Этот код копирует документ из сноски в редактор:
var
Stream: TMemoryStream;
begin
rveNote.NoteText := NoteItem.Text;
rveNote.Clear;
Stream := TMemoryStream.Create;
try
NoteItem.Document.SaveRVFToStream(Stream);
Stream.Position := 0;
rveNote.LoadRVFFromStream(Stream);
finally
Stream.Free;
end;
with rveNote do begin
SetSelectionBounds(ItemCount-1, GetOffsAfterItem(ItemCount-1),
ItemCount-1, GetOffsAfterItem(ItemCount-1));
end;
end;
Вы можете видеть, что текст сноски присваивается свойству NoteText редактора. Если документ сноски содержит ссылки на сноску, они будут показывать этот текст.
После редактирования документ может быть сохранён обратно в сноску:
if not rveNote.Modified then
exit;
Stream := TMemoryStream.Create;
try
rveNote.SaveRVFToStream(Stream, False);
NoteItem.ReplaceDocumentEd(Stream);
finally
Stream.Free;
end;
rveNote.Modified := False;
Демонстрационные примеры
▪Demos\*\Editors\Notes