Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Снова INI... [D3, Win95/98]


Автор: Riko 15.5.2002, 16:13
Не могу прочитать без ошибки запись в INI файле. Данный код находиться на форме Form1, а Edit1 на форме Extract. И еще - после того как я закрываю форму, когда она развернута на весь экран, а потом снова открываю, и пытаюсь восстановить ничего не происходит - средняя кнопка Развернуть/Восстановить не работает.

Код
//чтение данных из .INI файла
procedure TForm1.ReadIni;
Var
IniFile:TIniFile;
begin
IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0),'.INI'));
Form1.Top:=IniFile.ReadInteger('Main Window','Top',Form1.Top);
Form1.Left:=IniFile.ReadInteger('Main Window','Left',Form1.Left);
Form1.Height:=IniFile.ReadInteger('Main Window','Height',Form1.Height);
Form1.Width:=IniFile.ReadInteger('Main Window','Width',Form1.Width);

//Edit1 находится на форме Extract
//не хочет читать, выдает ошибку типа "Access....." перед запуском проги
Extract.Edit1.Text:=IniFile.ReadString('Extract','Path',Extract.Edit1.Text);

IniFile.Free;
end;

Код

//запись данных в .INI файл
procedure TForm1.WriteIni;
Var
IniFile:TIniFile;
begin
IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0),'.INI'));
IniFile.WriteInteger('Main Window','Top',Form1.Top);
IniFile.WriteInteger('Main Window','Left',Form1.Left);
IniFile.WriteInteger('Main Window','Height',Form1.Height);
IniFile.WriteInteger('Main Window','Width',Form1.Width);

//пишиться, вроде, без проблем
IniFile.WriteString('Extract','Path',Extract.Edit1.Text);

IniFile.Free;
end;

Автор: Baa 15.5.2002, 16:38
У меня D6 и Win2K...все отлично работает :)

Автор: Baa 15.5.2002, 16:40
P.S.
А кнопка восстановить и не должна работать :) форма ж на весь экран по размерам...

Автор: Vit 15.5.2002, 16:40
1) Access Violation - в 99% случаев говорит об обращении к объекту которого нет. Скорее всего код ты поставил на onCreate, а в момент создания твоей основной формы, вторая форма еще не создана, вот и ругается - переставь чтение файла на onActivate, и убедись что все объекты на момент вызова уже существуют.

2) Я вижу чтО именно ты пишешь. Можно это сделать гораздо проще. Поставь себе библиотеку RxLib- там есть компонент FormStorage - его на форму бросишь и всю эту работу он будет делать автоматически (сохранять размеры и положение формы), а так же при простом щелчке на компоненте можно указать какие свойства любого компонента ты бы хотел сохранить - текст в Edit, цвета и т.п. - простота работы, удобство и мощьность компонента граничат с гениальностью! Всем очень рекомендую.

Автор: Riko 15.5.2002, 16:52
Точно!
Считывание я закинул на onCreate.
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)