Програмування для Windows. C++ Builder

Содержание

Слайд 2

ПРОГРАМУВАННЯ ДЛЯ WINDOWS. C++ BUILDER Переваги програмування для Windows Підтримка віртуальної

ПРОГРАМУВАННЯ ДЛЯ WINDOWS. C++ BUILDER

Переваги програмування для Windows
Підтримка віртуальної пам'яті

до 4 Гбайт
Багатозадачність
Стандартний графічний інтерфейс
Незалежність програм від апаратури
Обмін даними між програмами
Слайд 3

ПРИНЦИПИ ПРОГРАМУВАННЯ ДЛЯ WINDOWS В С++ BUILDER Принцип управління подіями. Додаток

ПРИНЦИПИ ПРОГРАМУВАННЯ ДЛЯ WINDOWS В С++ BUILDER

Принцип управління подіями.
Додаток обробляє

повідомлення про виниклі події. При цьому виконуються функції - обробники подій. Візуальне компо-нентне проектування
Програма будується візуально із стандартних компонентів. Властивості компонентів налаштовуються при розробці програми.
Слайд 4

БІБЛІОТЕКА КОМПОНЕНТІВ C++ BUILDER C++ Builder включає ту ж бібліотеку візуальних

БІБЛІОТЕКА КОМПОНЕНТІВ C++ BUILDER

C++ Builder включає ту ж бібліотеку візуальних

компонентів VCL, що і Delphi.
Всі класи VCL є спадкоємцями TObject. Так само як в Delphi, виділяють компоненти - спадкоємці TComponent, елементи управління (візуальні компоненти) - спадкоємці Tcontrol
На відміну від Delphi конструктори і деструктори мають імена як в С ++ - <тип> і ~ <тип>
Слайд 5

ВІДМІННОСТІ ОБ'ЄКТНОЇ МОДЕЛІ C++ BUILDER ВІД СТАНДАРТА Опис адрес методів різних

ВІДМІННОСТІ ОБ'ЄКТНОЇ МОДЕЛІ C++ BUILDER ВІД СТАНДАРТА

Опис адрес методів різних класів.

Використовується для підключення обробників подій
тип (__closure ім’я) (параметри)
void __fastcall( __closure *p) (TObject *Sender);
p = &Form1->Button2Click;
p(Sender);
Властивості. Властивості використовуються для доступу до полів класів через методи. Семантика властивостей повністю аналогічна властивостям Delphi
__property тип ім’я = {read = метод чтання, write = метод запису}
class TNumber
{ private: int Num;
int GetNum() { return Num; }
void SetNum( int N) {Num = N; }
public:
__property int Number = {read = GetNum, write = SetNum};
};
Слайд 6

VCL-СУМІСНІ КЛАСИ Успадковуються від TObject Можуть містити секцію __published для властивостей,

VCL-СУМІСНІ КЛАСИ

Успадковуються від TObject
Можуть містити секцію __published для властивостей, видимих

в інспекторі об'єктів
Чи не дозволяється використовувати множинне спадкування
Об'єкти повинні створюватися динамічно
Класи повинні мати деструктор
Не створюється конструктор копіювання
Є підтримка засобів Delphi - динамічних методів, DLL, пакетів.
Є сумісні типи даних - безлічі (Set), Currency, AnsiString, Variant, TDateTime
Слайд 7

ПРИКЛАД ПРОГРАМИ void __fastcall TForm1::Edit1KeyDown (TObject *Sender, WORD &Key, TShiftState Shift)

ПРИКЛАД ПРОГРАМИ

void __fastcall TForm1::Edit1KeyDown
(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if

(Key == VK_RETURN)
{ Memo1->Lines->Append(Edit1->Text);
Edit1->SelectAll();
}
}
void __fastcall TForm1::Button1Click
(TObject *Sender)
{
int s = 0;
for (int i = 0; i < Memo1->Lines->Count; i++)
s = s + StrToIntDef
( Memo1->Lines->Strings[i],0);
Edit2->Text = s;
}
Слайд 8

ІЄРАРХІЯ VCL

ІЄРАРХІЯ VCL

Слайд 9

ОСНОВНІ КЛАСИ VCL Кожен наступний клас успадковує поля, методи і властивості

ОСНОВНІ КЛАСИ VCL

Кожен наступний клас успадковує поля, методи і властивості предка.
TObject

- предок всіх класів. Містить метод Free () для знищення об'єкта, якщо він був створений, властивості ClassName - ім'я класу.
TPersistent додає методи, необхідні для розміщення компонента в пам'яті або в файлі. Містить зокрема метод void Assign (TPersistent * Source), що копіює всі дані з об'єкта Source в поточний об'єкт.
TComponent - предок компонентів - об'єктів, властивості яких можна змінювати при розробці програми з середовища С ++ Builder.Містить властивості__property AnsiString Name - ім'я компонента (середа дає стандартні імена типу Label1, Edit2, але їх можна змінити)__property int Tag - число, яке програміст може використовувати на свій розсуд.
Слайд 10

