'

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

Понравилась презентация – покажи это...





Слайд 0

Программирование для Windows. C++ Builder Достоинства программирования для Windows Поддержка виртуальной памяти до 4 Гбайт Многозадачность Стандартный графический интерфейс Независимость программ от аппаратуры Обмен данными между программами


Слайд 1

Принципы программирования для Windows в С++ Builder Принцип управления событиями. Приложение обрабатывает сообщения о возникших событиях. При этом выполняются функции – обработчики событий. Визуальное компонентное проектирование Программа строится визуально из стандартных компонентов. Свойства компонентов настраиваются при разработке программы.


Слайд 2

Библиотека компонентов C++ Builder C++ Builder включает ту же библиотеку визуальных компонентов VCL, что и Delphi. Все классы VCL являются наследниками TObject. Так же как в Delphi, выделяют компоненты – наследники TComponent, элементы управления (визуальные компоненты) – наследники TControl. В отличие от Delphi конструкторы и деструкторы имеют имена как в С++ - <тип> и ~<тип>


Слайд 3

Отличия объектной модели 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}; };


Слайд 4

VCL-совместимые классы Наследуются от TObject Могут содержать секцию __published для свойств, видимых в инспекторе объектов Не разрешается использовать множественное наследование Объекты должны создаваться динамически Классы должны иметь деструктор Не создается копирующий конструктор Имеется поддержка средств Delphi – динамических методов, DLL, пакетов. Имеются совместимые типы данных – множества (Set), Currency, AnsiString,Variant,TDateTime


Слайд 5

Пример программы void __fastcall TForm1::Button1Click(TObject *Sender) { Edit3->Text = StrToInt(Edit1->Text) + StrToInt(Edit2->Text); }


Слайд 6

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; } Пример программы


Слайд 7

Иерархия VCL


Слайд 8

Основные классы VCL Каждый следующий класс наследует поля, методы и свойства предка. TObject – предок всех классов. Содержит метод Free() для уничтожения объекта, если он был создан, свойства ClassName – имя класса. TPersistent добавляет методы, необходимые для размещения компонента в памяти или в файле. Содержит в частности метод void Assign(TPersistent *Source), копирующий все данные из объекта Source в текущий объект. TComponent – предок компонентов – объектов, свойства которых можно изменять при разработке программы из среды С++Builder. Содержит свойства __property AnsiString Name - имя компонента (среда дает стандартные имена типа Label1, Edit2, но их можно изменить) __property int Tag - число, которое программист может использовать по своему усмотрению.


Слайд 9

Компоненты Компонент может быть владельцем других компонентов и быть собственностью другого компонента (форма владеет кнопками). Для этого используются свойства: __property TComponent * Owner - содержит указатель на компонент-владелец данного __property int ComponentCount - количество компонентов, которыми владеет данный __property TComponent * Components [int index] список компонентов, которыми владеет данный TControl – содержит свойства, методы и события общие для всех визуальных компонентов(элементов управления). Они отображаются на экране и могут реагировать на мышь и клавиатуру. Каждый элемент управления, кроме формы имеет родительский элемент – указатель на него хранится в свойстве Parent. Элемент управления наследует от родителя стиль и перемещается по экрану вместе с родителем. Элементы бывают: оконные (могут получать управление и размещать на себе другие элементы) – TWinControl графические – просто отображаемые на экране TGraphicControl.


Слайд 10

Общие свойства элементов управления 1. Размер и расположение на экране Left, Top - координаты левого верхнего угла компонента в пикселях относительно координат компонента-родителя. Height, Width – высота и ширина компонента. 2. Выравнивание и масштабирование Логическое свойство AutoSize (подстраивается ли размер элемента подстраивается под его содержимое) Свойство Align – выравнивание ( значения – alNone,alTop, alBottom, alLeft, alRight, alClient) Свойство Anchors - множество привязок элемента к краям родителя. Свойство Constraints содержит значение объекта из 4-х свойств – MinWidth, MaxWidth, MinHeight, MaxHeight – задающие минимальные и максимальные размеры компонента. 3. Внешний вид компонента Color –цвет, Cursor – указатель мыши, Font – шрифт для текста. Сaption - задает заголовок компонента, Text – редактируемый текст. Visible - видимость компонента, Enabled – активность Свойство PopupMenu содержит указатель на контекстное меню.


