Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Поддержка технологий COM >> Класс TOleContainer >> Сохранение в файл и чтение из файла

[Назад]    [Содержание ]    [Вперед]

  


Сохранение в файл и чтение из файла


Как уже отмечалось в этой главе, OLE-объекты предоставляют возможность записи и чтение потоков и, соответственно, файлов. Компонент TOleContainer содержит методы SaveToStream(), LoadFromStream(), SaveToFile() и LoadFromFile(), которые упрощают сохранение OLE-объектов в файле или потоке.

Главная форма приложения MDIOLE содержит методы для открытия и сохранения файлов OLE-объектов. В приведенном ниже фрагменте кода показан метод FileOpenItemClock(), который вызывается при выборе команды File=> Open из основной формы. Кроме загрузки сохраненного OLE-объекта из файла, определенного параметром OpenDialog, этот метод также устанавливает поле OleFileName экземпляра TMDIChild, равное имени файла. Если появляется ошибка npи загрузке файла, экземпляр формы будет пустой.

procedure TMainForm.FileOpenItemClick(Sender: TObject);
begin
═════if OpenDialog.Execute then
══════════with TMDIChild.Create(Application) do
═══════════════begin
════════════════════try
═════════════════════════OleFileName := OpenDialog.FileMame;
═════════════════════════OleContainer.LoadFromFile(OleFileName);
═════════════════════════Show;
════════════════════except
═════════════════════════Release; // Пустая форма при ошибке
═════════════════════════raise; // Генерирование исключительной ситуации
════════════════════end;
═══════════════end;
end;

В следующем фрагменте показан код выбора команд меню File=> Save As и File=> Save. Заметьте, что метод FileSaveItemClick() вызывает метод FileSaveAsItemClick(), если активной дочерней MDI-форме еще не присвоено имя.

procedure TMainFonn.FileSaveAsItemClick(Sender: TObject);
begin
═════If (ActiveMDIChild <> nil) and (SaveDialog.Execute) then
══════════with THDIChild(ActiveMDIChild) do
═══════════════begin
════════════════════OleFileName := SaveDialog.FileName;
════════════════════OleContainer.SaveToFile(OleFileName);
═══════════════end;
end;

procedure TMainForm.FileSaveItemClick(Sender: TObject);
begin
═════If ActiveMDIChild <> nil then
═════{ Если имя не присвоено, выполняем команду "save as" }
══════════if THDIChild(ActiveHDIChild).OLEFileName = "" then
═══════════════FileSaveAsItemClick(Sender)
══════════else
══════════{ В противном случае сохраняем с текущим именем}
═══════════════with TMDIChild(ActiveMDIChild) do
════════════════════OleContainer.SaveToFile(ObEFileName);
end;



[Назад]    [Содержание ]    [Вперед]

  


  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017