Ну, все достаточно просто.
Для указания имени файjла сипользовать TSaveDialog и TOpenDialog.
Бросаешь компоненты на форму и на соотв. кнопки пишешь:
procedure Form1.btSaveClick(Sender : TObject);
begin
If SaveDialog1.Execute Then
SaveMyData(SaveDialog1.FileName);
end;
procedure Form1.btOpenClick(Sender : TObject);
begin
If OpenDialog1.Execute Then
OpenMyData(OpenDialog1.FileName);
end;
Соотв. процедуры SaveMyData и OpenMyData сохраняют данные в файл и читают их из него, принимая на вход имя файла, полученное из диалогов.
Как писать/читать свои данные разберешься?
ЗЫ. По поводу сокращения кода программы. У тебя там есть нескольуо блоков кода, выполняющих одно и тоже, но с разными компонентами. Например, очистка StringGrid. Можно оформть это как отдельную процедуру, принимающую на вход компонент, и просто вызвать ее несколько раз.
Код:
procedure ClearStringGrid(Grid : TStringGrid);
var
I, J : Integer;
begin
For I := 0 To Grid.ColCount-1 Do
For J := 0 To Grid.RowCount-1 Do
Grid.Cells[I,J] := '';
end;
соответственно, в коде надо будет просто вызвать:
Код:
procedure TForm5.Button10Click(Sender: TObject);
begin
ClearGrid(StringGrid1);
ClearGrid(StringGrid2);
ClearGrid(StringGrid3);
ClearGrid(StringGrid4);
ClearGrid(StringGrid5);
ClearGrid(StringGrid6);
end;