16597

Многооконный интерфейс. Управление объектами с помощью клавиш

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа 1 Многооконный интерфейс. Управление объектами с помощью клавиш. Цель работы: Создать программу которая позволяет пользователю управлять объектом с помощью стрелок на клавиатуре а также позволяет менять цвет этого объекта посредством выбора цве

Русский

2013-06-22

136 KB

3 чел.

Лабораторная работа 1

Многооконный интерфейс. Управление объектами с помощью клавиш.

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

Общий вид программы следующий:

Здесь мы видим следующие элементы управления:

«Показать цвета» - Показывает палитру для изменения цвета фигуры (Рис.1)

«Показать формы» - Показывает окно для выбора формы фигуры (Рис.2)

«Координаты центра» - Показывает текущие координаты центра фигуры

Рисунок 1

Рисунок 2

Код программы:

Unit1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"    //Связывание различных форм

#include "Unit2.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender) //Кнопка показать цвета

{

Form2->Show();       //Показать форму

Button1->Hide();       //Спрятать кнопку

} 

//---------------------------------------------------------------------------

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,

     TShiftState Shift)

{

switch(Key){        //Множественный выбор

case VK_LEFT: Shape1->Left = Shape1->Left-5; break; //Стрелка влево

case VK_UP: Shape1->Top = Shape1->Top-5; break;  //Вверх

case VK_RIGHT: Shape1->Left = Shape1->Left+5;  break; //Вправо

case VK_DOWN:Shape1->Top = Shape1->Top+5; break; //Вниз

}

Label1->Caption = "X=" + IntToStr(Shape1->Left + Shape1->Width/2); //Координаты

Label2->Caption = "Y=" + IntToStr(Shape1->Top + Shape1->Height/2 ); //в Label

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{ Shape1->Left = 0;     //Начальные координаты объекта

Shape1->Top = 0;

Label1->Caption = "X=" + IntToStr(Shape1->Left + Shape1->Width/2);

Label2->Caption = "Y=" + IntToStr(Shape1->Top + Shape1->Height/2 );

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form3->Show();

Button2->Hide();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Label3Click(TObject *Sender) //При нажатии на надпись

{         //Появляются обе кнопки

Button1->Show();

Button2->Show();

}

//---------------------------------------------------------------------------

Unit2.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "CGRID"

#pragma resource "*.dfm"

TForm2 *Form2;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

void __fastcall TForm2::CColorGrid1MouseUp(TObject *Sender,

     TMouseButton Button, TShiftState Shift, int X, int Y)

{

  if(Button == mbLeft)    //При нажатии мышью меняется цвет

  {

     Form1->Shape1->Brush->Color = CColorGrid1->ForegroundColor;

  }

}

//---------------------------------------------------------------------------

Здесь происходит обращение к форме, а точнее к цвету объекта на форме 1 и он заменяется на цвет выбранный в ColorGrid

Unit3.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"

#include "Unit2.h"

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm3 *Form3;

//---------------------------------------------------------------------------

__fastcall TForm3::TForm3(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm3::RadioGroup1Click(TObject *Sender)

{

switch(RadioGroup1->ItemIndex)   //Выбор формы, просто RadioGroup

{

case 0: Form1->Shape1->Shape = stCircle;   //Круг

        Form1->Shape1->Width = 80; break;

case 1: Form1->Shape1->Shape = stSquare;   //Квадрат

        Form1->Shape1->Width = 80; break;

case 2: Form1->Shape1->Shape = stRoundRect;  //Квадрат с закруг. углами

        Form1->Shape1->Width = 80; break;

case 3: Form1->Shape1->Shape = stEllipse;  //Элипс

        Form1->Shape1->Width = 160; break;   //Приходиться менять ширину

}       //т.к. эллипс в квадрате это круг

}

//---------------------------------------------------------------------------

void __fastcall TForm3::FormCreate(TObject *Sender)

{

RadioGroup1->ItemIndex = 0;   //Начальное значение – т.е. круг

}

//---------------------------------------------------------------------------

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


 

А также другие работы, которые могут Вас заинтересовать

29408. Взрывозащищенное электрооборудование 43.5 KB
  Взрывозащищенное электрооборудование различается по уровню взрывозащиты группам и температурным классам. Установлены следующие уровни взрывозащиты электрооборудования: 1. Вид взрывозащиты определяется установленным набором средств взрывозащиты. Для взрывозащищенного электрооборудования установлены следующие виды взрывозащиты: Взрывонепроницаемая оболочка [d].
29409. Дизель-электрический привод буровых установок 28 KB
  В последние годы существует тенденция расширения номенклатуры и объемов производства буровых установок с дизельэлектрическим приводом. Переход к автономному энергоснабжению позволяет решить проблему энергоснабжения удаленных от базы буровых установок проблему слабых сетей решить проблему повышения установленной мощности главных и вспомогательных приводов на буровых установках и др. Перечисленные недостатки системы ГД затрудняют ее использование в морских буровых установках.
29410. МАШИНЫ ПОСТОЯННОГО ТОКА 56.5 KB
  Она состоит из неподвижного статора и вращающегося якоря в машинах переменного тока вращающаяся часть – ротор. Коммутация – это процесс переключения секций обмотки якоря из одной параллельной ветви в другую и связанные с этим явления. Концы секций припаивают к пластинам коллектора что образует замкнутую обмотку якоря. Коллектор набран из медных пластин клинообразной формы изолированных друг от друга и корпуса и образующих в сборе цилиндр который крепится на валу якоря.
29411. Характеристика электрооборудования во взрывоопасных зонах в нефтяной и газовой промышленности (НГП) 35 KB
  Взрывоопасной зоной называют помещение или ограниченное пространство в помещении или наружной установке в которых имеются или могут образовываться взрывоопасные смеси. Взрывоопасные смеси горючих газов с воздухом или смеси легковоспламеняющихся жидкостей с воздухам согласно правилам устройства электроустановок ПУЭ классифицируются по категориям I II IIA IIB IIC и группам T1T6. Например ко II категории взрывоопасной смеси относятся промышленные газы и пары к I категории – рудничный газ. Безопасный экспериментальный...
29412. Климатические условия эксплуатации и условия размещения электрооборудования 26.5 KB
  Электрооборудование предназначенное для эксплуатации на суше и реках в районах с умеренным климатом имеет обозначение У; с холодным климатом ХЛ; сухим и влажным тропическим Т; для всех макроклиматических районов на суше О. Электрооборудование предназначенное для установки в районах с умеренно холодным морским климатом имеет обозначение М; с тропическим морским ТМ. В зависимости от условий размещения предусматривается различное исполнение электрооборудования которому также присваивается определенное обозначение....
29414. Бюджетный дефицит и государственный долг: основные определения, показатели и проблемы количественной оценки. Государственный долг и дефицит платежного баланса. Влияние государственного долга на накопление частного капитала 50 KB
  Бюджетный дефицит и государственный долг: основные определения показатели и проблемы количественной оценки. Государственный долг и дефицит платежного баланса. Превышение расходов государства над его доходами образует бюджетный дефицит БД. Подавляющее большинство стран сводит свой бюджет с дефицитом.
29415. Ключевые макроэкономические проблемы российской экономики 67 KB
  Можно сделать вывод: главная причина ошибочности социальноэкономической политики – использование экономики России стандартных макроэкономических рецептов разработанных для стран с типом экономики зеркально противоположным российскому. Поэтому напрашивается первый рецепт долгосрочной политики – сделать диверсификацию экономики главной целью политики государства. Макроэкономические проблемы российской экономики АЛЕКСЕЙ КУДРИН министр финансов РФ выбрал более менее доступное там много Снижение конкурентоспособности К началу 2007 г.
29416. Теоретические подходы к моделированию инфляционных процессов. Типы и виды инфляции. Темп инфляции и его колебания. Возможности инфляционного финансирования дефицита гос. бюджета 1.32 MB
  Темп инфляции и его колебания Инфляция inflation от итальянского слова inflatio что означает вздутие представляет собой устойчивую тенденцию роста общего уровня цен. В этом определении важны следующие слова: 1 устойчивая что означает что инфляция – это длительный процесс устойчивая тенденция и поэтому ее следует отличать от скачка цен; 2 общего уровня цен. Это значит что инфляция не означает роста всех цен в экономике. Цены на отдельные товары могут вести себя поразному: повышаться понижаться оставаться без...