і виконання програми. Щоб пояснити техніку такого обміну, треба спочатку докладніше розглянути властивість
Picture .
Ця властивість є об'єктом, який має у свою чергу подсвойства, що вказують на що зберігається графічний об'єкт. Якщо в Picture зберігається бітова матриця, на неї вказує властивість Picture. Bitmap . Якщо зберігається піктограма, на неї вказує властивість Picture. Icon . На що зберігається метафайл вказує властивість Picture. Metafile . Нарешті, на графічний об'єкт довільного типу вказує властивість Picture. Graphic .
Об'єкт Picture і його властивості Bitmap , Icon , Metafile span> і Graphic мають методи файлового читання і запису LoadFromFile і SaveToFile : p>
procedure LoadFromFile ( const FileName: string );
procedure SaveToFile ( const FileName: string );
Для властивостей Picture. Bitmap , Picture. Icon і Picture. Metafile формат файлу повинен відповідати класу об'єкту: бітової матриці, піктограмі, Метафайли. При читанні файлу в властивість Picture. Graphiс файл повинен мати формат метафайлу. А для самого об'єкта Picture методи читання і запису автоматично підлаштовуються під тип файлу. Пояснимо це на прикладі.
Давайте побудуємо додаток, аналогічне розглянутому в розділі 4.2 наприклад перегляду графічних файлів. Для різноманітності можна організувати управління їм не кнопкою Button , а меню. Помістіть на форму компонент Image . Розтягніть його або задайте його властивість Align рівним alClient , щоб він зайняв всю клієнтську область форми. Перенесіть на форму компонент діалогу відкриття графічного файлу OpenPictureDialog (див. розділ 8.2 ). Помістіть також на форму компонент головного меню MainMenu (див. розділ 6.1 ) і задайте в ньому один розділ - Файл. У обробнику цього розділу напишіть оператор
(OpenPictureDialog1. Execute) then . Picture. LoadFromFile (. FileName);
Цей оператор викличе діалог відкриття графічного файлу (див. рис.4.4) і завантажить в компонент Image1 зображення з обраного користувачем файлу (див. рис.4.5). Причому файл може бути будь-якого типу: бітова матриця, піктограма або метафайл. br/>
Рис.4.5 Зображення у компоненті Image бітової матриці (а) і піктограми (6) а) б)
У цьому додатку метод LoadFromFile застосований до Image1. Picture . Якщо будуть відкриватися тільки файли бітових матриць, то оператор завантаження файлу можна замінити на
. Picture. Bitmap. LoadFromFile (. FileName);
Для піктограм можна було б використовувати оператор. Picture. Icon. LoadFromFile (. FileName);
а для метафайлов - оператор. Picture. Metafile. LoadFromFile (. FileName);
або. Picture. Graphic. LoadFromFile (. FileName);
Але у всіх цих випадках, якщо формат файлу не співпаде з передбачуваним, виникне помилка. Аналогічно працює і метод SaveToFile з тією відмінністю, що застосований до Picture або до Picture. Graphic він зберігає у файлі зображення будь-якого формату. Наприклад, якщо ви доповніть ...