48057 (Побудова клавіатурного тренажера), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Побудова клавіатурного тренажера", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48057"

Текст 2 страницы из документа "48057"

Для мітки Label колір і шрифт – єдині доступні елементи оформлення напису. Компоненти StaticText і Panel мають окрім того властивість BorderStyle, що визначає рамку тексту – бордюр. На рис. 7 ви можете побачити впливи бордюру на елементи StaticText і Panel.

Рис. 7. Приклад застосування компонентів Label, StaticText і Panel.

На рис. 8 можна побачити приклади вікон редагування Edit і MaskEdit. У даних елементах, текст, що вводиться і виводиться, міститься у властивості Text. Вікна редагування можна використовувати і як компоненти відображення тексту. Для цього треба встановити в true їх властивість ReadOnly.

Рис. 8. Приклад застосування елементів Edit і MaskEdit.

На рис. 9 показані приклади кнопок Button і BitBtn. Простою і найчастіше використовуваною кнопкою є кнопка Button. Рідше використовується кнопка BitBtn, яка відрізняється можливістю зобразити на її поверхні зображення. Більшість властивостей, методів і подій у цих кнопок однакові. Основна властивість кнопки – Caption, за допомогою якої можна вивести любий напис на кнопці.

Основна подія будь-якої кнопки – OnClick, виникає при натисненні на ній. Саме в обробнику цієї події записуються оператори, які повинні виконуватися при натисканні користувача на кнопці.

Зображення на кнопці BitBtn задається властивістю Glyph. Положення зображення по відношенню до напису визначається властивістю Layout, яка може приймати значення: blGlyphLeft – зліва, це значення прийняте за замовчуванням, BlGlyphRight – справа, blGlyphTop – вгорі, blGlyphBottom – внизу.

Рис. 9. Приклад застосування компонентів Button і BitBtn.

Радіокнопки утворюють групи взаємозв'язаних індикаторів, з яких може бути вибраний тільки один. Приклади розміщення радіокнопок ви можете побачити на рис. 10.

RadioGroup – це панель, яка може містити регулярно розташовані стовпцями і рядками радіокнопки. Напис у верху панелі визначається властивістю Caption. А написи кнопок і їх кількість визначаються властивістю Items.

Визначити, яку з кнопок вибрав користувач, можна по властивості ItemIndex, яка показує індекс вибраної кнопки. За замовчуванням ItemIndex = -1, що означає відсутність вибраної кнопки.

Рис. 10. Приклад застосування компонентів RadioGroup, RadioButton,GroupBox и CheckBox

Панель GroupBox виглядає на формі так само, як RadioGroup, і напис в її верхньому лівому кутку так само визначається властивістю Caption. Ця панель сама по собі порожня. Її призначення – служити контейнером для інших управляючих елементів, зокрема, для радіокнопок RadioButton.

Розглянемо властивості радіокнопки RadioButton. Властивість Caption містить напис, що з'являється біля кнопки. Властивість Checked визначає, вибрана дана кнопка користувачем, чи ні. Якщо Checked рівне true, то кнопка вибрана, якщо false, то ні.

Розміщення кнопок 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

#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='к';

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5140
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее