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;