C++ Builder :: Игрописательство :: Как написать игру за 21 день ?

Главная

Введение

ЛИКБЕЗ
C++ Builder


ЛИКБЕЗ
C++

Глава №1
Глава №2
Глава №3
Глава №4
Глава №5
Глава №6

Исходники
к пособию

Мои исходники

Статьи
&
Книги


Гостевая

Ссылки

About

E-mail

Rambler's Top100


Краткий справочник по работе C++ Builder’a.
 

 Если вы когда-нибудь рисовали в Кореле разобраться в проектировании (рисовании кнопочек) для вас не составит это труда, всем остальным рекомендуется читать вдвое внимательнее !!!

 Сперва запустим Билдер. Что мы с вами видим? Сверху располагается главное окно.


Справа вы видите панельку с расположенными на ней элементами управления, которые мы можем размещать на основной Форме приложения. Запомните: окно вашего приложения  в билдере называется Формой.

 Окошко с заголовком Form1, которое расположено посредине экрана и будет Формой вашего первого приложения.

 Пока вы не написали ни одной строчки кода и тем не менее вы уже можете запустить программу на исполнение. Сделать это можно, нажав в главном окне на зеленую стрелочку с надписью Run, или через меню, или просто нажав F9.

 Внимание!

Настоятельно рекомендую перед запуском проект сохранять, так как несохраненный проект может не запуститься из-за того что ему будет запрещена запись в папку по умолчанию. Часто это бывает в компьютерных классах, где права на запись во многих местах ограничены.

 После запуска у вас появится самое обычное окошко без единой кнопки. Которое, однако, уже можно двигать, сворачивать, разворачивать и закрывать, а это, согласитесь, уже что-то.

 Попробуйте для начала разместить в окошке своей программы кнопку. Для этого нужно выбрать на вкладке Standard кнопочку Button и нарисовать ее на форме.

 Потренируйтесь и порисуйте на форме разные элементы управления из разных вкладок.

 Вы порисовали в свое удовольствие и уже задумались о том, например, как на кнопке поменять надпись.

Настало время познакомиться с Инспектором Объектов (Object Inspector). По умолчанию он расположен в левой части экрана, но может быть где угодно, поэтому, чтобы его вызвать вам проще всего выделить кнопку, на которой вы хотите поменять надпись и нажать клавишу F11. Вылезшее окно и будет Инспектором Объектов. Как вы видите, в нем есть две вкладки Properties (Свойства) и Events (События). Чтобы поменять надпись на кнопке, вам нужно найти свойство Caption и изменить «Button1» на то, что вы пожелаете. Скорее всего, долго искать его вам не придется, и оно будет выделено по умолчанию, так как это самое часто используемое свойство. Попробуйте поэкспериментировать со свойствами различных объектов.

 Обратите внимание, что сама Форма тоже является объектом и поменять ее свойства можно так же, как и свойства простой кнопки.

 Упомяну наиболее часто используемые свойства.

Часто используемые свойства.

Name – имя объекта. Не путайте Name и Caption. Имя – это уникальный идентификатор объекта, по которому его можно найти. Двух объектов с одинаковым именем существовать не может, а с одинаковыми надписями - сколько душе угодно. Также обратите внимание, что имя должно состоять из английских букв и не должно содержать пробелов. Надпись же может быть какая угодно.

Visible – видимость объекта. Тут все относительно просто – если оно true, объект видно, если false - соответственно - нет. Одно «НО» - если вы у главной формы на этапе проектирования поставите Visible=false, она все равно покажется, однако во время выполнения программы вы можете ее скрыть (после того как она покажется первый раз).

А вот если у вас в проекте 2 формы, вы без проблем можете показывать/прятать вторую с помощью Visible.

Form2->Visible=false; // прячем вторую форму
Form2->Visible=true; // показываем вторую форму

Аналогично для этого могут использоваться методы Show и Hide:

Form2->Hide(); // прячем вторую форму
Form2->Show(); // показываем вторую форму

Хозяйке на заметку: если вы добавляете в свой проект вторую форму не забывайте подключать ее заголовки File->Include Unit Hdr ... иначе показываться она у вас не будет ... да собственно и программа не скомпилируется, если вы напишете Form2->Show(), не подключив Unit2 ...

Enabled – определяет «включен» или «выключен» объект. Например, если это свойство у кнопки стоит false, то на нее нельзя нажать, а сама она будет серого цвета.

Height, Width, Top, Left – эти 4 свойства (ширина, высота, и 2 координаты от верхнего левого угла формы) определяют позицию и размер объекта.

 Constraints – определяет пределы растягивания объекта (как правило применяется только для форм). Например, MaxHeight определяет максимальную Height (высоту) формы и если вы будете ее растягивать, то больше этого значения в высоту вам ее не растянуть.

Обратите внимание: что отсчет координат идет не так, как вас учили в школе, а вверх ногами: ось Y вместо того, чтобы быть направленной вверх, направлена вниз.

