Кент Рейсдорф. BORLAND C++BUILDER. Раздел 2

Кент Рейсдорф. BORLAND C++BUILDER. Страница 164

1. Выберите в меню главной формы пункт File | Open. При этом будет создан обработчик данного пункта и на экране появится окно редактора кода.

2. Введите необходимый текст, чтобы обработчик выглядел следующим об­разом:

Этот код прежде всего открывает диалоговое окно File Open и получает имя файла. Если в диалоговом окне была нажата кнопка Cancel, функция не выполняет больше никаких действий. Если же была нажата кнопка ОК, создается новый объект TChild (TChild будет именем класса MDI, который мы создадим позже). Файл с изображением передается компоненту Image подчиненной формы; затем рабочая область этой формы подгоняется под размер изображения. В завершение свойству Caption присваивается имя вы­бранного файла и подчиненное окно отображается на экране.

3. Нажмите F12, чтобы перейти обратно к форме. Теперь выберите в меню пункт File | Save As. На экране будет отображен обработчик File | Save As.

4. Введите необходимый код, чтобы обработчик пункта File | Save As вы­глядел следующим образом:

Как видите, код для пункта File | Save As достаточно прост. В первых двух строках проверяется, активно ли подчиненное окно MDI. Если это так, то отображается диалоговое окно File | Save As. После нажатия кнопки ОК изображение сохраняется на диске с помощью метода SaveToFile() класса TPicture.

Если dynamic_cast не может выполнить приведение типов, он возвращает NULL. Попытка использования указателя NULL приведет к нарушению прав доступа, но отладчик укажет вам ошибочную строку и вы будете точно знать, где возникли проблемы. Это намного лучше, чем использование приведения типов в старой форме, когда ошибка приведения могла повлечь за собой разрушение произвольного участка памяти.

Перед тем, как продолжить, неплохо сохранить проект. Выберите в глав­ном меню пункт File | Save All. Сохраните Unitl (это имя C++Builder при­сваивает по умолчанию новому модулю) как ViewMain, а проект — как ViewPict.

Web-дизайн (с) 2010 All rights reserved