Мегаобучалка Главная | О нас | Обратная связь


ADOTable1 – table_ed_izmer,



2016-09-17 420 Обсуждений (0)
ADOTable1 – table_ed_izmer, 0.00 из 5.00 0 оценок




ADOTable2 – table_product_group,

ADOTable3 – table_products,

ADOTable4 – table_postav_ik.


Для этого в инспекторе объектов ADOTable1 в свойство Name записываем table_ed_izmer и так делаем для ADOTable2, ADOTable3, ADOTable4. Должно получиться следующее:

 

Подключим наши таблицы к компоненту ADOConnection1 и к одноименным таблицам нашей БД.

Для этого в инспекторе объектов для таблицы table_ed_izmer (TADOTable) свойства Connection устанавливаем -> ADOConnection1, TableName-> ed_izmer, Active-> True;

для таблицы table_product_group (TADOTable) свойства Connection устанавливаем -> ADOConnection1, TableName-> product_group, Active-> True;

для таблицы table_products (TADOTable) свойства Connection устанавливаем -> ADOConnection1, TableName-> products, Active-> True;

для таблицы table_postav_ik (TADOTable) свойства Connection устанавливаем -> ADOConnection1, TableName-> postav_ik , Active-> True;

Свойство Active -> Trueустанавливайте в последнюю очередь.


На последок изменим в инспекторе объектов свойство Caption главной формы (Form1) на Склад, а свойство Name ->на Form_general.

А чтобы форма разворачивалась на весь экран Align -> alClient

 

Не забываем сохранять все изменения перед завершением работы!!!

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

 

    1. Для чего служит свойство FormStyle, в котором установлено fsMDIForm.?
    2. Для чего служит Caption?
    3. Для чего служит Name?
    4. Для чего служит компонент TADOTable?
    5. Для чего служит компонент TMainMenu?

 

Литература

 

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

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

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

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

Тема: Создание подчиненной формы для справочников программы склад

 

Цель: Научиться создавать справочники для базы данных созданной в Access, используя Delphi

 

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

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

 

В пустой форме смысла нет. Наполнить её содержанием помогут компоненты Delphi. Они располагаются на соответствующих вкладках палитры компонентов на главном окне. Все основные компоненты Delphiнаходятся на первых четырёх вкладках:

· Standart

· Additional

· Win32

· System

Если у вас нет сверху такой панели компонентов, вы должные сделать следующее:

1. Вызвать выпадающее меню(нажать правой кнопкой мыши:D) в той части, как показано на картинке снизу.

2. Поставить галочку передом "Component".

3. ВСЕ!)

В новых версия Delphi(начитая с 2007), можно использовать две палитры компонентов, это очень удобно, и вдобавок можно искать их по имени.

Вторая палитра компонентов находится в нижнем правом углу. Она называется Tool Palette.

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

В дальнейшем компоненты можно свободно перетаскивать по форме мышкой, "конструируя" нужный интерфейс.

Есть соответствующие справочники, где рассматриваются все компоненты Delphi. Но самые важные свойства компонентов Delphi и работу с ними мы рассмотрим.

Рассмотрим компоненты отображения текста. Создайте новый проект (File -» New -» Application), и перенесите на форму компоненты Label, Edit, Memo и Button. Выбирая одним щелчком мышки или клавишей Tab нужный компонент, в Инспекторе Объектов мы можем получить доступ к его свойствам. Прежде всего, у визуальных компонентов есть свойства, определяющие их положение на Форме:

· Ширина компонента, Width

· Высота компоненты, Height

· Расстояние до левого края компонента, Left

· Расстояние до верхнего края компонента, Top

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

· Label и Button - свойство Caption

· Edit - свойство Text

· Memo - свойство Lines

