Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Снова проблемы с INI-файлами


Автор: Первый 25.4.2003, 08:55
Создаю INI-файл

procedure TMain.writeParams(filepath:string);
var
f:Tinifile;
begin

f:=TIniFile.Create(filepath);

f.writestring('label1','caption',label1.Caption);
f.writeinteger('label1','top',label1.Top);
f.WriteInteger('label1','left',label1.Left);
f.WriteInteger('label1','font.size',label1.Font.Size);
f.WriteBool('label1','visible',label1.Visible);
f.WriteString('label1','font',label1.Font.Name);

f.free;
end;

Проверяю - всё занесено туда правильно.

Читаю оттуда


procedure Tmain.readparams(filepath:string);
var
f:Tinifile;
begin

f:=TIniFile.Create(filepath);

label1.caption:= f.readstring('label1','caption','Not Found');
label1.top:= f.readinteger('label1','top',10);
label1.left:= f.readInteger('label1','left',3);
label1.font.size:= f.readInteger('label1','font.size',8);
label1.visible:= f.readBool('label1','visible',true);
label1.font.name:= f.readString('label1','font','verdana');

f.Free;
end;


Выдаёт значение по умолчанию. Что делать?

Автор: man2002ua 25.4.2003, 09:19
а filename - полный путь?

Автор: dr.ZmeY 25.4.2003, 18:04
Записываем smile.gif
Код

procedure TEditZag.SaveButtonClick(Sender: TObject);
var F:string;
     IniFile:TIniFile;
begin
   getdir(0,F);  F:=F+'\'+'filepath'+'.ini';     // Узнаем какое будет имя файла
   IniFile:=TIniFile.Create(F);// Открываем ini-файл

       IniFile.EraseSection('Label1');

       IniFile.WriteString('Label1','caption',label1.Caption);
       IniFile.WriteString('Label1','font',label1.Font.Name);
       IniFile.WriteInteger('Label1','left',label1.Left);
       IniFile.WriteInteger('Label1','font.size',label1.Font.Size);
       IniFile.WriteBool('Label1','visible',label1.Visible);
   IniFile.Free;
end;

Читаем smile.gif
Код

procedure TEditZag.LoadButtonClick(Sender: TObject);
var sTmp:string;
   IniFile:TIniFile;
begin
   getdir(0,sTmp);
   OpenDialog1.InitialDir:=sTmp;

   if OpenDialog1.Execute then
   begin
       
       FillChar(Label1, SizeOf(Label1), 0);

       sTmp:=OpenDialog1.FileName;
       IniFile:=TIniFile.Create(OpenDialog1.FileName);

       if not IniFile.SectionExists('Label1') then Application.MessageBox('Выбранный файл не содержит свойств шрифта или поврежден','Сообщениее',MB_OK)
       else begin // Чтение информации из ини-файла
           
             Label1.Caption:=     IniFile.ReadString('Label1','caption','Not Found');
             Label1.Top:=            IniFile.ReadInteger('Label1','top',10);
             Label1.Left:=            IniFile.ReadInteger('Label1','left',3);
             Label1.Font.Size:=   IniFile.ReadInteger('Label1','font.size',8);
             Label1.Visible:=        IniFile.ReadBool('Label1','visible',true);
             Label1.Font.Name:= IniFile.ReadString('Label1','font','verdana');

       IniFile.Free;
   end; // if OpenDialog1.Execute
end;

Всё работает smile.gif

Автор: Первый 8.5.2003, 12:56
Благодарю!

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