Страница 1 из 1

Запись данных в MEMO-поле

Добавлено: 14 фев 2020, 12:48
Espada
Доброго дня. обращаюсь к DocInfo.TExData, как к файлу. есть функция WriteLn(данные), но она перезаписывает данные. может есть альтернатива, или применение этой функции по другому, что бы данные ДОПИСЫВАЛИСЬ в конец, а не перезаписывались?

Re: Запись данных в MEMO-поле

Добавлено: 14 фев 2020, 12:56
m0p3e
Предварительно курсор ставим в конец.

Код: Выделить всё

    MemoFile.Seek(MemoFile.GetSize);
    MemoFile.WriteLn(s);

Re: Запись данных в MEMO-поле

Добавлено: 14 фев 2020, 15:19
Espada
m0p3e писал(а):Предварительно курсор ставим в конец.

Код: Выделить всё

    MemoFile.Seek(MemoFile.GetSize);
    MemoFile.WriteLn(s);
а можно, что бы курсор позиционировался в конце строки после записи? сами мы окно ввода не открываем, запись происходит при нажатии на кнопку.

Re: Запись данных в MEMO-поле

Добавлено: 14 фев 2020, 15:50
m0p3e
После записи он и так будет в последней позиции. Или не понял вопроса...
Функция дозаписывает данные в memo:

Код: Выделить всё

Function AddToMemo(c : comp; s : string) : boolean;
{
 cTabel := c;
 Result := false;
 _try
 {
  If GetFirst FastFirstRow Notes <> tsOk
   {
    ClearBuffer ( #Notes );
     Notes.Choice := 2007;
     Notes.Owner  := c;
    If Insert Current Notes <> tsOk 
       { exit };
   };
  var FileName : string;
  FileName := CreateTmpFileName;
  ExportMemoToFile(Notes.Note, FileName, false);
  MemoFile.OpenFile(FileName, stOpen);
  MemoFile.Seek(MemoFile.GetSize);
  MemoFile.WriteLn(s);
  MemoFile.Close;
  ImportFileToMemo(Notes.Note, FileName, false);
  If Update Current Notes = tsOk
    Result := true;
 };
 _finally
 {
  If MemoFile.Handle > 0
    MemoFile.Close;
 };
}; //Function AddToMemo