Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.129 c
15-1168698485
Гарри Поттер
2007-01-13 17:28
2007.02.04
Старый Новый год.


15-1168719818
vidiv
2007-01-13 23:23
2007.02.04
Глюк винды/indy/моих рук?


1-1166014247
BBCHa
2006-12-13 15:50
2007.02.04
Интегрция с OpenOffice


2-1169037970
Pasha L
2007-01-17 15:46
2007.02.04
png в bmp


2-1169295348
redlord
2007-01-20 15:15
2007.02.04
получение почты средствами компонентов indi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский