Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Некоторые свойства и события компонентов ⇐ ПредыдущаяСтр 4 из 4
В этом разделе представленные свойства и события часто встречающиеся у различных компонентов. Некоторые свойства компонентов
Некоторые события компонентов
В событиях, связанных с нажатием клавиш (OnKeyPress, OnKeyDown, OnKeyUp и др.), для определения нажатой клавиши используется параметр Key. Коды некоторых клавиш представлены ниже. Например, в обработчике события реакцию на нажатие клавиши Enter можно оформить следующим образом:
if (Key == 13)... или if (Key == VK_RETURN)...
Коды некоторых больших латинских букв совпадают с кодами клавиш, поэтому проверку на нажатие клавиши с буквой можно оформить следующим образом:
if (Key == ‘A’)...
Коды некоторых клавиш
Список рекомендуемой литературы
1. Павловская, Т.А., Щупак, Ю.А. C/C++. Программирование на языке высокого уровня: структурное программирование: практикум: учеб. для вузов/ Т.А.Павловская, Ю.А.Щупак – М.: Питер, 2002 – 238 с. 2. Прата, С. Язык программирования C++: Лекции и упражнения: учеб.: [пер.с англ.] С. Прата – Киев: ДиаСофт, 2001 – 636 с. 3. Культин, Н.Б. Самоучитель С++ Builder./ Н.Б.Культин. – Спб.: БХВ-Петербург, 2004 – 320 с. 4. Культин, Н.Б. C/C++ в задачах и примерах./ Н.Б.Культин – СПб. и др.: BHV-Санкт-Петербуг, 2001. – 281 с. 5. Архангельский, А.Я. Интегрированная среда разработки С++Builder 5./ А.Я. Архангельский – М.: Бином, 2000 – 272 с.
Приложения
Приложение 1 Консольная программа для поиска минимального элемента в массиве и вывода его значения на экран и в файл.
//Список подключенных файлов описаний библиотеки С: #include < stdio.h> #include < conio.h> #include < math.h> #include < string.h> //--------------------------------
#pragma hdrstop #pragma argsused
//Объявление функций пользователя: int min(float *M); //Определение минимального элемента char* rus(char* st); //Перекодировка строки ANSI в ASCII //--------------------------------
//Главная функция: int main(int argc, char* argv[]) { FILE *fp; //указатель на файл int i, k, n; float mass [5], min_zn; unsigned char *str1; //Указатель на строку printf(rus(" Введите 5 элементов массива: \n" )); str1=rus(" \n Элемент %d: " ); //Прекодировка строки приглашения ввода элемента массива for (i=0; i< 5; i++) //Цикл ввода элементов массива { printf (str1, i+1); //Печать приглашения scanf (" %f", & mass[i]); //Ввод i-го элемента } k = min(mass); //Вызов функции min. //В k записывается номер минимального элемента min_zn=mass[k]; //В min_zn записывается значение //минимального элемента Продолжение приложения 1 printf(rus(" Минимальное значение min=%f" ), min_zn); //Вывод на экран минимального значения min_zn fp=fopen(" rezult.txt", " wt" ); //Создание и открытие файла rezult.txt fprintf(fp, rus(" Минимальное значение равно %f" ), min_zn); // Запись минимального значения в файл fclose(fp); //Закрытие файла printf(rus(" \n Результат выведен в файл rezult.txt" )); //Вывод на экран сообщения getche(); return 0; }
//-------------------------------------------------- //Определение функций пользователя
//Функция поиска минимального элемента в массиве. //В функцию передается адрес массива М, // возвращает номер минимального элемента int min(float *M) {int i, num=0; //i - счетчик, //num - номер минимального элемента //(предполагаем, что минимальный элемент №0) for (i=1; i< 5; i++) //цикл перебора массива М { if (M[num]> M[i]) num = i; //Если минимальный элемент (№ num) больше //другого элемента массива (№ i), то номер //минимального элемента будет i. } return num; //Возвращает значение num }
Окончание приложения 1 //Функция перекодировки строки ANSI в ASCII. //В функцию передается указатель на строку (строка), // возвращает указатель на перекодированную строку char* rus(char* st) { unsigned char* p = st; while (*p) //Пока не достигнут конец строкии... { if (*p> =192) //Если код больше или равен 192... { if (*p< =239) *p-=64; //...и меньше или равен 239, то из кода // вычитается 64... else *p-=16; //иначе вычитается 16. } p++; //Следующая буква } return st; //Возвращается указатель на строку. }
Вид окна программы представлен на рисунке.
Приложение 2 Windows–программа для поиска минимального элемента в массиве и вывода его значения на экран и в файл. Представлен только файл Unit1.cpp.
//Подключение библиотек #include < vcl.h> #include < stdio.h> #include < conio.h> //-------------------------------- #pragma hdrstop #include " Unit1.h" //--------------------------------- #pragma package(smart_init) #pragma resource " *.dfm" TForm1 *Form1; //--------------------------------- int num; //глобальная переменная //--------------------------------- __fastcall TForm1:: TForm1(TComponent* Owner) : TForm(Owner) { }
//--------------------------------- //Функция, выполняемая в момент запуска приложения //Заполняет заголовки таблицы компонента StringGrid //(событие OnCreate формы) void __fastcall TForm1:: FormCreate(TObject *Sender) { StringGrid1-> Cells[0][0]=" № Элем-а"; StringGrid1-> Cells[0][1]=" Значение"; StringGrid1-> Cells[1][0]=" 1"; StringGrid1-> Cells[2][0]=" 2"; StringGrid1-> Cells[3][0]=" 3"; StringGrid1-> Cells[4][0]=" 4"; StringGrid1-> Cells[5][0]=" 5"; } Продолжение приложения 2 //--------------------------------- //Функция обрабатывает нажатие на кнопку //«Поиск минимального значения» (событие OnClick кнопки) void __fastcall TForm1:: Button1Click(TObject *Sender) {float min; //Хранение минимального значения int i; //Счетчик num = 1; //Номер ячейки с минимальным значением min = StrToFloat(StringGrid1-> Cells[1][1]); //Записываем в переменную min значение из //ячейки (2; 2) компонента StringGrid for (i=2; i< =5; i++) { if (min> StrToFloat(StringGrid1-> Cells[i][1])) //Если минимальный элемент (min) больше //другого элемента массива (№ i), то... { min = StrToFloat(StringGrid1-> Cells[i][1]); //...присваиваем новое значение минимума, num = i; //...новый номер минимального элемента будет i. } } Edit1-> Text=StringGrid1-> Cells[num][1]; //Выводим минимальное значение Button2-> Enabled = true; //Разблокируем кнопку записи в файл }
//--------------------------------- //Функция обрабатывает нажатие на кнопку //«Сохранить в файл» (событие OnClick кнопки) void __fastcall TForm1:: Button2Click(TObject *Sender) { FILE *fp; if (SaveDialog1-> Execute()) {fp=fopen(SaveDialog1-> FileName.c_str(), " wt" ); fprintf (fp, " Минимальное значение равно %s", StringGrid1-> Cells[num][1].c_str()); fclose(fp); } } Продолжение приложения 2 //--------------------------------- //Функция блокирует кнопку сохранения в файл при вводе //данных в таблицу (событие OnEnter компонента StringGrid) void __fastcall TForm1:: StringGrid1Enter(TObject *Sender) { Button2-> Enabled=false; }
На рисунках представлены вид окна программы при разработке и после запуска, ввода данных и нажатия кнопки «Найти минимальное значение».
Окончание приложения 2
Для этой программы использовались следующие компоненты: Label1 и Label2 – вывод поясняющих сообщений на форме; Edit1 – вывод результата (минимального значения); StringGrid1 – ввод данных в массив; Button1 и Button2 – кнопки «Найти минимальный элемент» и «Сохранить в файл». В компоненте Edit1 блокируется ввод данных с клавиатуры (свойство ReadOnly устанавливается в true), и начальное значение задается как пустая строка (удаляется надпись в свойстве Text). В компоненте StringGrid1 задается количество строк, равное 2, и столбцов, равное 6 (свойства RowCount и ColCount соответственно), разрешается редактирование данных (свойство goEditing устанавливается в true) и переход по таблице с помощью клавиши Tab (свойство goTabs устанавливается в true). В компоненте Button2 (кнопка «Сохранить в файл») блокируется нажатие кнопки (свойство Enabled устанавливается в false). Программирование и основы алгоритмизации: справочные материалы для выполнения лабораторных работ, практических занятий и курсовых работ для студентов всех форм обучения специальностей 151002 – «Металлообрабатывающие станки и комплексы», 151003 – «Инструментальные системы машиностроительных производств», 220301 - «Автоматизация технологических процессов и производств»
Гуров Роман Владимирович
Научный редактор Д.Н. Финатов
Редактор издательства Л.И. Афонина
Компьютерный набор Р.В. Гуров
Темплан 2006 г, п.121 Подписано в печать Формат 60 х 84 /16. Бумага офсетная офсетная печать. Усл. печ. л. 2, 9 Уч. – изд. л. 2, 9 Тираж. 100 экз. Заказ.Бесплатно. Брянский государственный технический университет. 241035, Брянск, бульвар им. 50-лет Октября, 7, БГТУ. 54–90–49 Лаборатория оперативной полиграфии БГТУ, ул. Харьковская, 9 Популярное:
|
Последнее изменение этой страницы: 2016-07-14; Просмотров: 710; Нарушение авторского права страницы