:: Меню ::

Головна
Передмова
СЕРЕДОВИЩЕ РОЗРОБКИ C++ BUILDER
Початок роботи
Перший проект
ПРАКТИКУМ ПРОГРАМУВАННЯ
Графіка
Мультимедіа
Бази даних
Компонент програміста
Консольне застосування
Довідкова система
Створення настановного диска
Приклади програм
C++ Builder — короткий довідник
Книга для гостей
Контакти
Добавити у вибране

:: Друзі ::

 
Платная рыбалка в Подмосковье у Иваныча линь - 500 руб. Осетр - 1200 руб. Горячее и холодное.

:: Лічильники ::

=

 

 

 

 

 

Ілюстрації



Найпростіше вивести ілюстрацію, яка знаходиться у файлі з розширенням bmp, jpg або ico, можна за допомогою компоненту image значок якого знаходиться на вкладці Additional палітри компонентів (мал. 3.9). Основні властивості компоненту приведені в таблиці. 3.5.



Мал. 3.9. Значок компоненту Image


Таблиця 3.5. Властивості компоненту image


Властивість

Опис

Picture

Ілюстрація, яка відображається в полі компоненту

Width, Height

Розмір компоненту. Якщо розмір компоненту менше розміру ілюстрації і значення властивостей Autosize, Strech і Proportional рівно falseто відображається частина ілюстрації

Proportional

Ознака автоматичного масштабування картинки без спотворення. Щоб масштабування було виконане, значення властивості Autosize мабуть false

Strech

Ознака автоматичного масштабування (стискування або розтягування) ілюстрації відповідно до реального розміру компоненту. Якщо розмір компоненту не пропорційний розміру ілюстрації, то ілюстрація буде спотворена

Autosize

Ознака автоматичної зміни розміру компоненту відповідно до реального розміру ілюстрації

Center

Ознаку визначає розташування картинки в полі компоненту по горизонталі, якщо ширина картинки менше ширини поля компоненту. Якщо значення властивості рівне false то картинка притиснута до правої межі компоненту, якщо true — те картинка розташовується по центру

Visible

Ознака указує, чи відображається компонент і, відповідно, ілюстрація на поверхні форми

Canvas

Поверхня, на яку можна вивести графіку


Ілюстрацію, яка буде виведена в полі компоненту image можна задати як під час розробки форми додатку, так і під час роботи програми.

Під час розробки форми ілюстрація задається установкою значення властивості Picture шляхом вибору файлу ілюстрації в стандартному діалоговому вікні, яке стає доступним в результаті клацання на командній кнопці Load вікна Picture Editor яке, у свою чергу, з'являється в результаті клацання на кнопці з трьома крапками в рядку властивості picture (мал. 3.10).

Якщо розмір ілюстрації більше розміру компоненту, то властивості Proportional потрібно привласнити значення true . Тоді буде виконано масштабування ілюстрації відповідно до реальних розмірів компоненту.

Щоб вивести ілюстрацію в полі компоненту image під час роботи програми, потрібно застосувати метод Loadfromfile до властивості Picture вказавши як параметр методу файл ілюстрації. Наприклад, інструкція

Imagel->picture->loadfromfile("e:\\temp\\bart.bmp")

завантажує ілюстрацію з файлу bart.bmp і виводить її в полі компоненту виведення ілюстрації (Image 1).

