Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Компонент TbitBtn






Компонент TBitBtn розташований на сторінці Additonal палітри компонентів і являє собою різновид стандартної кнопки TBotton. Його відмінна риса - наявність растрового зображення на поверхні кнопки, що визначається властивістю Clyph. Крім того, мається властивість Kind, що задає одну з 11 стандартних різновидів кнопок. Натискання будь-якої з них, крім bkCustom і bkHelp закриває модальне вікно і повертає в програму результат mr*** (наприклад bkOk - mrOk). Кнопка bkClose закриває головне вікно і завершує роботу npoграммы.

5. Обробка подій

Про усіх подіях, що відбуваються, таких, як створення форми, натискання кнопки миші або клавіатури і т.д., ядро Windows інформує вікна шляхом посилки відповідних повідомлень. Середовище DELPHI дозволяє приймати й обробляти більшість таких повідомлень. Кожен компонент містить обробники повідомлень на сторінки Events інспектори об'єктів.

Для створення обробника події необхідно розкрити список компонентів у верхній частині вікна інспектора об'єктів і вибрати необхідний компонент. Потім, на сторінці Events, натисканням лівої клавіші миші вибрати обробник і двічі клацнути по його лівій (білої) частини. У відповідь DELPHI активізує вікно тексту програми і покаже заготовку процедури обробки обраної події.

Кожен компонент має свій набір обробників подій, однак деякі з них властиві більшості компонентів. Найбільше часто застосовувані події представлені в табл. 8.1.

Таблиця 8.1

Подія Опис події
OnActivate Форма одержує цю подію при активації
OnCreate Виникає при створенні форми (компонент TForm). В обробникі даної події варто задавати дії, що повинні відбуватися в момент створення форми, наприклад установка початкових значень
OnKey Press Виникає при натисканні кнопки на клавіатурі. Параметр Key має тип Char і містить ASCII-код натиснутою клавішею (клавіша Enter клавіатури має код #13, клавіша Esc - #27 і т.д.). Звичайно ця подія використовується в тому випадку, коли необхідна реакція на натискання однієї з клавіш
OnKeyDown Виникає при натисканні клавіші на клавіатурі. Обробник цієї події одержує інформацію про натиснуту клавішу і стан клавіш Shift, Alt і Ctrl, а також про натиснуту кнопку миші. Інформація про клавішу передається параметром Key, що має тип Word
OnKeyUp Є парною подією для OnKeyDown і виникає при відпусканні раніше натиснутої клавіші
OnClick Виникає при натисканні кнопки миші в області компонента
OnDblClick Виникає при подвійному натисканні кнопки миші в області компонента

 

Хід виконання роботи.

 

Завдання: написати програму підрахунку числа слів у довільному рядку. Як роздільник може бути будь-яка кількість пробілів. Для введення рядків і роботи з ними використовувати ТСоmbоВох. Уведення рядка закінчувати натисканням Enter. Для виходу з програми використовувати кнопку Close.

Панель діалогу буде мати вигляд (мал.8.1). Текст програми приведений нижче.

 
 

Unit Unit1;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;

type

Tunit_Lab5 = class(TForm)

ComboBox1: TComboBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

BitBtn1: TBitBtn;

Button1: TButton;

 

Procedure FormActivate(Sender: TObject);

Procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);

Procedure ComboBox1Click(Sender: TObject);

Private

{ Private declarations }

Public

{ Public declarations }

end;

 

var

Unit_Lab5: TUnit_Lab5;

 

Implementation

{$R *.DFM}

 

// Обробка події активізації форми

Procedure TUnit_Lab5.FormActivate(Sender: TObject);

begin

ComboBox1.SetFocus; //Передача фокуса ComboBox1

end;

 

// Обробка події натискання лівої клавіші миші

Procedure TUnit_Lab5.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin

if Key =#13 then //Якщо натиснуто клавішу Enter те...

begin

// Рядок з вікна редагування заноситься в список вибору

ComboBox1.Items.Add(ComboBox1.Text);

ComboBox1.Text: = ''; //Очищення вікна редагування

end;

end;

 

Procedure TUnit_Lab5.ComboBox1Click(Sender: TObject);

var

St: string;

n, і, nst, ind: integer;

begin

n: = 0; //Містить число слів обраного рядка

//Містить кількість слів

ind: = 0;

//Визначення номера обраного рядка

nSt: = ComboBox1.ItemIndex;

//Занесення обраного рядка в перемінну st

St: = ComboBox1.Items[nst];

//Перегляд усіх символів рядка st

for i: = 1 to Length(St) do

begin

Case ind of

0: if St[і] < > '' then

begin

//Якщо зустрівся символ після пробілу

//кількістьслів збільшується на одиницю

ind: = 1;

n: = n+1;

end;

// Якщо зустрівся пробіл після символів

1: if St[i] ='' then ind: = 0;

