Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Приклади використання компонентів VCL
4.1 Поради для вивчення компонентів: 1 Переглядайте вміст Object Inspector.2 Користуйтесь довідкою F1.3 Користуйтесь підказкою коду Ctrl+Space.4 Користуйтесь довідковою літературою і прикладами.5 Перед копіюванням прикладів в код програми розмістіть на формі усі необхідні компоненти (наприклад, Label1, Label2, Button1 і т.д.) та створіть усі необхідні функції-обробники подій (наприклад, TForm1::Button1Click, TForm1::FormCreate і т.д.), які використовуються в прикладі.4.2 Простий проект типу Win32 Application у C++ Builder Постановка задачі: створити додаток Win32 у C++ Builder, вікно якого містить кнопку і поле вводу. При натиску на кнопці в полі повинен з’явитись текст "Hello World!" Послідовність виконання: 1 Створіть проект, якщо він не створений (File|New| Application) 2 Добавте на Form1 компоненти Edit і Button з панелі компонентів 3 Двічі клацніть на кнопці Button1 і у функцію TForm1::Button1Click вставте код: Edit1->Text="Hello World!"; 4 В конструктор форми TForm1::TForm1 вставте код: Caption="First program"; Button1->Caption="Click Me!"; 5 Відкомпілюйте проект (Run|Run) 6 Збережіть проект (File|Save Project As...). 7 Закрийте проект (File|Close All)
Код програми //файл Unit1.h з описом класу форми#ifndef Unit1H//директива умовної компіляції "якщо не визначено"#define Unit1H//директива визначення макросу//директиви підстановки файлів#include <Classes.hpp>//бібліотека службових класів#include <Controls.hpp>//бібліотека класів компонентів#include <StdCtrls.hpp>//бібліотека класів стандартних компонентів#include <Forms.hpp>//бібліотека класів форм//клас форми TForm1, який успадкований від TFormclass TForm1: public TForm{__published://компоненти, які обслуговуються IDE TButton *Button1;//компонент VCL кнопка класу TButton TEdit *Edit1;//компонент VCL поле вводу класу TEdit //метод обробки події OnClick void __fastcall Button1Click(TObject *Sender);private: //закриті члени класуpublic: //відкриті члени класу __fastcall TForm1(TComponent* Owner);//конструктор};//специфікатор вказує, що Form1 визначена в окремому файліextern PACKAGE TForm1 *Form1;#endif//кінець директиви умовної компіляції //файл Unit1.cpp з визначенням методів форми#include <vcl.h>//бібліотека VCL//директива закінчує список заголовочних файлів,//придатних для попередньої компіляції#pragma hdrstop#include "Unit1.h"//під’єднати файл Unit1.h//вказує, що упаковані модулі ініціалізовані//в порядку, визначеному їх залежностями#pragma package(smart_init)//помічає файли *.dfm як модулі форми#pragma resource "*.dfm"TForm1 *Form1;//створити об’єкт форми класу TForm1//визначення конструктора форми__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner){//присвоїти властивості форми Form1 рядок//властивість Caption відповідає надпису на компонентіCaption="First program";//присвоїти властивості кнопки Button1 рядокButton1->Caption="Click Me!";}//визначення методу обробника події OnClickvoid __fastcall TForm1::Button1Click(TObject *Sender){//присвоїти властивості поля вводу Edit1 рядок//властивість Text відповідає тексту на компонентіEdit1->Text="Hello World!";} //файл Project1.cpp з головною функцією WinMain#include <vcl.h>#pragma hdrstop//використовувати файл форми Unit1.cppUSEFORM("Unit1.cpp", Form1);//головна функціяWINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){try//блок обробки виключних ситуацій{//Application - об’єкт, який описує додатокApplication->Initialize();//ініціалізувати//створити форму Form1Application->CreateForm(__classid(TForm1), &Form1);Application->Run();//виконати}//перехоплення виключної ситуації Exceptioncatch (Exception &exception){Application->ShowException(&exception);}//показати помилку//перехоплення інших виключних ситуаційcatch (...){ try {throw Exception("");}//генерувати виключну ситуацію //перехоплення виключної ситуації Exception catch (Exception &exception) {Application->ShowException(&exception);}//показати помилку}return 0;}Класи
TThread – потік керування
Постановка задачі: використати компонент класу TThread для створення багатопотокового додатку. Послідовність виконання: 1 Створіть проект (File|New| Application) 2 Добавте на форму три компонента Button 3 Створіть новий клас потоку (File|New|Other...|Thread Object) 4 Назвіть клас TThread1 5 Добавте в файл Unit2.cpp директиви #include "Unit1.h" #include <stdlib.h> 6 Добавте в файл Unit1.cpp директиву #include "Unit2.h" 7 Виберіть в Class Explorer клас TThread1 і в контекстному меню виберіть New Method... 8 Вкажіть ім’я методу: Rand, тип результату: void, доступ: Private, директиви: __fastcall 9 Запрограмуйте метод Rand(): void __fastcall TThread1::Rand() { //Змінити випадковому пікселю на канві колір на чорний Form1->Canvas->Pixels[rand()%1000][rand()%1000] =clBlack; Sleep(1);//Зупинити потік на 1мс } 10 Запрограмуйте метод Execute (): void __fastcall TThread1::Execute() { do Synchronize(Rand);//виконати метод Rand синхронізовано while(!Terminated);//поки потік не знищений } 11 Вставте в Unit1.cpp код: TThread1 *Thread1;//оголосити вказівник на потоковий об'єкт 12 Запрограмуйте методи TForm1::Button1Click, TForm1::Button2Click, TForm1::Button3Click: void __fastcall TForm1::Button1Click(TObject *Sender) { Thread1=new TThread1(false);//динамічно створити і виконати потік Thread1->Priority=tpIdle;//встановити пріоритет на найнижчий Thread1->FreeOnTerminate=true;//знищити об’єкт при завершенні } //натиснута кнопка 2 void __fastcall TForm1::Button2Click(TObject *Sender) { Thread1->Terminate();//завершити роботу потоку } //натиснута кнопка 3 void __fastcall TForm1::Button3Click(TObject *Sender) { if (!Thread1->Suspended)//якщо потік не призупинено {Thread1->Suspend();}//зупинити виконання else {Thread1->Resume();}//продовжити виконання } 13 Запустіть програму: Run.
TForm - форма Створення модальних форм Постановка задачі: створити додаток, в якому використовуються модальні форми, створити і використати модальні форми, які розміщені у dll. Послідовність виконання: 1 Створюємо додаток: File/New/Application 2 Добавте кнопку на форму Form1. 3 Добавляємо нову форму: File/New/Form 4 Добавте кнопку на форму Form2. 5 У файл Unit1.cpp дописуємо код: #include "Unit2.cpp" 6 У конструктор форми TForm1::TForm1 вставте: Form2=new TForm2(Application); 7 У реалізацію методу TForm1::Button1Click вставте: Form2->ShowModal(); 8 У реалізацію методу TForm2::Button1Click вставте: Form2->Close(); 9 Зберігаємо усе: File/Save All 10 Компілюємо: Run.
|
||||||||
Последнее изменение этой страницы: 2017-01-24; просмотров: 213; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.186.92 (0.04 с.) |