Советы по Delphi

         

Импортирование файла в компонент Memo


Как мне импортировать файл в элемент управления TMemo начиная с позиции курсора? LoadFromFile заменяет содержимое TMemo содержимым текстового файла. Я хочу включить текстовый файл или в поцизию курсора или, если выбран текст, заменить этот текст содержимым текстового файла. Все это должно быть похоже на работу фунции PasteFromClipboard.

Самый простой путь вставки текста в компонент Memo заключается в посылке ему сообщения EM_REPLACESEL.

    { InsertFileInMemo--
ПРИМЕЧАНИЕ: если вы хотите заменить к настоящему времени выбранный в Memo текст, передайте в параметре ReplaceSel TRUE. FALSE необходим для простой вставки текста... }
procedure InsertFileInMemo( Memo: TMemo; FileName: string;
ReplaceSel: Boolean ); var
Stream: TMemoryStream;

NullTerminator: Char; begin
Stream := TMemoryStream.Create; try { Загружаем текст... } Stream.LoadFromFile( FileName );
{ Добавляем в конец текста терминирующий ноль... } Stream.Seek( 0, 2 ); NullTerminator := #0; Stream.Write( NullTerminator, 1 );
{ Вставляем текст в Memo... } if not ReplaceSel then Memo.SelLength := 0; SendMessage( Memo.Handle, EM_ReplaceSel, 0, LongInt( Stream.Memory )); finally Stream.Free; end; end;

- Ed Jordan [001000]



Содержание раздела