Создание процедуры-обработчики события нажатия клавиши «мыши» ComboBox1Click 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Создание процедуры-обработчики события нажатия клавиши «мыши» ComboBox1Click



Создание процедуры procedure TForm1.ComboBox1Click(Sender: TObject) выполняется аналогично процессу создания процедуры-обработчика события OnKeyPress компонента ComboBox1 (см. раздел 7.3.4).

Пользуясь текстом модуля UnStr, наберите операторы, которые осуществляют основной алгоритм обработки символов выбранной строки.

7.3.6. Работа с приложением

Запустите созданное приложение. Занесите с помощью окна редактирования исходные данные в список выбора компонента ComboBox1. Ввод каждой строки завершайте нажатием клавиши Enter. Далее раскройте список выбора, щелкните «мышью» по нужной строке в результате будет определено количество слов в строке и произойдет замена строчных букв прописными.

Преобразование строчных букв в прописные основано на том, что код строчной буквы больше кода прописной. Код прописных букв от «а» до «я» больше соответствующих строчных букв на 32 (см. таблицу кодов Ansi). Например, код символа «а» равен 224, а код символа «А» 192. Эта закономерность сохраняется и для остальных букв русского алфавита.

Текст модуля UnStr

Unit UnStr;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons;

Type

TForm1 = class(TForm)

Label1: TLabel;

ComboBox1: TComboBox;

Label2: TLabel;

Label3: TLabel;

BitBtn1: TBitBtn;

Label4: TLabel;

Label5: TLabel;

procedure FormActivate(Sender: TObject);

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

procedure ComboBox1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Var

Form1: TForm1;

Implementation

{$R *.DFM}

// Обработка события активизации Формы

procedure TForm1.FormActivate(Sender: TObject);

Begin

ComboBox1.SetFocus;

end;

// Обработка события ввода символа и нажатия клавиши Enter

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);

Begin

// если нажата клавиша Enter, то строка из поля редактирования

// переносится в список выбора ComboBox1

if key=#13 then

Begin

ComboBox1.Items.Add(ComboBox1.Text);

ComboBox1.Text:=''; // очистка окна редактирования

end;

end;

// Обработка события нажатия клавиши «мыши» в списке выбора

procedure TForm1.ComboBox1Click(Sender: TObject);

Var

st: string;

n,i,nst,ind: integer;

Begin

n:=0; // n содержит количество слов

ind:=0;

nst:=ComboBox1.ItemIndex; // определение номера выбранной строки

st:=ComboBox1.Items[nst]; // st присваивается выбранная строка

// Определение количества слов в выбранной строке st

for i:=1 to Length(st) do

case ind of

0: if st[i]<>' ' then //если встретился символ

Begin

ind:=1;

n:=n+1; //количество слов увеличивается на единицу

end;

1: if st[i]=' ' then //если встретился пробел

ind:=0;

end;

Label3.Caption:=IntTotr(n); //вывод количества слов в Label3

// Замена строчных символов русского языка на прописные

for i:=1 to Length(st) do

if (st[i]>='а') and (st[i]<='я') then

st[i]:=chr(ord(st[i])-32);

Label5.Caption:=st; //полученная строка выводится в Label5

end;

End.

7.5. Выполнение индивидуального задания

Во всех заданиях исходные данные вводить с помощью компонента Edit в компонент ListBox, либо с помощью свойства Text в свойство Items компонента ComboBox. Результат выводить с помощью компонента Label. Ввод строки заканчивать нажатием клавиши Enter. Работа приложения должна завершаться нажатием кнопки Close.

Индивидуальные задания

1. Дана строка символов, содержащая буквы русского и латинского алфавита. Верно ли, что в этой строке содержится четное количество строчных латинских букв. Вывести на экран соответствующее сообщение.

2. Дана строка символов. Заменить все последовательности символов 'on' на 'online' и вывести новую строку (если искомой последовательности в строке нет, то вывести соответствующее сообщение).

3. Дана строка символов, содержащая буквы и цифры. Определить чего больше – цифр или букв. Вывести на экран соответствующее сообщение.

