Главная » Все файлы » Просмотр файлов из архивов » Документы » Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных»

Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных», страница 14

2018-01-09СтудИзба

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

Документ из архива "Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных» ", который расположен в категории "". Всё это находится в предмете "базы данных" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "базы данных" в общих файлах.

Онлайн просмотр документа "Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных»"

Текст 14 страницы из документа "Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных»"

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

end.

Процедуре автоматически присвоено имя Button1Click . Ему предшествет имя класса, к которому процедура принадлежит. Параметр Sender: TObject определяет, какой объект программы будет вызывать данную процедуру, т.е. при щелчке по кнопке Button1.

Для того чтобы выполнить суммирование, надо числа, введенные в поля Edit1 и Edit2 (свойство Text ) вначале преобразовать в числовой формат. Для этого используем функцию StrToInt(). Затем сложим эти числа. Результат снова надо преобразовать в строку. Используем функцию IntToStr(). Теперь необходимо записать результат этой функции в свойство Caption метки Label1. Запишем оператор суммирования (при этом имя переменной, определяющей "владельца" свойства, записывается вначале, а затем через точку указывается имя свойства):

Label1.Caption:=

IntToStr (StrToInt(Edit1.Text)+StrToInt(Edit2.Text));

Полный текст программы принял вид:

unit Unit1;

interface

uses

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

StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

Label1.Caption:=

IntToStr (StrToInt(Edit1.Text)+StrToInt(Edit2.Text));

end;

end.

Проверьте и запустите программу. Теперь она "умеет" складывать числа. Переход между полями ввода осуществляется клавишей Tab. Щелчок по кнопке Button1 запускает расчет и результат появляется в окне. Если при работе возникла сбойная ситуация, можно использовать клавиши Ctrl+F2 для выхода из нее. Завершите выполнение программы. На экране снова проектировщик форм.

Внесем следующее новшество в нашу программу. Изменим название кнопки Button1. Для этого необходимо дважды щелкнуть на кнопке и в окне инспектора объектов в поле Caption ввести имя кнопки, например " Сложить ". Проверьте.

В Windows применяются горячие клавиши (клавиши с подчеркиванием). В Delphi 5 для использования горячей клавиши используется символ " & ". Т.е. кновпке следует присвоить имя " &Сложить ". Проверьте. Внесите в поле Caption изменение и запустите программу на выполнение. С помощью клавиши Tab после ввода второго числа перейдите к кнопке и затем не щелчком мыши, а набрав с клавиатуры символ " С " завустите суммирование. Завершите выполнение программы.

Теперь разместите на форме меню - компонент TMainMenu c панели Standard. Это невизуальный компонент, поэтому попытки изменения размера ни к чему не приведут - это просто знак для разработчика, что в программе в наличии объект, ответственный за меню. Поэтому его можно поместить на любое место формы. Просто чтобы он был. А само меню будет появляться в верхнем левом углу.

Редактор меню вызывается двойным щелчком на компоненте. Перврначально меню пустое. В инстекторе объектов необходимо открыть категорию Localizable, если она не открыта (в контекстном меню команда View). В свойство Caption ввести название первого пункта меню и нажать клавишу Enter. Для примера введем название " Сумма ". Затем вниз добавим еще два пункта " &сложить" и "&Выход" щелкая на форме заготовку соответствующей позиции меню и вставляя название пункта в свойство Caption. Для вставки/удаления в заготовке новых пунктов меню используются клавиши Insert/Delete.

Когда меню поготовлено редактор меню следует закрыть. На макете формы появилось меню.

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

Вначале создадим обработчик для пункта "Сложить". По смыслу это тот же обработчик, что и для кнопки Button1. Повторно писать его нет смысла, можно просто передать ему параметр Sender. Для создания обработчика необходимо щелкнуть на соответствующем пункте меню (или дважды щелкнуть на соответствующем пункте меню в редакторе меню) и в открывшемся окне редактора кода написать процедуру:

procedure TForm1.N2Click(Sender: TObject);

begin

Button1Click(Sender);

end;

Аналогично подготавливаем процедуру для пункта " Выход ":

procedure TForm1.N3Click(Sender: TObject);

begin

Application.Terminate;

end;

Для организации выхода из программы использована глобальная переменная Application, доступная в любой программе в среде Delphi5. Программа в этом варианте завершает работу не сразу: вызов метода Terminate приводит к генерации сообщения Windows, которое ставится в очередь. Этот вариант завершения рекомендуется разработчиками Delphi5.

В случае организации выхода с использованием метода Close класса TForm, наследником которого является класс TForm1:

procedure TForm1.N3Click(Sender: TObject);

begin

Сlose;

end;

будет корректно закрыта текущая форма. Однако при использовании этого варианта для закрытия приложения целиком, могут возникнуть некорректности, если не все потоки завершились. Т.е. когда еще продолжает работать запущенное подчиненное приложение, которое должно завершиться раньше главного. Проверку этой ситуации выполняет функция CloseQuery:

procedure TForm1.N3Click(Sender: TObject);

begin

if СloseQuery then Closse;

end;

Теперь снова вернемся к проектировщику форм. Активизируйте компоненту Edit1 и в свойство Text внесите изменение: старое наименование в правой части строки замените новым - на Х1. Аналогично замените Edit2 на Х2 и Label1 (свойство Caption) на Х3. У вас получилось следующее приложжение - рис.2.3.

Рис. 2.3. Пример программы суммирования чисел

Полный текст программы имеет вид:

unit Unit1;

interface

uses

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

StdCtrls, Menus;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Label1: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

procedure Button1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

Label1.Caption:=

IntToStr (StrToInt(Edit1.Text)+StrToInt(Edit2.Text));

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Button1Click(Sender);

end;

procedure TForm1.N3Click(Sender: TObject);

