PDA

Просмотр полной версии : Memo поле и открытие файла


LAGOX
15.03.2009, 16:26
Всем доброго времени суток.
Пишу я значит текстовый редактор. В меню Файл у меня есть стандартные подменю(новый,открыть,сохр нить, сохранить как, закрыть, выход).
Я реализовал кнопку закрыть путем такого кода:

vvod.Free;

где vvod-это имя memo поля.
Далее я реализовал кнопку новый вот таким путем:

vvod:=tmemo.create(self);
vvod.Parent:=form1;//родитель
vvod.Show;//показываем поле
vvod.Align:=alClient;//выравниваем


Это было предисловие, а теперь собственно вопрос. При закрытии мемо поля, и после нажатия кнопки "Открыть" вылетает ошибка и указывает вот сюда(на эту строчку кода):

vvod.Lines.LoadFromFile(OpenDialog1.FileName);

eLWAux
15.03.2009, 16:32
if OpenDialog1.Execute then
vvod.Lines.LoadFromFile(OpenDialog1.FileName);

LAGOX
15.03.2009, 16:33
if OpenDialog1.Execute then
vvod.Lines.LoadFromFile(OpenDialog1.FileName);
у меня так и написанно, я просто указал ту строчку куда именно падает ошибка

Flame of Soul
15.03.2009, 17:11
Это было предисловие, а теперь собственно вопрос. При закрытии мемо поля, и после нажатия кнопки "Открыть" вылетает ошибка и указывает вот сюда(на эту строчку кода):

а во что открывать если в тот момент поле vvod не существует?
я так поняла после закрытия вы освободили его, то собственно при открытии вы должны его снова создать.

И если у вас всего один объект класса TMemo- vvod, т.е. не надо переключатся между ними почему бы просто вместо закрытия не сделать:

vvod.lines.clear;
vvod.visible:=false;

вместо создать:

vvod.lines.clear;
vvod.visible:=true;

вместо открыть:

vvod.lines.clear;
vvod.visible:=true;
if Opendialog.execute then vvod.lines.LoadFromfile(OpenDialog.FileName);

LAGOX
15.03.2009, 22:50
спасибо, так и сделал=)