на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Побудова клавіатурного тренажера
озміщення кнопок RadioButton в панелі GroupBox, як можна бачити з рис. 10 дає велику свободу в порівнянні з компонентом RadioGroup і дозволяє розмістити кнопки не регулярно.

Індикатори з прапорцем CheckBox (рис. 10) використовуються в проектах в основному для того, щоб користувач міг вмикати чи вимикати якісь опції. Основна властивість State має два значення: cbChecked - компонент виділений, cbUnchecked - компонент не виділений. Перевіряти стан індикатора можна не тільки із значення властивості State, але і по значенню властивості Checked. Якщо Checked рівне true, то індикатор вибраний, якщо false, то ні.

В С++ Builder є два компоненти, за допомогою яких можна розробити меню: MainMenu - головне меню, і PopupMenu - спливаюче меню.

Компонент MainMenu - це невізуальний компонент. Основна властивість компоненту - Items. Його заповнення відбувається за допомогою конструктора меню, що викликається подвійним натисканням на компоненті MainMenu. В результаті відкриється вікно, вид якого показаний на рис. 11. При роботі в конструкторі меню нові розділи можна вводити, поміщаючи курсор в рамку, яка вказує місце розташування нового розділу.

Рис. 11. Вид вікна при створенні меню

Рис. 12. Приклад застосування компоненту MainMenu

Компонент Timer дозволяє задавати в проекті інтервали часу. Таймер - невізуальний компонент. Він має дві властивості, які ним керують: Interval - інтервал часу в мілісекундах і Enabled - доступність.

Якщо задати Interval = 0 або Enabled = false, то таймер перестає працювати. Щоб запустити відлік часу треба або задати Enabled = true, якщо встановлене позитивне значення Interval, або задати позитивне значення Interval, якщо Enabled = false.

Наприклад, якщо потрібно, щоб через 5 секунд після запуску проекту закрилася форма - заставка, що відображає логотип проекту, на ній треба розмістити таймер, задати в ньому інтервал Interval = 5000, а в обробник події OnTimer вставити оператор Close, що закриває вікно форми.

Робота з графікою GDI

Часто виникає потреба прикрасити свій проект картинками. Це може бути графічна заставка, що є логотипом вашого проекту, можуть бути чиїсь фотографії, картинки, графіка.

Почнемо знайомство з компоненту Image. Його властивість, яка може містити картинку - Picture. Вона дозволяє відкрити який-небудь графічний файл (кнопка Load), а також зберегти відкритий файл під новим ім'ям або в новому каталозі. На рис. 13 зображене завантаження файлу.

Рис. 13. Вікно завантаження картинки компоненту Image.

Після завантаження файлу натисніть на ОК, і у вашому компоненті Image відобразиться вибрана вами картинка.

Коли ви в процесі проектування завантажили картинку з файлу в компонент Image, він не просто відображає її, але і зберігає в проекті. Це дає вам можливість поставляти ваш проект без окремого графічного файлу.

Якщо встановити властивість AutoSize в true, то розмір компоненту Image автоматично підганятиметься під розмір компоненту. Якщо ж властивість AutoSize встановлена в false, то зображення може не поміститися в компонент або, навпаки, площа компоненту може виявитися набагато більша площі зображення.

Властивість - Stretch дозволяє підганяти не компонент під розмір малюнка, а малюнок під розмір компоненту. Встановіть AutoSize в false, розтягніть або стисніть розмір компоненту Image і встановіть Stretch в true. Ви побачите, що малюнок займе всю площу компоненту, але оскільки навряд чи реально встановити розміри Image точно пропорційними розміру малюнка, то зображення спотвориться. Встановлювати Stretch в true може мати сенс тільки для якихось узорів, але не для картинок.

Властивість - Center, встановлене в true, центрує зображення на площі Image, якщо розмір компоненту більше розміру малюнка. Ще одна властивість - Transparent (прозорість). Якщо Transparent рівне true, то зображення Image стає прозорим. Це можна використовувати для накладення зображень одне на одне.

Багато компонентів в С++ Builder мають властивість Canvas, що є областю компоненту, на якій можна малювати або відображати готові зображення. Цю властивість мають форми, графічні компоненти Image, PaintBox, Bitmap і багато інших.

Практична частина

Опис програми

Середовищем розробки був вибраний інструментарій C++ Builder 6. Програма складається з 3 основних модулів лістинг яких буде приведений нижче.

Програма клавіатурний тренажер зроблена для того щоб поліпшити свої навики по набору тексту на клавіатурі.

В опціях користувач може вибрати собі режим тренування, а саме:

· встановити мову (англійську, українську чи російську);

· рівень складності (початківець чи професіонал);

· час тренування (встановлюється у секундах).

За замовчуванням режим встановлено так: мова - англійська, рівень складності - початківець, час тренування - 30 секунд.

