begin TQuestionResultForm(ActiveMDIChild).FileName:=SaveDialog1.FileName; SaveButtonClick(nil);
end; end;
Здесь я отображаю окно выбора имени файла. Если пользователь что-то выбрал, то сохраняю имя файла в свойстве FileName активного окна, и вызываю обработчик события кнопки «Сохранить», где происходит сохранение.
Теперь посмотри на обработчик события OnClick для кнопки «Открыть» проект:
procedure TTestEditorForm.OpenButtonClick(Sender: TObject);
var
fs:TFileStream;
i, Count:Integer;
Str:String[5];
NewQuest:PQuestion;
begin
//Показать окно открытия файла
if not OpenDialog1.Execute then exit;
//Открыть файл для чтения
fs:=TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
//Перейти в начало файла и прочитать заголовок
fs.Seek(0,soFromBeginning);
fs.read(Str, SizeOf(Str));
//Если заголовок равен тексу "Тест", значит это "вопрос-
//варианты ответов".
if Str='Тест' then
begin
//Создать новое окно теста
QuestionResultForm:=TQuestionResultForm.Create(Owner);
//Сохранить имя открытого файла в объекте окна
QuestionResultForm.FileName:=OpenDialog1.Filename;
//Прочитать имя проекта fs.Read(QuestionResultForm.ProjectName, sizeof(QuestionResultForm.ProjectName));
try
//Прочитать количество вопросов
fs.Read(Count, sizeof(Count));
//Запустить цикл чтения вопросов
for i:=0 to Count-1 do
begin
//Создаю новую структуру в памяти для вопроса
NewQuest:=New(PQuestion);
//Читаю структуру
fs.Read(NewQuest^, sizeof(TQuestion));
//Добавляю структуру в контейнер
QuestionResultForm.QuestionList.Add(NewQuest);