Hint – текст всплывающей подсказки. Работает только при включенном (установленным в true) свойстве ShowHint. Если включено свойство ParentShowHint, то свойство ShowHint окажется выключенным и будет показываться подсказка объекта-родителя.

*Это значит если ваша кнопка находится на какой-нибудь Панели, у которой включено свойство ShowHint и в поле Hint что-то написано, а у кнопки включено свойство ParentShowHint, то при наведении мышки на кнопку покажется подсказка Панели ...

Font – шрифт основной надписи. Работает только при отключенном (установленным в false) свойстве ParentFont.

Cursor – это свойство определяет, каким становится курсор мыши при наведении на объект.

И напоследок: в 6-м Билдере у Формы появилось достаточно экзотичное свойство:AlphaBlend – прозрачность. Попробуйте установить его в true и поэкспериментировать с AlphaBlendValue.

Работа с событиями.

Итак, мы научились задавать свойства на этапе проектирования, однако при выполнении программа у нас безжизненная и ни одна кнопочка пока что ничего не делает. Это надо срочно исправить.

Создайте новый проект и прилепите на форму одну кнопочку. Откройте Инспектор Объектов (нажав на кнопку F11) только на этот раз выберите вкладку Events (События). Выберите событие OnClick() и нажмите справа от него 2 раза. У вас откроется окошко редактирования исходного кода, в котором вы увидите этот текст:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

 }

 Вот здесь то и начнется настоящее программирование. Не будем пока вникать в значение каждого слова в этом тексте. Самое главное вы должны усвоить, что это называется функция и вызывается она при нажатии (кликаньи) на кнопку.

Button1Click – название этой функции. Если бы было событие формы, тогда бы она называлась Form1Click. Если бы событием было не OnClick, а например OnMouseMove, то функция называлась бы Button1MouseMove и соответственно вызывалось бы оно при движении мышкой над кнопкой.

 Как мы видим, пока функция ничего не делает и, чтобы что-то произошло, необходимо вставить между фигурными скобками какой-нибудь код.

Пока что мы не знаем языка C++, однако уже успели узнать о том, что такое свойства. Поэтому сейчас, мы вполне уже можем сделать такую программу, в которой при нажатии на кнопку, меняется надпись на ней.

 Как мы уже знаем для того, чтобы поменять надпись на кнопке, нужно изменить ее свойство Caption. На этапе проектирования это делается элементарно. А как сделать тоже самое, но во время исполнения? Да ничуть не сложнее.

 Просто присваивание какого-то значения какому-то свойству вам необходимо написать в коде события OnClick (или любого другого).

К примеру это можно сделать так:

  void __fastcall TForm1::Button1Click(TObject *Sender)

{ 

Button1->Caption=”Новая надпись”;

}

Проанализируем что же мы тут такое понаписали. Во первых для того чтобы добраться до какого-то свойства какого-то объекта, нужно прописать его имя и через стрелочку название свойства.

 Объект->Свойство = Новое_значение_свойства;

 Обращу ваше внимание, что в конце строчки должна стоять точка с запятой.

Разберем также часто используемое событие OnMouseMove.

 По названию нетрудно догадаться, что оно означает. Это событие определяет  реакцию приложения на пользовательское движение мыши.

 Зайдите опять в Инспектор объектов -> Events -> OnMouseMove.

 Нажмите сбоку от надписи OnMouseMove 2 раза. У вас появится окно редактирования кода с процедурой Button1MouseMove. Напишите там к примеру ShowMessage (“Hello”);

 Теперь вы сможете провести мышью по кнопке, не нажимая на нее и у вас выскочит это маленькое окошко с сообщением.

 Само собой, вместо ShowMessage (“Hellow”); вы можете написать что угодно. Что именно, решать вам. Например, если вы напишите Form1->Caption=X; в заголовок формы при движении будет появляться X координата мыши.

 Обратите внимание на то, что X  работает только в Form1->MouseMove. В любом другом событии формы Xa нету. Откуда это можно узнать? Посмотрите на заголовок функции и вы увидите параметры, которые в нее передаются.

 Вы увидите параметры, которые передаются в это событие библиотекой Билдера, напрямую взаимодействующей с Windows API. Как вы видите, передаваемые параметры X,Y и Button. Как пользоваться MouseButtonом ? Все просто как апельсин – этот параметр означает нажата ли кнопка мыши и какая именно кнопка была нажата.

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

Автодозапись.

 Билдер может подсказывать какие свойства у объекта есть: вы можете написать имя объекта, поставить стрелочку и, если вы прождете пару секунд, Билдер вам покажет, какие у этого объекта есть свойства т вы можете их и вообще не знать наизусть, разумеется, если вы знаете английский язык.

Будем считать, что как-то худо бедно со структурой самого Билдера мы уже познакомились.

 

 

 
 
Hosted by uCoz