Лістинг програми

Лістинг 1. (Unit1.cpp)

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

int rezhim=1,rivenj=1,chas=30,chas1=0,min=0,sec=0,NoCorect=0,Corect=0;

String slitera,skey;

TTrainForm *TrainForm;

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

__fastcall TTrainForm::TTrainForm(TComponent* Owner)

: TForm(Owner)

{

}

//Нижче представлена функція випадковим чином вибирає англійську літеру, яка буде падати

String EngWord(){

int rr; String ll;

randomize;

rr=random(26);

switch(rr){

case 0: return ll='q';

case 1: return ll='w';

case 2: return ll='e';

case 3: return ll='r';

case 4: return ll='t';

case 5: return ll='y';

case 6: return ll='u';

case 7: return ll='i';

case 8: return ll='o';

case 9: return ll='p';

case 10: return ll='a';

case 11: return ll='s';

case 12: return ll='d';

case 13: return ll='f';

case 14: return ll='g';

case 15: return ll='h';

case 16: return ll='j';

case 17: return ll='k';

case 18: return ll='l';

case 19: return ll='z';

case 20: return ll='x';

case 21: return ll='c';

case 22: return ll='v';

case 23: return ll='b';

case 24: return ll='n';

case 25: return ll='m';

}

};

//Нижче представлена функція випадковим чином вибирає українську літеру, яка буде падати

String UkrWord(){

int rr; String ll;

randomize;

rr=random(32);

switch(rr){

case 0: return ll='й';

case 1: return ll='ц';

case 2: return ll='у';

case 3: return ll='к';

case 4: return ll='е';

case 5: return ll='н';

case 6: return ll='г';

case 7: return ll='ш';

case 8: return ll='щ';

case 9: return ll='з';

case 10: return ll='х';

case 11: return ll='ї';

case 12: return ll='ф';

case 13: return ll='і';

case 14: return ll='в';

case 15: return ll='а';

case 16: return ll='п';

case 17: return ll='р';

case 18: return ll='о';

case 19: return ll='л';

case 20: return ll='д';

case 21: return ll='ж';

case 22: return ll='є';

case 23: return ll='я';

case 24: return ll='ч';

case 25: return ll='с';

case 26: return ll='м';

case 27: return ll='и';

case 28: return ll='т';

case 29: return ll='ь';

case 30: return ll='б';

case 31: return ll='ю';

}

};

//Нижче представлена функція випадковим чином вибирає російську літеру, яка буде падати

String RusWord(){

int rr; String ll;

randomize;

rr=random(33);

switch(rr){

case 0: return ll='й';

case 1: return ll='ц';

case 2: return ll='у';

case 3: return ll='к';

case 4: return ll='е';

case 5: return ll='н';

case 6: return ll='г';

case 7: return ll='ш';

case 8: return ll='щ';

case 9: return ll='з';

case 10: return ll='х';

case 11: return ll='ъ';

case 12: return ll='ф';

case 13: return ll='ы';

case 14: return ll='в';

case 15: return ll='а';

case 16: return ll='п';

case 17: return ll='р';

case 18: return ll='о';

case 19: return ll='л';

case 20: return ll='д';

case 21: return ll='ж';

case 22: return ll='э';

case 23: return ll='я';

case 24: return ll='ч';

case 25: return ll='с';

case 26: return ll='м';

case 27: return ll='и';

case 28: return ll='т';

case 29: return ll='ь';

case 30: return ll='б';

case 31: return ll='ю';

case 32: return ll='ё';

}

};

void __fastcall TTrainForm::N5Click(TObject *Sender)

{

TrainForm->Close();

}

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

void __fastcall TTrainForm::N6Click(TObject *Sender)

{

Application->MessageBoxA("Програма Клавіатурний Тренажер","Про Програму...",MB_OK);

}

//Під час запуску програми будуть сховані всі компоненти--------------------

void __fastcall TTrainForm::FormCreate(TObject *Sender)

{

Timer1->Enabled=false;

Timer2->Enabled=false;

Options->Hide();

TrainUkr->Hide();

TrainRus->Hide();

TrainEng->Hide();

PTimer->Hide();

}

//Зчитуємо дані, які задав користувач на вкладці Опції----------------------

void __fastcall TTrainForm::Button1Click(TObject *Sender)

{

if (ukrainian->Checked==true)

rezhim=2; else

if (russian->Checked==true)

rezhim=3; else rezhim=1;

if (prof->Checked==true)

rivenj=2; else rivenj=1;

chas=StrToInt(time->Text);

Options->Hide();

}

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

void __fastcall TTrainForm::N7Click(TObject *Sender)

{

Application->MessageBoxA("Програму розробив студент ІІ курсу Факультета інформатики Шанта А. П.","Про Автора...",MB_OK);

}

