Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Memo поле и открытие файла (https://forum.antichat.xyz/showthread.php?t=111244)

LAGOX 15.03.2009 16:26

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

  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

Цитата:

Сообщение от eLWAux
Код:

if OpenDialog1.Execute then
vvod.Lines.LoadFromFile(OpenDialog1.FileName);


у меня так и написанно, я просто указал ту строчку куда именно падает ошибка

Flame of Soul 15.03.2009 17:11

Цитата:

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

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

PHP код:

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

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

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

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

PHP код:

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


LAGOX 15.03.2009 22:50

спасибо, так и сделал=)


Время: 12:47