За умовчанням компонент image можна використовувати для відображення ілюстрацій форматів BMP, ICO і WMF. Щоб використовувати компонент для відображення ілюстрацій у форматі JPEG (файли з розширенням jpg), треба підключити відповідну бібліотеку (помістити в текст програми директиву #include <jpeg.hpp>). Звернете увагу, що якщо вказаної директиви в тексті програми не буде, то компілятор не виведе повідомлення про помилку. Але під час роботи програми при спробі завантажити jpg-файл за допомогою методу Loadfromfile виникне помилка — виключення Einvalidgraphic.



Мал. 3.10. Щоб вибрати ілюстрацію, клацніть в рядку Picture на кнопці стремено крапками, потім у вікні Picture Editor — на кнопці Load



Мал. 3.11. Діалогове вікно програми Перегляд ілюстрацій


Наступна програма (вид її вікна приведений на мал. 3.11, а текст — в лістингу 3.2) використовує компонент image для відображення JPG-иллюстраций.

Кнопка Каталог в результаті клацання на якій з'являється стандартне діалогове вікно Вибір теки дозволяє користувачеві вибрати каталог, в якому знаходяться ілюстрації. Кнопка Далі забезпечує відображення наступної ілюстрації.

Лістинг 3.2. Проглядання ілюстрацій

#include <jpeg.hpp>          // забезпечує роботу з JPEG-иллюстрациями
linclude <Filectrl.hpp>    // для доступу до функції Selectdirectory
Ansistring apath;           // каталог,  в якому знаходиться ілюстрація
Tsearchrec asearchrec;   // результат пошуку  файлу
void __fastcall Tforml::formcreate(Tobject  *Sender) 
{
apath =  "";   //   поточний каталог — каталог,  з якого 
// запущена програма
Imagel->autosize = false;
Imagel->proportional = true;
Button2->enabled = false;
Firstpicture();   // показати картинку,  яка 
// є в каталозі програми 
}
// клацання на кнопці Каталог
void __fastcall Tforml::buttonlclick(Tobject  *Sender)
{
if (Selectdirectory(
"Виберіть каталог, в якому знаходяться ілюстрації", "",apath) != 0)
 {
// користувач вибрав каталог і клацнув на кнопці ОК 
apath = apath + "\\";
Firstpicture(};     // вивести ілюстрацію 
} 
}
// знайти і вивести першу картинку
void Tforml::firstpicture()
{
Imagel->visible = false;  // приховати компонент Imagel
Button2->enabled = false;  // кнопка Далі недоступна
Labell->caption = "";
if ( Findfirst(apath+ "*.jpg", faanyfile, asearchrec) == 0)
{
Imagel->picture->loadfromfile(apath+asearchrec.Name);
Imagel->visible = true;
Labell->caption = asearchrec.Name;
if ( Findnext(asearchrec) == 0)  // знайти слід, ілюстрацію
{
// ілюстрація є
Button2->enabled = true; // тепер кнопка Далі доступна
} }
}
// клацання на кнопці Далі
void __fastcall Tforml::button2click(Tobject *Sender)
{
Imagel->picture->loadfromfile(apath+asearchrec.Name);
Labell->caption = asearchrec.Name;
 if ( Findnext(asearchrec)!= 0)  // знайти слід, ілюстрацію
{
// ілюстрацій більше немає
Button2->enabled = false; // тепер кнопка Далі недоступна
}
 }

Завантаження і вивід першої і решти ілюстрацій виконують відповідно функції Firstpicture і Nextpicture. функція Firstpicture викликає функцію Findfirst для того, щоб отримати ім'я файлу першої ілюстрації. Як параметри функції Findfirst передаються:

  •  ім'я каталога, в якому повинні знаходитися ілюстрації;
  •  структура asearchrec поле Name якій, у разі успіху, міститиме ім'я файлу, що задовольняє критерію пошуку;
  •  маска файлу ілюстрації.


Якщо у вказаному при виклику функції Findfirst каталозі є хоч би один файл з вказаним розширенням, те значення функції дорівнюватиме нулю. В цьому випадку метод Loadfromfiie завантажує файл ілюстрації. Після завантаження першої ілюстрації функція Firstpicture викликає функцію Findnext для пошуку наступного файлу ілюстрації. Якщо файл буде знайдений, то кнопка Далі буде зроблена доступною.

Функція обробки події Onclick на кнопці Далі завантажує наступну ілюстрацію, ім'я файлу якої було знайдене функцією Findnext в процесі обробки попереднього клацання на кнопці Далі і знову викликає функцію Findnext для пошуку наступної ілюстрації. Якщо файл ілюстрації не буде знайдений, то кнопка Далі стане недоступною. Необхідно звернути увагу на наступне. Для того, щоб ілюстрації відображалися без спотворення, властивості Autosize компоненту image1 треба привласнити значення falseа властивості Proportional — значення true. Зробити це можна під час створення форми в середовищі розробки (встановити значення властивостей у вікні Object Inspector) або покласти завдання налаштування компоненту на саму програму. У останньому випадку у функцію обробки події Oncreate для форми (Tform1: : Formcreate) треба додати наступні інструкції:

Image1->autosize = false; Image1->proportional = true;

Крім того, під час створення форми властивості Enabled кнопки Далі (Button2) треба привласнити значення false. Це забезпечить коректну роботу програми в тому випадку, якщо в каталозі, з якого запускається програма, немає ілюстрацій. Налаштування кнопки Buttona можна покласти на функцію Tforml: : Formcreate. Для цього у функцію треба додати оператора
Button2->enabled = false

 


Недорогие путаны на http://mos-indi.com/ продемонстрируют свое мастерство. работа для девушек в сфере досуга
x

:: Наша кнопка ::

Отримати код:

Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


:: Реклама ::


:: Посилання ::

-


 

 

 


Copyright by Zvircom © 2009