При "конструировании" формы в Инспекторе объектов можно придать свойствам компонентов любые значения. Случайно можно задать такие размеры или координаты, что компонент "исчезнет" - сделается невидимым или спрячется за другими компонентами. Его легко найти с помощью того же Инспектора Объектов - все компоненты, находящиеся на Форме, перечислены в его выпадающем списке. Достаточно выбрать нужный компонент, и он или его контуры (если он заслонён" другими компонентами) появятся на Форме, а в Инспекторе объектов - его свойства.

 

Теперь "запустите" программу (зелёная стрелка или F9). Видим, что компоненты "работают". Labelявляется надписью (меткой) на форме, Button - кнопка нажимается, Edit - строка ввода и Memo - многострочный текстовый редактор позволяют вводить текст!

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

На этом уроке мы создадим форму для справочника единицы измерения нашего склада.

Запускает наш проект, и создаем новую форму File->New->Form -Delphi

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

Caption -> Единицы измерения;

FormStyle -> fsMDIChild;

Name -> Form_ed_izmer;

 

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

Пропишем Uses general; после раздела implementation в программном модуле unit ed_izmer как показано на рисунке.

 

А программном модуле unit general главной формы пропишем Uses ed_izmer;

Это делается для того, чтобы установить связь между формами, иначе нельзя будет обращаться из одной формы к компонентам другой формы.

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

Три кнопки TButton из вкладки Standart

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

для Button2 устанавливаем свойство Caption -> Удалить запись;

для Button3 устанавливаем свойство Caption -> Закрыть;

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

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

DataSet -> Form_general.table_ed_izmer;

Name -> ed_izmer.

 

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

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

DataSource -> ed_izmer;

 

Если вы все правильно сделали то должны на форме увидеть следующее:

Если поля таблицы не отображаются в DBGrid,возможно у вас отключено (False) свойство Active главной форме в инспекторе объектов компонента table_ed_izmer (TADOtable),установитеActive -> True.

Сейчас мы переименуем поля нашей таблице. Для этого перейдем на главную форму проекта.

Выберем компонент table_ed_izmer (ADOTable)и в структуре (Structure) -> ed_izmer -> Fields -> щелкнем правой кнопкой мыши и выберем Add all fields.

 

У вас должно получиться следующее:

 

Далее выбираем поле id и в инспекторе объектов устанавливаем у него свойство Visible->False,

затем выбираем поле ed_name и в инспекторе объектов устанавливаем у него свойства

DisplayLabel -> Единица измерения;

DisplayWidth -> 30;

 

После этого видим для формы «Единицы измерения»:

Теперь пишем обработчики событий для кнопок.

Щелкнем дважды мышкой по кнопке «Новая запись» и пишем следующий код:

 

procedure TForm_ed_izmer.Button1Click(Sender: TObject); begin //новая запись form_general.table_ed_izmer.Append; dbgrid1.SetFocus end;

Щелкнем дважды мышкой по кнопке «Удалить запись» и пишем следующий код:

 

procedure TForm_ed_izmer.Button2Click(Sender: TObject); //удаление записи begin //если записи отсутствуют то выводим сообщение, иначе удаляем запись if dbgrid1.DataSource.DataSet.RecordCount<>0 then begin if (MessageBox(Handle, 'Удаление записей может привести к нарушению работы всей базы данных. Удалить запись?', 'Внимание !!!', MB_YESNO)= IDYES) then form_general.table_ed_izmer.Delete end else ShowMessage('Нет записей для удаления'); end;

 

Щелкнем дважды мышкой по кнопке «Закрыть» и пишем следующий код:

procedure TForm_ed_izmer.Button3Click(Sender: TObject); begin //закрытие формы Close; end;

 

В инспекторе объектов для Form_ed_izmer событие FormActivateпишем:

 

procedure TForm_ed_izmer.FormActivate(Sender: TObject); begin //установка фокуса при активации формы dbgrid1.SetFocus; end;

 

В инспекторе объектов дляForm_ed_izmer событие FormClose пишем:

 

procedure TForm_ed_izmer.FormClose(Sender: TObject; var Action: TCloseAction); begin //процедура закрытия формы Action:=cafree; end;


В инспекторе объектов дляForm_ed_izmer событие FormCloseQuery пишем:

procedure TForm_ed_izmer.FormCloseQuery(Sender: TObject; var CanClose: Boolean); //проверка на наличие пустых записей перед закрытием, если такие записи найдены то отменяем //закрытие формы begin if dbgrid1.DataSource.DataSet.RecordCount<>0 then begin if not (form_general.table_ed_izmer.Locate('ed_name', '', [loCaseInsensitive,loPartialKey])) then begin form_general.table_ed_izmer.edit; form_general.table_ed_izmer.post; end else begin ShowMessage('У Вас есть не заполненные записи');CanClose:=false;dbgrid1.SetFocus;end; end; end;

Сейчас сделаем запуск справочника «Единиц измерения» из главной формы. Для этого выбираем в меню Project -> Options…

 

и видим следующее окно:

 

Выбираем Forms и перемещаем Form_ed_izmer из Auto-create forms в Avalable forms.

Переходим на главную форму, щелкаем мышкой по компоненту MainMenu1, а затем по пункту Единицы измерения

И пишем следующий обработчик события:

procedure TForm_general.N2Click(Sender: TObject); begin f:=0; //проверяем, активна ли наша форма if ActiveMDIChild.Caption<>'Единицы измерения' then begin //если нет то ищем ее среди неактивных и если находим, то показываем ее for i:=0 to form_general.MDIChildCount-1 do if form_general.MDIChildren[i].Caption='Единицы измерения' then begin MDIChildren[i].Show;f:=1;end; end else f:=1; //если форма еще не создана, то создаем ее if f<>1 then Tform_ed_izmer.Create(Application); end;

Переменные f и I описываем в разделе var

var Form_general: TForm_general; f,i:integer; //f:=1 если подчиненная форма уже запущена и f:=0 если нет

 

Вот и все готово, запускаем проект

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

 

    1. Как создать кнопку на форме.
    2. Зачем нужен компонент Button на форме?
    3. Опишите ситаксис события FormCloseQuery.
    4. Для чего служит компонет DBGrid?
    5. Для чего служит компонент TDataSource?

Литература

 

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

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

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



2016-09-17 420 Обсуждений (0)
ADOTable1 – table_ed_izmer, 0.00 из 5.00 0 оценок









Обсуждение в статье: ADOTable1 – table_ed_izmer,

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (420)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)