4. Дана строка, состоящая из букв, цифр, запятых, точек. Заменить каждую точку многоточием и вывести новую строку.

5. Дана строка символов, состоящая из букв, цифр, запятых, точек. Удалите из данной последовательности все цифры. Полученную строку вывести на экран.

6. Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. Преобразовать последовательность, заменив пробелы между словами на символ звездочки *.

7. Строка символов содержит только цифры. Вывести на экран номера позиций цифры, заданной пользователем.

8. Дана строка символов, среди которых есть двоеточия. Выведите в Memo все символы, расположенные до первого двоеточия.

9. Дана строка символов, содержащая заглавные латинские буквы. Определить, упорядочены ли эти буквы по алфавиту.

10. Дана символьная строка и слово, состоящее из четырех символов. Определить, есть ли в данной строке все буквы данного слова. Вывести соответствующее сообщение.

11. Дана символьная строка. Заменить все символы '!' точками, кроме первого и вывести полученную строку.

12. Дана символьная строка. Определить является ли данная последовательность записью двоичного числа (т.е. содержит только нули и единицы).

13. Дана строка символов, состоящая из произвольного текста на английском языке. Заданный текст распечатайте по строкам, понимая под строкой часть текста до точки включительно.

14. Дана строка символов. Подсчитайте сколько среди них латинских заглавных букв.

15. Дана символьная строка, содержащая два предложения, каждое из которых заканчивается точкой. Поменять их местами, сохранив порядок слов в предложениях.

16. Дана символьная строка. Слово – последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить длину самого короткого слова.

17. Дана символьная строка. Слово – последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить количество слов заданной длины.

18. Дана строка символов. Определить количество букв 'Я' между самой левой открывающейся скобкой и самой правой закрывающейся скобкой (если какие-либо скобки отсутствует, то вывести соответствующее сообщение).

19. Дана символьная строка. Слово – последовательность символов между пробелами, не содержащая пробелы внутри себя. Заменить окончания слов 'ing' на 'ed' и вывести полученную строку.

20. Даны две символьные строки. Слово – последовательность символов между пробелами, не содержащая пробелы внутри себя. Вывести слова, которые встречаются в обеих строках.

21. Дана символьная строка. Слово – последовательность символов между пробелами, не содержащая пробелы внутри себя. Отредактировать заданное предложение, удаляя из него слова с нечетными номерами и переворачивая слова с четными (пример, «нow do you do» ¨ «od od»).

22. Дана символьная строка. Слово – последовательность символов между пробелами, не содержащая пробелы внутри себя. Переставить и распечатать слова заданной строки в алфавитном порядке по первой букве.

23. Дана символьная строка и символ. Слово – последовательность символов между пробелами, не содержащая пробелы внутри себя. Вывести все слова, в которых есть заданный символ.

24. Дана строка символов, содержащая некоторый текст. Разработать программу, которая определяет, является ли данный текст палиндромом, т.е. читается ли он слева направо так же, как и справа налево (например, «А роза упала на лапу Азора»).

25. Составить программу, которая читает построчно текст другой программы (ввести с клавиатуры) на языке Pascal, обнаруживает комментарии и выводит их на экран.

26. Составить программу, которая читает построчно текст другой программы (ввести с клавиатуры) на языке Pascal, подсчитывает количество ключевых слов «begin» и «end», и выводит на экран соответствующее сообщение.

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

28. Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков «+» и «–». Выделить подстроку, которая соответствует записи целого числа (т.е. начинается со знака «+» или «–» и внутри подстроки нет букв, запятых и точек).

29. Дана строка символов, состоящая из произвольных десятичных цифр, разделенных пробелами. Вывести на экран числа этой строки в порядке возрастания их значений.

30. Дана строка символов, состоящая из произвольного текста на английском языке, слова отделены пробелами. Вывести на экран порядковый номер слова максимальной длины и номер позиции строки, с которой оно начинается.


Лабораторная работа № 8. ПРОГРАММИРОВАНИЕ

С ИСПОЛЬЗОВАНИЕМ ЗАПИСЕЙ

Цель работы: овладение навыками создания приложений, обрабатывающие данные типа Запись.



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 616; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.70.203 (0.014 с.)