lazarus - свойство текста TMemo

Я использую поле TMemo вместо поля TEdit просто из-за возможности многострочного текста.

Я предполагал и использовал свойство .Text для присвоения значения во время выполнения. Но потом я понял, что во время разработки не было свойства Текст. Скорее я нашел свойство Линии.

Я проверил эту страницу: http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tmemo.html для получения дополнительной информации.

Я обнаружил, что в этой документации нет свойства Текст, а есть только свойство Строки.

Правильно ли я использую .Текст или это проблема?

Вот мой код:

  if dlgSave.Execute Then
     begin
       txtSaveName.Text := dlgSave.FileName;
     end;

txtSaveName: TMemo

dlgSave: TSaveDialog

Спасибо за любой вклад.


person itsols    schedule 21.02.2014    source источник


Ответы (1)


Lines - это TStrings, класс, который по сути является оболочкой для массива строк.

Текст - это простое свойство, которое при чтении объединяет строки вместе (с разделителями строк между ними), а при назначении также анализирует одну строку на несколько строк.

Я бы не стал особо беспокоиться об этом, просто подумайте дважды, прежде чем использовать его для огромных строк (подумайте о сотнях МБ и больше), поскольку все копирование, выполняемое этой функциональностью высокого уровня, потребляет довольно много памяти.

Другая (незначительная) причина не использовать его - если вы хотите, чтобы чтение и запись были одинаковыми двоичными. Предположим, у вас есть текст со смешанными окончаниями строк, и вы назначаете его тексту и читаете его, тогда смешанные окончания строк теперь будут однородными.

person Marco van de Voort    schedule 23.02.2014