end;

end;

 

Label3.Caption: = IntToStr(n); //Виведення кількості слів у Label3

end;

end.

Варіанти завдання

 

В усіх завданнях вихідні дані вводити за допомогою компонента TEdit у компонент TListBox або за допомогою властивості Text у властивість Items компонента рядка закінчувати натисканням клавіші Enter. Для виходу з програми використовувати кнопку Close. Для розрахунків уводити кілька різних рядків.

1. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Кожна група відокремлюється від інший одним або декількома пробілами. Знайти кількість груп з п'ятьма символами.

2. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Знайти і вивести на екран саму коротку групу.

3. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Підрахувати кількість символів у самій довгій групі.

4. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Знайти і вивести на екран групи з парною кількістю символів.

5. Дано рядок, що складаєтьсяться з груп нулів і одиниць. Підрахувати кількість одиниць у групах з непарною кількістю символів.

6. Дано рядок, що складаєтьсяться з літер, цифр, ком, крапок, знаків “+”, “-“. Виділити підрядок, що відповідає запису цілого числа (тобто починається зі знака “+” або “-” і усередині підрядка немає літер, ком і крапок).

7. Дано рядок символів, що складається з літер, цифр, ком, крапок, знаків ”+" і " -". Виділити підрядок, що відповідає записи речовинного числа з фіксованою крапкою.

8. Дано рядок символів, що складається з літер, цифр, ком, крапок, знаків ”+”і " -''. Виділити підрядок, що відповідає запису дійсного числа з крапкою, що плаває.

9. Дано рядок символів, що складається з довільних десяткових цифр, розділених пробілами. Вивести на екран числа цього рядка в порядку зростання їхніх значень.

10. Дано рядок символів, що складається з довільних десяткових цифр, розділених пробілами. Вивести парні числа цього рядка.

11. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Вивести на екран слова цього тексту в порядку, що відповідає латинському алфавітові.

12. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Вивести на екран порядковий номер слова, що накриває k-ю позицію (якщо на k-ю позицію попадає пробіл, то номер попереднього слова).

13. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Розбити вихідний рядок на двох підрідка, причому перша довжиною k символів (якщо на k-ю позицію попадає слово, то його варто віднести до другого рядка, доповнивши першу пробілами до k позицій).

14. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Вивести на екран порядковий номер слова максимальної довжини і номер позиції рядка, з яким воно починається.

15. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Вивести на екран порядковий номер слова мінімальної довжини і кількість символів у цьому слові.

16. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. У кожнім слові замінити першу літеру на прописну.

17. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Видалити перших k слів з рядка, зрушивши на їхнє місце наступні слова рядка.

18. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Поміняти місцями i-і і j-і слова.

19. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Поміняти місцями першу й останню літери кожного слова.

20. Дано рядок символів, що складається з довільного тексту англійською мовою, слова розділені пробілами. Замінити літери латинського алфавіту на відповідні їм літери російського алфавіту.

21. Дано рядок символів S1 S2 …Sm у якійможуть зустрічатися цифри, пробіли, літера " Е" і знаки " +", " -". Відомо, що перший символ S1 є цифрою. З даного рядка виділити подстроки, розділені пробілами. Визначити, чи є перший підрядок числом. Якщо так, то з'ясувати: ціле або дійсне число, додатнє або відємне.

22. Дано рядок символів, що містить деякий текст російською мовою. Розробити програму форматування цього тексту, тобто його розбивки на окремі рядки (по k символів у кожнім рядку) і вирівнювання по правій границі шляхом вставки між окремими словами необхідної кількості пробілів.

23. Дано рядок символів, що містить деякий текст російською мовою. Замінити літери російського алфавіту на відповідні їм літери латинського алфавіту.

24. Дано рядок символів, що містить деякий текст. Розробити програму, що визначає, чи є даний текст паліндромом, тобто чи читається він ліворуч праворуч так само, як і праворуч ліворуч (наприклад, “А троянда упала на лапу Азора”).

25. Скласти програму, що читає по рядках текст іншої програми (увести з клавіатури) мовою Pascal, виявляє коментарі і виводить них на екран.

26. Скласти програму, що читає по рядках текст іншої програми (увести з клавіатури) мовою Pascal, підраховує кількість ключових слів “begin” і “end” і виводить на екран відповідне повідомлення.

27. Скласти програму, що задане число від 1до 1999 виводить на екран римськими цифрами.

28. Дано текст із заголовних латинських літер. Визначити, чи є цей текст правильним записом римськими цифрами від 1 до 999, і, якщо є, вивести на екран це число арабськими цифрами в десятковій системі.

29. Дано текст із k символів. Вивести на екран тільки рядкові російські літери, що входять у цей текст.

30. Дано текст із k символів. Вивести на екран за абеткою всі різні прописні російські літери, що входять у цей текст.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.