Убедитесь, что вы установили для свойства Multiline значение true в textBox3.
Вы можете установить его через окно свойств после выбора textbox3 или написать строку ниже в конструкторе формы после завершения initializeComponents.
textBox3.Multiline = true;
Как только это будет сделано, Environment.NewLine или \ r \ n оба должны работать.
Можно использовать компонент JVCL TJvAppXMLFileStorage для сериализации производных классов TPersistent.
uses
JvAppXMLStorage;
var
Storage: TJvAppXMLFileStorage;
begin
Storage := TJvAppXMLFileStorage.Create(nil);
try
Storage.WritePersistent('', MyObject);
Storage.Xml.SaveToFile('S:\TestFiles\Test.xml');
Storage.Xml.LoadFromFile('S:\TestFiles\Test.xml');
Storage.ReadPersistent('', MyObject);
finally
Storage.Free;
end;
end;
JVCL является одним выбором, но если Вы предпочитаете небольшую, автономную библиотеку, существует OmniXML (Лицензия 1.1 Общественности Mozilla, http://www.omnixml.com/). Я использовал его успешно в нескольких проектах, и я нахожу это самой простой библиотекой XML для использования в Delphi. OmniXML идет с единицей 'OmniXMLPersistent', которая делает то, в чем Вы нуждаетесь через RTTI, точно так же, как решение JVCL делает.
// saving:
pers : TPersistent;
// SaveToFile is a class method, so no need to instantiate the object:
TOmniXMLWriter.SaveToFile( pers, 'd:\path\file.xml', pfAttributes, ofIndent );
pfAttributes означает, что свойства будут сохранены как атрибуты элементов XML; ofIndent произведет приятно форматируемый код для удобочитаемости.
// loading:
TOmniXMLWriter.LoadFromFile( pers, 'd:\path\file.xml' );
Сериализатор класса DragonSoft XML
Ссылка: http://www.dragonsoft.us/delphi_vcl.php
Лицензия: Лицензируемый в соответствии с Лицензией Общественности Mozilla ("MPL") версия 1.1
Кавычка: Позволяет сериализировать/десериализовывать Объекты/Компоненты VCL через XML. Состояние хранилища/восстановления объекта (опубликованные свойства). Специальная поддержка классов - TStrings, TCollection, TPicture. Полное управление процессом.
NativeXml Simdesign
Ссылка: http://www.simdesign.nl/xml.html
Лицензия: 29,95€
Кавычка: собственный Delphi синтаксический анализатор XML и устройство записи. Уникальная функция: Хранилище, считайте и создайте любой объект TPersistent к/от XML непосредственно (см. Example5). Это сделано путем итерации через все опубликованные свойства объектов при помощи RTTI (информация о типах во время выполнения). Эта функция только доступна для D5 и.
Я сделал сериализатор для D2006 с помощью SOAP XML: http://jankajanos.spaces.live.com/blog/cns!C3E2695FC6F7B0A4!791.entry
Но существует универсальный выпуск для D2009 также.
TJvTranslator JVCL. ComponentToXML
Ссылка: http://sourceforge.net/project/showfiles.php?group_id=45786&package_id=42327
Лицензия: Лицензируемый в соответствии с Лицензией Общественности Mozilla ("MPL") версия 1.1
Наблюдение: Кажется, делает рекурсивную сериализацию, но то, что она ясно предназначается для "Перевода", дает мне паузу.
Я загрузил новую версию. Он содержит комментарии на английском языке: http://janosjanka.spaces.live.com/blog/cns!E5C994C03FC0E370!181.entry Кроме того, он может десериализовать объект с помощью предварительно зарегистрированных типов классов. Это очень полезная вещь, потому что вы можете десериализовать объекты, не зная типов.