Слайд 11

Основные события Элемент управления может обрабатывать следующие события 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. Поле ввода TEdit позволяет ввести одну строку текста. Текст – свойство Text. Свойства: bool AutoSelect – если свойство имеет значение true, то текст выделяется при активизации редактора. Int MaxLength – максимальное число символов для редактирования. bool ReadOnly– можно ли изменять текст. Кнопка TButton Текст кнопки задается свойством Caption. При нажатии вызывает обработчик события OnClick. Вызов метода Click() эквивалентен щелчку по кнопке. Флажок TCheckBox, переключатели RadioButton. Подпись задается в свойстве Caption. Главное свойство - Checked. Это свойство принимает значение true, если флажок включен, и false, если он сброшен. Чтобы реагировать на изменение состояния флажка, надо создать обработчик события OnClick


Слайд 13

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


Слайд 14

Стандартный компонент TListBox Список TListBox. Cписок строк хранится в свойстве Items. Список строк допускает выделение строки. Одновременно может быть выделена либо одна строка, либо несколько. Определяет возможность выделения нескольких строк логическое свойство MultiSelect. Номер выделенной строки можно получить с помощью целочисленного свойства ItemIndex. Если это свойство равно –1, то ни одна строка не выделена. Отметим, что строки нумеруются с нуля. Если разрешено выделение нескольких элементов списка, то можно проверить выделена ли строка с номером I с помощью логического векторного свойства Selected[i]. Количество выделенных строк содержит свойство SelCount. Логическое свойство Sorted указывает, должны ли строки автоматически сортироваться в алфавитном порядке. Для очистки списка используется метод Clear. Удалить i-ю строку можно с помощью метода DeleteString(I).Событие по умолчанию для списка – OnClick.


Слайд 15

Стандартный компонент TStringGrid Компонент TStringGrid реализует таблицу, состоящую из строк и столбцов. Каждая ячейка таблицы может содержать строку. Если разрешен режим редактирования, то можно вводить и редактировать данные в ячейках. Нумерация строк и столбцов таблицы начинается с нуля. Координаты ячейки – пара чисел, первое – номер столбца, второе- номер строки. Например, ячейка с номером (3,5) находится в 4-ом столбце и 6-ой строке. Основное свойство таблицы строк – двумерный массив Cells[Col,Row:integer], в котором находится содержимое ячеек. Количество столбцов и строк определяются в свойствах ColCount и RowCount. Номер столбца и строки, в которых находится выделенная ячейка можно получить с помощью свойств Col и Row. Несколько первых строк и столбцов таблицы, содержащие заголовки, могут быть фиксированными – т.е. не прокручиваться при скроллинге. Фиксированные ячейки выделяются цветом FixedColor (по умолчанию серым). Количество фиксированных столбцов и строк задается свойствами FixedCols, FixedRow. Начальные ширина столбцов и высота строк задаются свойствами DefaultColWidth и DefaultRowHeight. Поведение таблицы определяется свойством Options, содержащим множество флагов, каждый из которых принимает логическое значение. Отметим, что для в режим редактирования таблица переключается если установлен флаг goEditing. Для редактирования ячейки необходимо сделать на ней двойной щелчок мышью, либо нажать символьную клавишу, либо клавишу F2. Если установлен флаг goAlwaysShowEditor, то редактирование будет разрешено все время. Событие по умолчанию для таблицы – OnClick. . При выборе ячейки обрабатывается событие OnSelectCell. Обработчик события получает параметры ACol, ARow – с координатами ячейки. Логический параметр CanSelect можно изменить в false, чтобы запретить выделение ячейки. Событие OnSetEditText вызывается после редактирования ячейки. Обработчик события получает параметры ACol, ARow – с координатами ячейки. Новое значение ячейки передается через параметр Value.


×

HTML:





Ссылка: