Доброго времени суток!
Есть
INI-файл, в котором может быть сколько угодно секций. Хочу для каждой секции создавать динамически
GroupBox и стремя
Edit, куда будут загружаться значения полей (Nomer, Priem, Vydacha) для последующего редактирования и сохранения обратно в
INI-файл.
[Pos0]
Nomer=0101
Priem=9:00
Vydacha=9:30
[Pos1]
Nomer=0102
Priem=10:00
Vydacha=10:30
[Pos2]
Nomer=0103
Priem=11:00
Vydacha=11:30
Реализация получилась наполовину, без сохранения и ущербная с точки зрения кода.
procedure TFormMain.LoadStaff(Path: String);
var
IniFile: TIniFile;
SL: TStringList;
I: Integer;
MyLabel: TLabel;
MyEdit: TEdit;
begin
try
IniFile := TIniFile.Create(Path);
SL := TStringList.Create;
try
IniFile.ReadSections(SL);
SetLength(GBArr, SL.Count);
for I := 0 to SL.Count - 1 do
begin
// GroupBox
GBArr[I] := TGroupBox.Create(ScrollBox1);
GBArr[I].Parent := ScrollBox1;
GBArr[I].Height := 58;
GBArr[I].Width := 408;
GBArr[I].Left := 4;
GBArr[I].Top := 4 + ((I) * 62);
GBArr[I].Caption := SL.Strings[I];
// Labels
MyLabel := TLabel.Create(GBArr[I]);
MyLabel.Parent := GBArr[I];
MyLabel.Left := 8;
MyLabel.Top := 16;
MyLabel.Caption := 'Номер';
MyLabel := TLabel.Create(GBArr[I]);
MyLabel.Parent := GBArr[I];
MyLabel.Left := 142;
MyLabel.Top := 16;
MyLabel.Caption := 'Приём';
MyLabel := TLabel.Create(GBArr[I]);
MyLabel.Parent := GBArr[I];
MyLabel.Left := 276;
MyLabel.Top := 16;
MyLabel.Caption := 'Выдача';
// Edits
MyEdit := TEdit.Create(GBArr[I]);
MyEdit.Parent := GBArr[I];
MyEdit.Width := 130;
MyEdit.Left := 4;
MyEdit.Top := 33;
MyEdit.TabOrder := 0;
MyEdit.Text := IniFile.ReadString(SL.Strings[I], 'Nomer', '');
MyEdit := TEdit.Create(GBArr[I]);
MyEdit.Parent := GBArr[I];
MyEdit.Width := 130;
MyEdit.Left := 138;
MyEdit.Top := 33;
MyEdit.TabOrder := 1;
MyEdit.Text := IniFile.ReadString(SL.Strings[I], 'Priem', '');
MyEdit := TEdit.Create(GBArr[I]);
MyEdit.Parent := GBArr[I];
MyEdit.Width := 130;
MyEdit.Left := 272;
MyEdit.Top := 33;
MyEdit.TabOrder := 2;
MyEdit.Text := IniFile.ReadString(SL.Strings[I], 'Vydacha', '');
end;
except
end;
finally
FreeAndNil(IniFile);
FreeAndNil(SL);
end;
end;
Может у кого есть какие варианты реализации лучше?