|
<< Нажмите, чтобы показать Содержание >> TRVChat.InsertMessage |
Методы вставляют новое сообщение в позицию, заданную параметром AIndex. Это два метода с одинаковой функциональностью, отличающиеся только способом передачи параметров: напрямую или через запись.
function InsertMessage(AIndex: Integer;
AUser: TRVChatUser;
const AText: TRVUnicodeString;
ADateTime: TDateTime = 0;
Extra: TRVChatMessageExtra = nil;
AState: TRVChatMessageState = rvcmsDefault):
function InsertMessage(AIndex: Integer;
const Data: TRVChatMessageInsertionInfo):
Эти методы используются редко, поскольку обычно сообщения добавляются с помощью AddMessage.
Возможный сценарий использования: клиент чата получает сообщения в порядке, отличном от порядка их отправки, и хочет расположить их по времени. Для определения порядка сообщений можно использовать, например, поля DateTime и GlobalIndex элементов Messages.
Методы обновляют содержимое ChatRichView и вставляют новый элемент в Messages.
Перед вызовом этих методов ChatRichView должен быть отформатирован. Методы форматируют добавленное сообщение.
Parameters
AUser – ссылка на пользователя, автора сообщения. Это ссылка на один из элементов коллекции Users.
AText – текст сообщения. Если Extra = nil или Extra имеет тип TRVChatMessageExtraQuote, текст не может быть пустым. Текст может состоять из нескольких строк. Чат автоматически распознаёт URL в тексте (см. RVIsURL).
ADateTime – время сообщения. Если значение равно 0, используется текущее время.
Extra – дополнительные данные, прикреплённые к сообщению: файлы, изображение или цитата. Это может быть объект одного из следующих классов:
•TRVChatMessageExtraFiles для прикрепления файлов;
•TRVChatMessageExtraImage для прикрепления изображения;
•TRVChatMessageExtraQuote для добавления цитаты;
•nil – без дополнительных данных.
Если Extra.AutoDestroy = True, метод освобождает Extra, если сообщение было успешно добавлено.
AState – состояние сообщения.
Возвращаемое значение:
Ссылка на вставленное сообщение в случае успеха; nil в противном случае.