
- •230103 «Автоматизированные системы обработки информации и управления»
- •Работа с таблицами Создание таблицы в режиме конструктора
- •Практическая часть
- •1. Таблица product_group, которая содержит следующие поля:
- •2. Таблица products, которая содержит следующие поля:
- •3. Таблица prihod, которая содержит следующие поля:
- •4. Таблица ed_izmer, которая содержит следующие поля:
- •5. Таблица postav_ik, которая содержит следующие поля:
- •Вопросы для контроля
- •Литература
- •Лабораторная работа № 2
- •Теоретическая часть
- •Практическая часть
- •Практическая часть
- •Практическая часть
- •Вопросы для контроля
- •Литература
- •Лабораторная работа № 5
- •Теоретическая часть
- •Практическая часть
- •Создаем форму для справочника «Поставщики»
- •Практическая часть
- •Вопросы для контроля
- •Литература
- •Лабораторная работа № 7
- •Теоретическая часть
- •Практическая часть
- •Вопросы для контроля
- •Литература
- •Лабораторная работа № 8
- •Теоретическая часть
- •Практическая часть
- •Вопросы для контроля
- •Литература
- •Лабораторная работа № 9
- •Теоретическая часть
- •Практическая часть
- •Практическая часть
- •Вопросы для контроля
- •Литература
- •Лабораторная работа № 11
- •Теоретическая часть
- •Практическая часть
- •Вопросы для контроля
- •Литература
- •Лабораторная работа № 12
- •Теоретическая часть
- •Практическая часть
- •Практическая часть
- •Вопросы для контроля
- •Литература
- •Лабораторная работа № 14
- •Теоретическая часть
- •Практическая часть
- •Вопросы для контроля
- •Литература
- •Лабораторная работа № 15
- •Теоретическая часть
- •Практическая часть
- •Вопросы для контроля
- •Литература
Практическая часть
На этом уроке мы создадим последнюю форму для прихода продуктов. В ней будет происходить выбор продуктов прихода.
Приступим к созданию формы.
Создаем новую форму File->New->Form –Delphi
В инспекторе объектов устанавливаем следующие свойства для новой формы
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.
Далее располагаем компоненты формы как показано на рисунке:
Вопросы для контроля
Для чего служит свойство ShowHint?
Для чего служит свойство Hints?
Для чего нужен компонент TDateTimePicker?
Для чего нужен компонент TDataSource?
Для чего нужен компонент TDBLookupComboBox?
Литература
Фаронов В.В. Программирование на языке высокого уровня: Учебник для вузов. -СПб.: Питер, 2003.
Бобровский С.И. Delphi 7. Учебный курс. - СПб.: Питер, 2005.
Кетков Ю.Л., Кетков А.Ю. Практика программирования: Visual Basic, C++ Builder, Delphi. - СПб.: БХВ - Петербург, 2005.
ЛАБОРАТОРНАЯ РАБОТА № 10
Тема: Создаие формы прихода продуктов на склад.
Цель: Научиться создавать форму используя обработку событий
Оборудование и/или программное обеспечение: ПК, Delphi
Теоретическая часть
Операционная система Windows - многозадачная, т.е. несколько программ в ней могут функционировать одновременно. Когда, например, мы щёлкаем по кнопке в окне нашей программы, система Windows определяет, что произошло событие именно в нашей программе, и посылает ей сообщение об этом. Наша программа должна соответствующим образом отреагировать на него. Для этого мы, как программисты, должны написать код-обработчик этого события. Таким образом, структура программы для Windows представляет собой набор подпрограмм, каждая из которых ответственна за обработку конкретного события и вызывается только при его возникновении. Удобство Delphi состоит в том, что мы избавлены от необходимости получать сообщения от Windows сами, Delphi это делает за нас. Каждый компонент имеет впечатляющий набор событий, на которые он может реагировать. Программист сам определяет, какие события в программе требуется обрабатывать.
Откройте наш проект из предыдущего урока. Щелкните на компоненте Edit1. Он "появится" в Инспекторе объектов. Посмотрите: в Инспекторе объектов две вкладки: Properties (свойства) и Events (события). Перейдите на вкладку Events. Чтобы создать обработчик нужного события, нужно дважды кликнуть по нему мышкой. А если раскрыть выпадающий список, в нём будут находиться уже готовые обработчики, которые могут подходить для этого компонента. Таким образом, один обработчик может вызываться для обработки событий нескольких компонентов.
Изменим нашу программу так, чтобы текст на форме появлялся прямо в момент его ввода. В момент ввода у Edit1 меняется свойство Text - в нём появляется новая буква! Значит, воспользуемся событием onChange (change - изменение (англ.)), которое и происходит в этот момент. Итак:
|
Теперь рассмотрим событие onClick. Как вы догадываетесь, это событие возникает при щелчке мышкой на компоненте. Воспользуемся им, чтобы очищать строку ввода от уже введённых символов. Вы сами уже должны сообразить, что сделать. В обработчике нужно присвоить свойству Text значение пустой строки. Строка в Delphi образуется заключением текста в одинарные кавычки (находятся на кнопке Э): 'Так в Delphi образуется строка' Значит, пустая строка - это кавычки без текста: ''. Не должно быть даже пробела, иначе он окажется в строке ввода: Edit1.Text:=''; Есть другой способ, воспользоваться специально предназначенным для этого методом компонента Edit, который так и называется Clear (очистка англ.): Edit1.Clear; Но подумайте о пользователе, который будет работать с вашей программой. Ему должно быть удобно. Если при вводе текста он захочет что-то исправить, и щёлкнет мышкой в том месте текста, где нужно внести изменение?! И всё сотрётся! Поэтому лучше использовать событие onEnter, которое происходит, когда вы "входите" в него и компонент получает фокус ввода, или использовать для очистки специальную кнопку и её событие onClick. Конечно, у каждого компонента свой набор событий. Мы познакомились с тремя из них:
|
Другие важные события, которые есть почти у каждого визуального компонента:
В начале работы любой программы происходит очень важное событие событие нашего основного компонента - Формы, onCreate. Оно происходит перед появлением Формы на экране. Это событие используется для задания свойств тех элементов программы, которые нуждаются в настройке, например, размеры и положение Формы на экране. Если вы захотите сделать невидимую программу, можно приравнять нулю ширину Width и высоту Height Формы. На этапе проектирования сделать этого нельзя, т.к. это помешает работе, поэтому делаем это по событию onCreate: Form1.Width := 0; Form1.Height := 0; Дополнительно нужно убрать и заголовок Формы, выбрав в Инспекторе Объектов параметр BorderStyle равным None. Теперь Форма на экране не появится. Единственным визуальным признаком останется появление её "значка" на панели задач. В дальнейшем я расскажу, как избавиться и от него. |