ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Побудова багатовіконний додатків для Windows
         

     

    Інформатика, програмування

    Побудова багатовіконний додатків для Windows

    Володимир Коробицын

    Календар. Генератор звукових хвиль

    Після запуску C + + Builder у вашому розпорядженні є тільки одна форма Form1 - стартова форма майбутнього програми для Windows. Якщо ви хочете побудувати додаток, що використовує у своїй роботі, наприклад, три вікна - клацніть мишею на значок New Form (Нова форма) два рази. Ви отримали дві нові форми: Form2 і Form3. Такого ж результату можна домогтися по-іншому. А саме в меню File виберіть команду New, а потім Form. Під час роботи програми на екрані можуть одночасно відображатися всі три форми, або будь-які дві, або будь-яка одна з них. Для того щоб з будь-якої форми можна було керувати іншими формами, їх файли Unit1.h, Unit2.h і Unit3.h необхідно зв'язати. У головній частині файлу Unit1.cpp для перші форми потрібно дописати директиви:

    # include "Unit2.h"// включити другу форму в проект

    # include "Unit3.h"// включити третю форму в проект

    Розташуйте їх під уже існуючою директивою, яку сгенерирована саме середовище розробки під час створення першої форми:

    # include "Unit1.h"// включити першу форму в проект

    Для другий і третій форм зробити аналогічні записи у файлах Unit2.cpp і Unit3.cpp. Після цього форми почнуть «відчувати» одне одного - стане можливе управління з будь-якої форми, що залишилися, іншими. Якщо в процесі розробки багатовіконного програми будь-яка з форм виявиться недоступною, для її появи на екрані виберіть у меню View (Перегляд) команду ... Forms (Форми) або з клавіатури відпрацюйте клавішний акорд Shift + F12. Можна просто натиснути на відповідний значок з зображенням декількох форм.

    На базі пов'язаних між собою форм можна сміливо приступати до побудови багатовіконного додатки. Щоб зателефонувати з однієї форми інший можна скористатися методом Show (), який завантажить зазначену форму в оперативну пам'ять комп'ютера і покаже її на екрані. Метод Hide () приховує форму від погляду користувача, без вивантаження її з оперативної пам'яті. Наприклад, рядок програмного коду, написана у відповідній процедурі переривання перший або другий форми, покаже на екрані третю форму:

    Form3-> Show (); //показати третю форму

    Прибрати цю форму з екрану без вивантаження з оперативної пам'яті можна за допомогою інструкції:

    Form3-> Hide (); //приховати третю форму

    Повністю закрити форму можна за допомогою інструкції:

    Form3-> Close (); //вивантажити третю форму

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

    Створити додаток на базі трьох форм і зв'яжіть їх між собою. Загальні розміри всіх форм зменшіть приблизно в два рази і розташуйте їх поки довільно в різних частинах екрану. Змініть заголовки кожної форми додатку. Нехай вікна будуть називатися: «Головне меню», «Електронні годинник. Календар »та« Віртуальний генератор звукових хвиль ». Забезпечити першу і другу форму відповідними фоновими малюнками за допомогою знайомого вже вам компонента Image.

    На перший формі встановіть дві електронні кнопки. Збільшіть їх ширину в два-три рази, для того щоб їх можна було підписати «Електронні годинники» та «Віртуальний генератор »відповідно. Напишіть функцію обробки Button1Click:

    Form2-> Show (); //показати другу форму

    Form1-> Hide (); //приховати першу форму

    Потім для другої кнопки напишіть функцію обробки Button2Click:

    Form3-> Show (); //показати третю форму

    Form1-> Hide (); //приховати першу форму

    На другий формі встановіть електронну кнопку, щоб повернутися до головного меню і забезпечите її написом «Назад». Напишіть для неї функцію обробки Button1Click:

    Form1-> Show (); //показати першу форму

    Form2-> Hide (); //приховати другу форму

    Облаштуйте третє вікно аналогічно другий, відповідно змінивши програмний код. У другий і третій форм видаліть три кнопки управління вікном. Для цього зверніться до їх складеним властивості BorderIcons, яка відповідає за вигляд вікна, клікнувши на «Плюс». Щоб зникли кнопки управління вікном, властивості biSystemMenu (Системне меню) надайте значення false.

    Запустіть програму на виконання. За допомогою електронних кнопок спробуйте управляти багатовіконний додатком для Windows. Якщо всі вікна коректно з'являються і зникають, то можна добудувати другий і третій вікна, так щоб вони відповідали задуманого нами на самому початку призначенням.

    На другий форму додайте компоненти Label1 і Label2. Сюди ж встановіть компонент Timer1 з вкладки System і компонент MonthCalendar1 (Щомісячний календар) з вкладки Win32. Для компонента Timer1 його властивості Interval надайте значення 10. У функцію обробки Timer1Timer запишіть інструкції:

    Label1-> Caption = Date ();// показати дату

    Label2-> Caption = Time ();// показати час

    Через кожну одну соту секунди (10 мілісекунд) дата та час будуть оновлюватися. Якщо ви хочете, щоб дата і час одночасно виводилися в одному полі для перегляду тексту Label1, то дві попередні інструкції можна замінити однією:

    Label1-> Caption = Now ();// показати дату і час

    Якщо вам необхідно щоб календар показував на екрані кілька місяців одночасно, значно збільшить розміри компоненту MonthCalendar1. При цьому розміри друга форми можна і не збільшувати, тому що якщо щомісячний календар не зможе розміститися на формі за розмірами, автоматично з'являться смуги прокручування по вертикалі і горизонталі.

    Після перевірки функцій другого вікна, можна приступати до побудови третього вікна, яке буде віртуальний генератор звукових хвиль.

    На третю форму додайте компоненти Button2, Label1, TrackBar1, Image1, Image2. Компонент TrackBar1 (Движок-регулятор) можна отримати з вкладки Win32. Ширину компонента TrackBar1 збільшіть приблизно в два-три рази. Властивості Max (Максимальна положення движка) цього компонента надайте значення 50. Очистіть властивість Caption у компонента Label1. У функцію обробки Button2Click впишіть інструкцію, яка буде генерувати коливання звукової частоти:

    Beep (TrackBar1-> Position * 100, 1000);// звук

    Цей оператор, який відповідає за генерацію звуку, має два аргументи. Перший задає частоту звуку в герцах, другий - тривалість в мілісекундах. Властивість Position (Позиція движка) компонента TrackBar1 управляє зміною частоти звуку. У нашому випадку можна отримати звук частотою від 100 до 5000 Гц з кроком у 100 Гц тривалістю в одну секунду. Електронну кнопку Button2Click назвіть «Пуск». Генератор вже працездатний, але для виведення інформації про частоту звуку необхідно у функцію обробки TrackBar1Change (Зміна позиції движка) записати інструкцію:

    Label1-> Caption = "Частота звуку =" +

    IntToStr (TrackBar1-> Position) * 100 + "Гц";

    Зауважте, тут одна інструкція записана з перенесенням, а тому розташувалася в двох рядках.

    Запустіть програми та перевірте працездатність третього вікна. Поекспериментуйте з оператором звуку Beep, змінюючи обидва його аргументу. Будьте обережні з величиною другого аргументу, тому що він відповідає за час звучання.

    Додайте у вікно генератора просту анімацію. Для цього вставте два відповідні зображення, які будуть відображати стан генератора, в поля компонентів Image1, Image2. Цими зображеннями можуть бути, наприклад, мавпа в двох різних станах. Коли генератор мовчить - мавпа в задумі, коли присутній звук - мавпа посміхається розводить руки. Обидва зображення накладіть, один на одного, так як вони будуть з'являтися в різний час. Властивості Visible компонента Image2 надайте значення false. Тепер функція обробки Button2Click буде виглядати так:

    Beep (TrackBar1-> Position * 100, 1000);// звук

    Image1-> Visible = true;// показати перший малюнок

    Image2-> Visible = False;// приховати другий малюнок

    Необхідно так само буде написати функцію обробки Button2MouseDown:

    Image1-> Visible = False;// приховати перший малюнок

    Image2-> Visible = True;// показати другий малюнок

    Запустіть додаток. Подивіться, як тепер працює віртуальний генератор в супроводі анімації.

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

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://bc.boom.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status