ЗАГАЛЬНІ ВЛАСТИВОСТІ ЕЛЕМЕНТІВ УПРАВЛІННЯ 1. Розмір і розташування на екрані Left,

ЗАГАЛЬНІ ВЛАСТИВОСТІ ЕЛЕМЕНТІВ УПРАВЛІННЯ

1. Розмір і розташування на екрані
Left, Top

- координати лівого верхнього кута компонента в пікселях щодо координат компонента-батька.
Height, Width - висота і ширина компонента.
2. Вирівнювання і масштабування Логічне властивість
AutoSize (підлаштовується Чи розмір елемента підлаштовується під його вміст) Властивість Align - вирівнювання (значення - alNone, alTop, alBottom, alLeft, alRight, alClient)
Властивість Anchors - безліч прив'язок елемента до країв батька.Свойство Constraints содержит значение объекта из 4-х свойств – MinWidth, MaxWidth, MinHeight,
Max Height - задають мінімальні і максимальні розміри компонента.
3. Зовнішній вигляд компонента
Color -колір, Cursor - покажчик миші, Font - шрифт для тексту.
Caption - задає заголовок компонента, Text - редагований текст.
Visible - видимість компонента, Enabled – активність.
Властивість PopupMenu містить покажчик на контекстне меню.
Слайд 11

ОСНОВНІ ПОДІЇ Елемент управління може обробляти наступні події OnClick - на

ОСНОВНІ ПОДІЇ

Елемент управління може обробляти наступні події
OnClick - на елементі

натиснута і відпущена ліва кнопка миші
OnDblClick - Проведений подвійне клацання мишею.
OnMouseDown - була натиснута клавіша миші. Параметр Button містить інформацію про те, яка кнопка була натиснута mbLeft, mbRight або mbMiddle. X, Y - координати покажчика щодо лівого верхнього кута області компонента. Shift - стан Shift, Ctrl, Alt.
OnMouseUp - була відпущена клавіша миші.
OnMouseMove - миша переміщається треба об'єктом.
Віконні елементи управління успадковуються від TWinControl.
Віконний елемент може бути батьківським для інших елементів (св-во Controls).
Віконні елементи обробляють подія від клавіатуриOnKeyDown параметр WORD Key; TshiftState State
OnKeyPress параметр char Key;
OnEnter - виникає, коли елемент стає активним - отримує фокус введення (миша або TAB).
OnExit - коли елемент втрачає фокус введення
Слайд 12

СТАНДАРТНІ КОМПОНЕНТИ TLABEL, TEDIT Мітка TLabel. Текст - властивість Caption. Поле

СТАНДАРТНІ КОМПОНЕНТИ TLABEL, TEDIT

Мітка TLabel. Текст - властивість Caption.
Поле введення TEdit

дозволяє ввести один рядок тексту. Текст - властивість Text.
Властивості: bool AutoSelect - якщо властивість має значення true, то текст виділяється при активізації редактора.
Int MaxLength - максимальне число символів для редагування.
bool ReadOnly- чи можна змінювати текст.
Кнопка TButtonТекст кнопки задається властивістю Caption. При натисканні викликає обробник події OnClick. Виклик методу Click () еквівалентний клацанню по кнопці.
Прапорець TCheckBox, перемикачі RadioButton.
Підпис задається у властивості Caption. Головна властивість - Checked. Ця властивість приймає значення true, якщо прапорець включений, і false, якщо він скинутий. Щоб реагувати на зміну стану прапорця, треба створити обробник події OnClick
Слайд 13

СТАНДАРТНИЙ КОМПОНЕНТ TMEMO Багаторядковий редактор Memo. Головне властивість-Lines (Рядки), що має

СТАНДАРТНИЙ КОМПОНЕНТ TMEMO

Багаторядковий редактор Memo.
Головне властивість-Lines (Рядки), що має тип

TStrings *. У ньому зберігається список рядків, введених користувачем.
Ці рядки можна обробляти всіма методами, доступними в класі TStrings, наприклад зберігати у файлі:
Memol -> Lines-> SaveToFile ("С: \\ Memo.TXT");
Наявність у текстовій області смуг прокрутки задається у властивості ScrollBars.
Метод Clear () - очищення.
Група методів призначена для роботи з буфером обміну Windows. Для копіювання виділеного тексту в буфер обміну застосовується метод CopyToCtipboard (), для вирізання тексту - метод CutToClipboard (), для вставки тексту з буфера - метод PasteFromClipboard.
Коли в текстовій області відбувається зміна тексту, генерується подія OnChange.