begin

Close;

end;

end.

Закройте все файлы.

2.1.4.4. Продолжение работы с компонентами

Создайте новый каталог в Вашей директории и создайте новый проект.

В качестве примера создадим программу решения корней квадратного уравнения [ Л19 ].

Вначале активизируйте форму и в окне инспектора объектов измените для формы значение свойства Caption со значения TForm1 на РЕШЕНИЕ КВАДРАТНОГО УРАВНЕНИЯ .

Добавьте к форме три текстовых поля - рис. 2.4.

Рис. 2.4. Форма с тремя полями редактирования.

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

Для изменения положение компонента, надо установить курсор мыши на его изображение, нажать левую кнопку и, удерживая ее нажатой, переместить изображение границы компонента в нужную точку формы, где и отпустить кнопку мыши.Чтобы изменить размер компонента, надо его выделить (щелкнуть на изображении компонента), спозиционировать курсор мыши на одном из маркеров компонента, нажать левую кнопку мыши и, удерживая ее нажатой, изменить положение границы компонента. Затем отпустить кнопку мыши.

Помимо полей редактирования окно формы должно содержать поясняющий текст : краткое информационное сообщение и пояснение рядом с каждым полем редактирования - для ввода какого коэффициента это поле предназначено.

Текст, находящийся непосредственно в форме,- это метка.

К форме разрабатываемого приложения надо добавьте пять меток : одна (Label2) будет представлять собой информационное сообщение, три (Label3,Label4,Label5)- тексты, поясняющие назначение полей редактирования коэффициентов (соответственно при Х2, Х и q) и одна (Label1) будет использоваться для вывода значений корней уравнения. После того как метки добавлены, используя Object Inspector, измените их названия (значение свойства Caption) и уменьшите размер метки Label1.

Свойство ParentFont метки Label2 имеет значение False, поэтому свойство Font этой метки не наследует значения свойства Font "родителя", в данном случае- свойства основной формы. Это дает возможность установить свойства шрифта метки иные, чем у формы. У других меток значение свойства ParentFont оставлено без изменения.

Если свойство AutoSize (автоматический подгон размера) имеет значение True, то Delphi автоматически устанавливает размеры метки в зависимости от количества символов текста метки, используемого шрифта и его размера. Если надо, чтобы метка представляла собой текст из нескольких строк, то свойству AutoSize надо присвоить значение False и вручную установить значения свойств, определяющих размер.

-----------------------------------------------------------------------------------------

Name Label3 Label4 Label5

-----------------------------------------------------------------------------------------

Caption При второй При первой При нулевой

степени степени степени

AutoSize False False False

Top 72 72 72

Left 56 192 336

Height 17 17 17

Width 104 104 108

-----------------------------------------------------------------------------------------

После добавления меток форма разрабатываемого приложения приобретает вид, представленный на рис.2.5.

Рис. 2.5. Вид формы после добавления меток.

Далее к форме добавьте кнопки Вычислить, Новое, Завершить.

Окончательный вид формы приложения для решения квадратного уравнения представлен на рис. 2.6.

Рис. 2.6. Вид формы после добавления кнопок.

Вид созданной формы подсказывает, как работает приложение. Очевидно, что пользователь должен ввести значения коэффициентов в поля редактирования, затем щелкнуть на кнопке Вычислить. Щелчок кнопки мыши это пример события. Событие это то, что происходит во время работы приложения. В Delphi у каждого события есть имя, например щелчок кнопкой мыши это OnDblClick. Реакцией на событие должно быть какое-либо действие. Реакцией на событие OnClick, произошедшее на кнопке Вычислить, должно быть вычисление корней уравнения рис. 2.7. Добавьте обработчик.

Рис. 2.7. Вид формы в результате работы обработчика кнопки "Вычислить".

Исходный текст обработчика имеет вид:

procedure TForm1.Button1Click(Sender: TObject);

var

a,b,c:real; {коэффициенты уравнения}

d:real; {дискриминант}

x1,x2:real; {корни уравнения}

s1,s2:string[7];

code:integer;

begin

{ввод исходных данных из полей редактирования}

val(edit1.text,a,code);

val(edit2.text,b,code);

val(edit3.text,c,code);

if a=0

then {вывод сообщения об ошибке}

label1.caption:='Ошибка!'+chr(13)

+'Коэффициент при второй степени'

+chr(13)+'неизвестного равен нулю'

else begin

{вычисление корней уравнения}

d:=b*b-4*a*c;

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

{вывод результата}

str(x1:7,s1);

str(x2:7,s2);

label1.caption:='Корни уравнения:'

+chr(13)+'x1='+s1

+chr(13)+'x2='+s2;

end;

end.

Исходные данные программа получает из полей редактирования, обращаясь к свойству Text. Вспомните, что именно свойство Text определяет содержимое поля редактирования. Так как свойство Text содержит текст - данные символьного типа, для преобразования изображения числа в число в программе используется процедура VAL. Процедура STR помещает в переменные s1 и s1 строковое изображение корней уравнения. Вывод значений вычисленных корней программа осуществляет присвоением свойству Caption метки Lavel1 значения - текста сообщения.

Сохранените проект. При сохранении проекта Delphi создает несколько файлов.

Проверьте ошибки и откомпилируйте проект.

Если ошибок в программе нет, компилятор создает исполняемый файл программы, который позже можно будет запустить непосредственно из Windows. Имя исполняемого файла такое же, как и у файла проекта, расширение - еxe. Delphi помещает исполняемый файл в тот же каталог, где находится и файл проекта.

Запустите программу и опробуйте ее. После ввода коэффициентов и нажатия кнопки Вычислить программа вычисляет значения корней уравнения (рис. 2.7). Для перехода между полями можно использовать клавишу Tab.

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