Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laboratornye_raboty.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

Практическая часть

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

Приступим к созданию  формы.

Создаем новую форму File->New->FormDelphi

В инспекторе объектов  устанавливаем следующие свойства для новой формы

Name -> Form_select_prod;

Visible->False;

 

Сохраните модуль с именем select_prod.

Пропишем uses general, prihod_prod; после раздела implementation {$R *.dfm} в программном модуле unit select_prod.

А программном модуле unit select_prod   формы prihod_prod  пропишем uses general, prihod, unit_dm, select_prod;

Далее размещаем на форме следующие компоненты

Две кнопки TButton шесть компонентов TLable из вкладки Standart

В инспекторе объектов для Button1 устанавливаем свойство  Caption  -> ОК;

для Button2 устанавливаем  свойство  Caption  -> Отмена;

для Label1 устанавливаем  свойство  Caption ->  Группа;

для Label2 устанавливаем  свойство  Caption -> Ед.изм.;

для Label3 устанавливаем  свойство  Caption -> Количество;

для Label4 устанавливаем  свойство  Caption -> Цена;

для Label5 устанавливаем  свойство  Caption -> Сумма;

для Label6 устанавливаем  свойство  Caption ->Срок реализации.

Из вкладки Win32, компонент TDateTimePicker

В инспекторе объектов для него устанавливаем свойство Format -> dd.MM.yyyy, Time -> 0:00:00;

  Из вкладки Data Access помещаем на форму три компонента TDataSource.

для DataSource1 в инспекторе объектов свойство Name записываем  product_group,

DataSet-> Form_general.table_product_group;

для DataSource2 в инспекторе объектов свойство Name записываем  products,

DataSet-> Form_general.table_products;

для DataSource3 в инспекторе объектов свойство Name записываем  ed_izmer,

DataSet-> Form_general.table_ed_izmer;

Из вкладки Data Controls помещаем на форму три компонента  TDBLookupComboBox  и три TDBEdit.

для DBLookupComboBox1 в инспекторе объектов свойство Name записываем  DBLookup_product_group,  ListSource -> product_group , ListField-> product_name,  KeyField->id, DataSource-> Form_prihod_prod.storage, DataField-> id_product_group.

для DBLookupComboBox2 в инспекторе объектов свойство Name записываем  DBLookup_products,  DataSource-> Form_prihod_prod.storage, DataField-> product.

для DBLookupComboBox3 в инспекторе объектов свойство Name записываем  DBLookup_ed_izmer,  DataSource-> Form_prihod_prod.storage, DataField-> ed_izmer.

для DBEdit1 в Name-> quantity,  DataSource-> Form_prihod_prod.storage, DataField-> quantity;

для DBEdit2 в Name-> price,  DataSource-> Form_prihod_prod.storage, DataField-> price;

для DBEdit3 в Name-> summ,  DataSource-> Form_prihod_prod.storage, DataField-> summa, ReadOnly->True.

Далее располагаем компоненты  формы как показано на рисунке:

Вопросы для контроля

  1. Для чего служит свойство ShowHint?

  2. Для чего служит свойство Hints?

  3. Для чего нужен компонент TDateTimePicker?

  4. Для чего нужен компонент TDataSource?

  5. Для чего нужен компонент  TDBLookupComboBox?

Литература

  1. Фаронов В.В. Программирование на языке высокого уровня: Учебник для вузов. -СПб.: Питер, 2003.

  2. Бобровский С.И. Delphi 7. Учебный курс. - СПб.: Питер, 2005.

  3. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Visual Basic, C++ Builder, Delphi. - СПб.: БХВ - Петербург, 2005.

ЛАБОРАТОРНАЯ РАБОТА № 10

Тема: Создаие формы прихода продуктов на склад.

Цель: Научиться создавать форму используя обработку событий

Оборудование и/или программное обеспечение: ПК, Delphi

Теоретическая часть