//Після вибору Файл->Тренажер виконується наступне----------------------------

void __fastcall TTrainForm::N4Click(TObject *Sender)

{

TrainUkr->Hide();

TrainRus->Hide();

TrainEng->Hide();

Options->Hide();

Application->MessageBoxA("Натисніть Enter, щоб розпочати тренування"," Увага!",MB_OK);

PTimer->Show(); sec=0; min=0; Timer1->Enabled=true;

Timer2->Enabled=true;

Pravilno->Caption=0; Corect=0;

NePravilno->Caption=0; NoCorect=0;

if (rezhim==1) {

TrainUkr->Hide();

TrainRus->Hide();

Options->Hide();

LiteraEng->Top=8;

}

if (rezhim==2){

LiteraUkr->Top=8;

TrainRus->Hide();

TrainEng->Hide();

Options->Hide();

}

if (rezhim==3){ LiteraRus->Top=8;

TrainUkr->Hide();

TrainEng->Hide();

Options->Hide();

}

if (rivenj==1) Timer2->Interval=11; else Timer2->Interval=4;

sec=0; min=0; chas1=0;

//-----Нижче оформлений процес падання української літери

//-----та підсвітка падаючої літери на віртуальній клавіатурі

if (rezhim==2){

TrainUkr->Show();

LiteraUkr->Show();

int LeftRan;

Randomize;

LeftRan=random(623)+8;

LiteraUkr->Left=LeftRan;

slitera=UkrWord();

LiteraUkr->Caption=slitera;

if (slitera=='й') q1->Font->Color=clRed; else q1->Font->Color=clBlack;

if (slitera=='ц') w1->Font->Color=clRed; else w1->Font->Color=clBlack;

if (slitera=='у') e1->Font->Color=clRed; else e1->Font->Color=clBlack;

if (slitera=='к') r1->Font->Color=clRed; else r1->Font->Color=clBlack;

if (slitera=='е') t1->Font->Color=clRed; else t1->Font->Color=clBlack;

if (slitera=='н') y1->Font->Color=clRed; else y1->Font->Color=clBlack;

if (slitera=='г') u1->Font->Color=clRed; else u1->Font->Color=clBlack;

if (slitera=='ш') i1->Font->Color=clRed; else i1->Font->Color=clBlack;

if (slitera=='щ') o1->Font->Color=clRed; else o1->Font->Color=clBlack;

if (slitera=='з') p1->Font->Color=clRed; else p1->Font->Color=clBlack;

if (slitera=='х') p11->Font->Color=clRed; else p11->Font->Color=clBlack;

if (slitera=='ї') p111->Font->Color=clRed; else p111->Font->Color=clBlack;

if (slitera=='ф') a1->Font->Color=clRed; else a1->Font->Color=clBlack;

if (slitera=='і') s1->Font->Color=clRed; else s1->Font->Color=clBlack;

if (slitera=='в') d1->Font->Color=clRed; else d1->Font->Color=clBlack;

if (slitera=='а') f1->Font->Color=clRed; else f1->Font->Color=clBlack;

if (slitera=='п') g1->Font->Color=clRed; else g1->Font->Color=clBlack;

if (slitera=='р') h1->Font->Color=clRed; else h1->Font->Color=clBlack;

if (slitera=='о') j1->Font->Color=clRed; else j1->Font->Color=clBlack;

if (slitera=='л') k1->Font->Color=clRed; else k1->Font->Color=clBlack;

if (slitera=='д') l1->Font->Color=clRed; else l1->Font->Color=clBlack;

if (slitera=='ж') l11->Font->Color=clRed; else l11->Font->Color=clBlack;

if (slitera=='є') l111->Font->Color=clRed; else l111->Font->Color=clBlack;

if (slitera=='я') z1->Font->Color=clRed; else z1->Font->Color=clBlack;

if (slitera=='ч') x1->Font->Color=clRed; else x1->Font->Color=clBlack;

if (slitera=='с') c1->Font->Color=clRed; else c1->Font->Color=clBlack;

if (slitera=='м') v1->Font->Color=clRed; else v1->Font->Color=clBlack;

if (slitera=='и') b1->Font->Color=clRed; else b1->Font->Color=clBlack;

if (slitera=='т') n11->Font->Color=clRed; else n11->Font->Color=clBlack;

if (slitera=='ь') m1->Font->Color=clRed; else m1->Font->Color=clBlack;

if (slitera=='б') m11->Font->Color=clRed; else m11->Font->Color=clBlack;

if (slitera=='ю') m111->Font->Color=clRed; else m111->Font->Color=clBlack;

};

//-----Нижче оформлений процес падання російської літери

//-----та підсвітка падаючої літери на віртуальній клавіатурі

if (rezhim==3){

TrainRus->Show();

Страницы: 1, 2, 3



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