Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Внизсохранить значение в ini из другой формы Найти похожие ветки
← →
Garacio © (2007-01-18 19:54) [0]Пробовал:
procedure TForm1.FormCreate(Sender: TObject);
begin
Ini:= TIniFile.Create(ExtractFilePath(ParamStr(0)) + "save.ini");
Form2.Edit1.Text := Ini .ReadString("tools", "edit1", "text");
Ini .Destroy;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + "save.ini");
Ini .WriteString("tools", "edit1", Form2.Edit1.Text);
Ini .Free;
end;
ругается!
← →
Джо © (2007-01-18 20:03) [1]> ругается!
Матом?
Форма, ссылка на которую хранится в переменной Form2 уже создана на момент вызова?
П.С. Вроде человек уже не первый день на форуме, а вопросы формулировать никак не научится, что за синдром такой...
← →
Garacio © (2007-01-18 20:23) [2]Ругается коннкретно наэту строку:
Form2.Edit1.Text := Ini .ReadString("tools", "edit1", "text");
То-же самое происходит, если пробую с CheckBox-ом на Form2.
Открываю save.ini там только edit1=
ИUses Unit2;
прописано.
Мне тоже не совсем понятно - какой ответ требуетс яна вопрос:
Форма, ссылка на которую хранится в переменной Form2 уже создана на момент вызова?
Отвечу так: Form1(Show) и Form2(Hide), Form2.Edit1.Text="", листинг выше
← →
Virgo_Style © (2007-01-18 20:26) [3]Партизан, однако. Как ругается - не говоришь, создана ли форма - не говоришь...
← →
Anatoly Podgoretsky (2007-01-18 20:27) [4]> Virgo_Style (18.01.2007 20:26:03) [3]
А ему пофиг, ты не умничай, ты отвечай.
← →
Garacio © (2007-01-18 20:27) [5]В автосоздание форм я не лез, Form1- main
← →
Kostafey © (2007-01-18 20:37) [6]если по-простому, то что-то вроде того:
вызывать не при
> procedure TForm1.FormCreate(Sender: TObject);
а при
procedure TForm1.FormShow(Sender: TObject);
← →
FAskerQ © (2007-01-18 21:12) [7]
> Garacio © (18.01.07 19:54)
Нахрена делать всё это в Form1 ? Смысл в этом какой скажите мне ?
Чем вам не нравиться такой код ?procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + "save.ini");
Ini .WriteString("tools", "edit1", Edit1.Text);
Ini .Free;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Ini:= TIniFile.Create(ExtractFilePath(ParamStr(0)) + "save.ini");
Edit1.Text:= Ini.ReadString("tools", "edit1", Edit1.Text);
Ini .Destroy;
end;
← →
Garacio © (2007-01-18 21:19) [8]Удалено модератором
Примечание: Флудить завязываем
← →
Джо © (2007-01-18 21:21) [9]> [8] Garacio © (18.01.07 21:19)
> > FAskerQ
> ХА-ХА-ХА!!!
> Уже пробовал!
> Полтергейст какой то!
Не полтергейст, а наверняка пробовал Form2.xxx.
← →
FAskerQ © (2007-01-18 21:31) [10]
> Garacio © (18.01.07 21:19) [8]
Отлично всё работает, внимательно читайтеprocedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + "save.ini");
Ini .WriteString("tools", "edit1", Edit1.Text);
Ini .Free;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Ini:= TIniFile.Create(ExtractFilePath(ParamStr(0)) + "save.ini");
Edit1.Text:= Ini.ReadString("tools", "edit1", Edit1.Text);
Ini .Destroy;
end;
← →
Garacio © (2007-01-19 08:34) [11]Блин, надо было для нажатия кнопки изменить Hide на Close :-)
Нахрена делать всё это в Form1 ? Смысл в этом какой скажите мне ?
А что делать, если у тебя ни одна форма и ни две? - В каждой:
IniFile... Ini .Free... IniFile.Create... Ini .Destroy;.. ?
Хочется научиться делать всё грамотно, а не "чтобы работало"!
P.S. Есть у кого-нибудь проверенный пример сохранения в ini параметров второй формы из первой?
← →
ASoft (2007-01-19 09:17) [12]
> Garacio © (19.01.07 08:34) [11]
Создай глобальные переменные, читай/записывай их из всех своих не главных форм при show/create-close/hide, или что-там у тебя, а при закрытии приложения одним махом сохраняй в ini... что париться-то °)
← →
Garacio © (2007-01-19 09:33) [13]тоже не выход! - создавать пару десятков лишних переменных, я уже не говорю про описание всех процедур!
← →
Плохиш © (2007-01-19 11:14) [14]
> Garacio © (18.01.07 19:54)
> Пробовал:
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> Ini:= TIniFile.Create(ExtractFilePath(ParamStr(0)) + "save.
> ini");
> Form2.Edit1.Text := Ini .ReadString("tools", "edit1", "text");
> Garacio © (18.01.07 20:27) [5]
> В автосоздание форм я не лез, Form1- main
Ну не существует во время выполнения TForm1.FormCreate формы Form2, ещё не существует.
> Garacio © (19.01.07 08:34) [11]
> Хочется научиться делать всё грамотно, а не "чтобы работало"!
Правильно, каждый объект должен заниматься сохранением/востановлением только своих свойст и не лезть в чужой монастырь...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.042 c