Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Некоторые свойства и события компонентов



В этом разделе представленные свойства и события часто встречающиеся у различных компонентов.

Некоторые свойства компонентов

Свойство Описание
AutoSize Определяет способность элемента управления менять свой размер в соответствии со своим содержимым
Caption Заголовок элемента управления (текст на нем)
Color Отражает цвет лицевой поверхности или заднего фона
Enabled Определяет, активен компонет или неактивен (недоступен для выбора, серый)
Height Вертикальный размер компонента
Hint Текст, отображаемый во всплывающей подсказке элемента управления
Left Горизонтальная координата верхнего левого угла компонента
Name Уникальное имя экземпляра компонента, которое обычно можно использовать в программе
ShowHint Определяет, активизированы ли всплывающие подсказки
Tag Длинное целое для хранения произвольных данных
Top Вертикальная координата верхнего левого угла компонента
Visible Определяет видимость элемента управления.
Width Горизонтальный размер элемента управления

 

Некоторые события компонентов

Событие Описание
OnChange Изменяется объект или его содержимое
OnClick Щелчок левой кнопкой мыши по компоненту
OnDblClick Двойной щелчок мышью по компоненту
OnEnter Компонент активизируется (подсвечивается)
OnExit Компонент становится неактивным
OnKeyDown Нажатие клавиши. Посылается активному компоненту
OnKeyPress Нажатие и отпускание клавиши. Посылается активному компоненту
OnKeyUp Отпускание клавиши. Посылается активному компоненту
OnCanResize Возникает при попытке изменения размеров компонента
OnResize Возникает при завершении операции по изменению размера
OnCreate Возникает при создании формы во время запуска приложения.

В событиях, связанных с нажатием клавиш (OnKeyPress, OnKeyDown, OnKeyUp и др.), для определения нажатой клавиши используется параметр Key. Коды некоторых клавиш представлены ниже. Например, в обработчике события реакцию на нажатие клавиши Enter можно оформить следующим образом:

 

if (Key == 13)...

или

if (Key == VK_RETURN)...

 

Коды некоторых больших латинских букв совпадают с кодами клавиш, поэтому проверку на нажатие клавиши с буквой можно оформить следующим образом:

 

if (Key == ‘A’)...

 

Коды некоторых клавиш

Клавиша Код Символическое имя Клавиша Код Символическое имя
Enter VK_RETURN На правой клавиатуре (NumLock включен)
Shift VK_SHIFT VK_NUMPADO
Ctrl VK_CONTROL VK_NUMPAD1
Alt VK_MENU VK_NUMPAD2
CapsLock VK_CAPITAL VK_NUMPAD3
Esc VK_ESCAPE VK_NUMPAD4
Insert VK_INSERT VK_NUMPAD5
PageUp VK_PRIOR VK_NUMPAD6
PageDown VK_NEXT VK_NUMPAD7
End VK_END VK_NUMPAD8
Home VK_HOME VK_NUMPAD9
VK_LEFT * VK_MULTIPLY
VK_UP + VK_ADD
VK_RIGHT - VK_SUBTRACT
VK_DOWN . VK_DECIMAL
Delete VK_DELETE / VK_DIVIDE
PrintScreen VK_SNAPSHOT      
ScrollLock VK_SCROLL      
Pause VK_PAUSE      
NumLock VK_NUMLOCK      

 

Список рекомендуемой литературы

 

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; Просмотров: 665; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.068 с.)
Главная | Случайная страница | Обратная связь