Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

сохранить значение в 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.032 c
3-1163427521
darlock
2006-11-13 17:18
2007.02.04
Кросс отчеты с строками на пересечении в Report Builder 9


15-1168854689
Vlad Oshin
2007-01-15 12:51
2007.02.04
Как Вы получаете в свою программу(если получаете) курсы валют?


15-1168621866
AntiUser
2007-01-12 20:11
2007.02.04
Несколько уязвимостей в ядре Linux


3-1163575639
Артем_
2006-11-15 10:27
2007.02.04
Из MySQL в XML


15-1168946847
Nic (from SAF)
2007-01-16 14:27
2007.02.04
Пропал элемент меню: Project -> Information for Project :(