Операционная система Windows - многозадачная, т.е. несколько программ в ней могут функционировать одновременно. Когда, например, мы щёлкаем по кнопке в окне нашей программы, система Windows определяет, что произошло событие именно в нашей программе, и посылает ей сообщение об этом. Наша программа должна соответствующим образом отреагировать на него. Для этого мы, как программисты, должны написать код-обработчик этого события. Таким образом, структура программы для Windows представляет собой набор подпрограмм, каждая из которых ответственна за обработку конкретного события и вызывается только при его возникновении. Удобство Delphi состоит в том, что мы избавлены от необходимости получать сообщения от Windows сами, Delphi это делает за нас. Каждый компонент имеет впечатляющий набор событий, на которые он может реагировать. Программист сам определяет, какие события в программе требуется обрабатывать.

  Откройте наш проект из предыдущего урока. Щелкните на компоненте Edit1. Он "появится" в Инспекторе объектов. Посмотрите: в Инспекторе объектов две вкладки: Properties (свойства) и Events (события). Перейдите на вкладку Events. Чтобы создать обработчик нужного события, нужно дважды кликнуть по нему мышкой. А если раскрыть выпадающий список, в нём будут находиться уже готовые обработчики, которые могут подходить для этого компонента. Таким образом, один обработчик может вызываться для обработки событий нескольких компонентов.

  Изменим нашу программу так, чтобы текст на форме появлялся прямо в момент его ввода. В момент ввода у Edit1 меняется свойство Text - в нём появляется новая буква! Значит, воспользуемся событием onChange (change - изменение (англ.)), которое и происходит в этот момент. Итак:

  1. Кликаем дважды по onChange, и оказываемся внутри только что созданного обработчика.

  2. Присваиваем свойству Caption компонента Label1 значение свойства Text компонента Edit1, то есть делаем то же, что и в прошлом уроке:    Label1.Caption := Edit1.Text; Или просто копируем из обработчика нажатия кнопки.

  3. Запускаем программу, всё работает. Как видим, всё очень просто.

 

  Теперь рассмотрим событие onClick. Как вы догадываетесь, это событие возникает при щелчке мышкой на компоненте. Воспользуемся им, чтобы очищать строку ввода от уже введённых символов. Вы сами уже должны сообразить, что сделать. В обработчике нужно присвоить свойству Text значение пустой строки. Строка в Delphi образуется заключением текста в одинарные кавычки (находятся на кнопке Э):     'Так в Delphi образуется строка'   Значит, пустая строка - это кавычки без текста: ''. Не должно быть даже пробела, иначе он окажется в строке ввода:    Edit1.Text:='';   Есть другой способ, воспользоваться специально предназначенным для этого методом компонента Edit, который так и называется Clear (очистка англ.):    Edit1.Clear;    Но подумайте о пользователе, который будет работать с вашей программой. Ему должно быть удобно. Если при вводе текста он захочет что-то исправить, и щёлкнет мышкой в том месте текста, где нужно внести изменение?! И всё сотрётся! Поэтому лучше использовать событие onEnter, которое происходит, когда вы "входите" в него и компонент получает фокус ввода, или использовать для очистки специальную кнопку и её событие onClick.    Конечно, у каждого компонента свой набор событий. Мы познакомились с тремя из них:

  • onChange

  • onClick

  • onEnter

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

  • onExit - возникает, когда компонент теряет фокус ввода;

  • onDblClick - возникает при двойном щелчке мышкой по компоненту;

  • onKeyDown - когда при нажатии на кнопку на клавиатуре она оказалась в нижнем положении;

  • onKeyUp - когда при отпускании клавиатурной кнопки она оказалась в верхнем положении;

  • onKeyPress - возникает при нажатии на клавиатурную кнопку. От событий onKeyDown иonKeyUp оно отличается типом используемого параметра Key ;

  • onMouseDown - когда при нажатии кнопки мышки она оказалась в нижнем положении;

  • onMouseUp - когда при отпускании кнопки мышки она оказалась в верхнем положении;

  • onMouseMove - возникает при перемещении указателя мышки над компонентом.

   В начале работы любой программы происходит очень важное событие событие нашего основного компонента - Формы, onCreate. Оно происходит перед появлением Формы на экране. Это событие используется для задания свойств тех элементов программы, которые нуждаются в настройке, например, размеры и положение Формы на экране. Если вы захотите сделать невидимую программу, можно приравнять нулю ширину Width и высоту Height Формы. На этапе проектирования сделать этого нельзя, т.к. это помешает работе, поэтому делаем это по событию onCreate:    Form1.Width := 0;    Form1.Height := 0;   Дополнительно нужно убрать и заголовок Формы, выбрав в Инспекторе Объектов параметр BorderStyle равным None. Теперь Форма на экране не появится. Единственным визуальным признаком останется появление её "значка" на панели задач. В дальнейшем я расскажу, как избавиться и от него.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]