Сохранение множества значений memo в памяти

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
veresk
новенький
Сообщения: 48
Зарегистрирован: 31.01.2012 12:23:32

Сохранение множества значений memo в памяти

Сообщение veresk »

Доброго времени суток, уважаемое сообщество!

Я снова засел мучать IDE своими попытками и нарвался на проблему такого рода:

Есть форма, на которой вводится набор данных: 5 полей Memo и Image (не обязательный). При нажатии на Button значения полей обнуляются и происходит следующее заполнение. Я так и не смог нагуглить, как сохранить в памяти введённые значения (с возможностью возврата к редактированию их).
Попробовал было объявить массив TMemo и хранить там значения - ругается:

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

var
M: TMemo;
...

procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Lines := M.Lines;
end; 


Проект project1 вызвал класс исключения 'External: SIGSEGV'.

Ясное дело, что где-то набыдлокодил лишнего. Впрочем, переменная M:TMemo даже LoadFromFile выполняет с той же ошибкой. Явно где-то я не понимаю сути. Переходить к использованию временных файлов ох как не хочется. К тому же, говорят, в других языках можно запросто сохранять Memo просто в переменную.

Попробовал так же оббъявить переменную TStrings, но и она при попытке работы выдаёт 'External: SIGSEGV'.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

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

var
 s: TStringList;

begin
  s:=TStringList.Create;


procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Lines.Assign(S);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  s.Assign(M.Lines);
end;
veresk
новенький
Сообщения: 48
Зарегистрирован: 31.01.2012 12:23:32

Сообщение veresk »

Посмотрел старый проект на Дельфи, там сделано ещё проще:

Memo1.Text:=S;

S:String. Всё!!! И работает же. А я - придурок, усложняющий жизнь себе и людям :-)

Добавлено спустя 2 минуты 1 секунду:
Осталось придумать, где держать Image. Или налету их перегнать в Base64 и положить рядом, в тот же массив?
veresk
новенький
Сообщения: 48
Зарегистрирован: 31.01.2012 12:23:32

Сообщение veresk »

Перечитал трижды. Не понял чуть менее, чем полностью. А жаль.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

как сохранить в памяти введённые значения


На ссылку нажмите
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

veresk для начала я советую вам почитать документацию (или книгу) по ObjectPascal. В частности про классы.
veresk
новенький
Сообщения: 48
Зарегистрирован: 31.01.2012 12:23:32

Сообщение veresk »

Обязательно после сдачи диплома займусь этим великим трудом. А пока придётся писать быдлоподелие из готовых рецептов, не понимая сути происходящего и испортив себе карму.
Аватара пользователя
B4rr4cuda
энтузиаст
Сообщения: 693
Зарегистрирован: 28.12.2007 06:48:35

Сообщение B4rr4cuda »

veresk я бы рекомендовал не заморачиваться с извратами, которые вы хотите совершить, а использовать для хранения своей инфы SQLite, компоненты ZEOS и соответствующие DB компоненты. Можно и картинки сохранить в блоб поля и рядышком в поле записать текст. Данные будут автоматом загружаться в компоненты, по переходу на соответствующие записи. И вся эта прелесть будет храниться в одном файлике. Не надо изобретать велосипед, воспользуйтесь готовым автомобилем.
veresk
новенький
Сообщения: 48
Зарегистрирован: 31.01.2012 12:23:32

Сообщение veresk »

Да всё уже заработало, пока что без SQL. Но с ним, вероятно, придётся мне разбираться пусть и чуть позднее.
Ответить