В общем, как я и говорил: задача эта очень простая. Дело в том, что
TMemo.Lines
- это не TStringList
, а TMemoStrings
- наследник TStrings
, который сам не хранит строки, а вместо этого является просто оболочкой к внутреннему хранилищу строк Memo. Когда содержимое Memo меняют, TMemoStrings
отправляет текст в Memo. Когда у TMemoStrings
запрашивают текст - он получает строки из Memo.Соответственно, то, что возвращает нам
TMemo.Lines
, будет равно содержимому Memo, которое... меняется в зависимости от настроек редактора. В частности, если включено свойство WordWrap
, то редактор будет переносить слова на следующую строку, если эти слова не помещаются в окне редактора.Вот и рецепт: шрифт - побольше, а размер компонента - поменьше. А
WordWrap
... ну, он и так включен.Причём работает это и в design-time:
Вы вводите
1.jpg 2.jpg 3.jpgВ свойство
Lines
в инспекторе объектов, но когда вы снова открываете редактор свойства Lines
, то видите уже
1. jp g 2. jp g 3. jp gВот наша искомая
'1.'
.
Вот блин, а я думал TStringList.
ОтветитьУдалитьБуду знать.
Update: по неизвестным мне причинам, даже если WordWrap = False, TMemo режет строки длиннее 1024 символов, перенося остаток на новую строку.
ОтветитьУдалитьВозможно:
ОтветитьУдалитьLimits of Edit Controls
Edit controls were designed to enter, display, and edit small amounts of text. They were not meant to be the basis for large-scale text editors. Edit controls in Microsoft® Windows™ have the following limits:
Single-line edit controls are limited to a maximum of 32K (32,767 bytes) of text and, of course, to a single line. By default, single-line edit controls are limited to 30,000 characters. An application can change this limit to a maximum of 32,767 characters with the EM_LIMITTEXT message.
Multiple-line edit controls are limited to a maximum of 64K (65,535 bytes) of text. Whether a multiple-line edit control is actually able to approach this limit is based on how the edit control uses memory. Techniques to control the way edit controls use memory are described in the next section, "Edit Controls and Memory."
Multiple-line edit controls are also limited to the following:
- characters per line of text
- lines of text
- pixels per line of text