OpenDialog i zapis danych jako wartości domyślnych

0

Witam
Mam taki oto problem:
Napisałem program z funkcją zapisywania i odczytywania informacji z pliku.
Zapis odbywa się do pliku txt, z poszczególnych TEditów.
Tu nie ma żadnych problemów. Odczyt polega na uzupełnieniu editów metodą

assignfile(var, opendialog1.filename)
 reset(var)

itd.

edit1.text:=k

gdzie k to jedna z pobranych z otwieranego pliku zmienna.
Do programu wprowadziłem również funkcję zapisująca wprowadzone dane, jako wartości domyślne po zaznczeniu checkboxa i zamknięciu programu.
Funkcja ta działa bez zarzutu, dopóki nie zostanie otworzony plik.
Dokładniej mówiąc nie działa ona w takim schemacie
START-> Otwórz plik -> Wczytanie do editów -> Zaznaczenie checkboxa -> ZAPIS (tutaj brak zapisu).
Zapis odbywa się również za pomocą operacji na plikach (assignfile itd).

Co zrobić by to naprawić?

procedure TForm1.Otwrz1Click(Sender: TObject);
 var
 open:textfile;
 h, pol, gr, sr, ulk1, ulk2 : string;
 begin
     if opendialog1.Execute then
     begin
     assignfile(open, opendialog1.FileName);
  reset(open);
  if not eof(open) then begin
  readln(open,h);
  readln(open,pol);
  readln(open,ulk1);
  readln(open,ulk2);
  readln(open, gr);
  readln(open, sr);
   closefile(open);
  end;
 
  hform.Text:=h;
  lpol.Text:=pol;
  fi_k.ItemIndex:=strtoint(sr);
  gr_p.ItemIndex:=strtoint(gr);
  if ulk1='true' then begin
       img1.pen.Color:=cllime;
       img2.Pen.color:=clbtnface;
       ukl1.Checked:=true;
  end else begin
       img1.pen.Color:=clbtnface;
       img2.Pen.color:=cllime;
       ukl2.Checked:=true;
 end;
     end;
   
   form1.Button1Click(form1);
 
 end;
 
 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
 var cfg: textfile;
     hl, poli, gru, sre, ulk12, ulk21 : string;
 begin
 if save.Checked=true then begin
   hl:=hform.Text;
   poli:=lpol.Text;
   gru:=inttostr(gr_p.itemindex);
   sre:=inttostr(fi_k.ItemIndex);
   if ukl1.Checked=true then begin
   ulk12:='true';
   ulk21:='false';
   end else begin
   ulk12:='false';
   ulk21:='true';
   end;
 
 
    assignfile(cfg, 'conf.cfg');
    rewrite(cfg);
    writeln(cfg,hl);
    writeln(cfg,poli);
    writeln(cfg,ulk12);
    writeln(cfg,ulk21);
    writeln(cfg, gru);
    writeln(cfg, sre);
    closefile(cfg);
    end;
 end;
 
0

Może to będzie off topic, ale po co się męczysz z ręczną obsługą pliku konfiguracyjnego skoro masz do dyspozycji klasę TINIFile?

1 użytkowników online, w tym zalogowanych: 0, gości: 1