Четвер, 21.11.2024, 16:07
Гость

Мішатронік

Мобільна версія | Додати у вибране  | Мій профіль | Вихід | RSS |
Меню сайту
Наше опитування
Чи знайома вам така технологія, як Flutter?
Всього відповідей: 0
Статистика

Онлайн всього: 2
Гостей: 2
Користувачів: 0


Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета

Сегодня мы создадим шаблон программы складского учета. И так, начнем новый проект в отдельном каталоге. Зайдем в меню "File" --> "New" --> "Other"*.

Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета

В открывшемся окне на закладке Projects выберем "MDI Application"*

Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета (MDI Application)

Далее, у вас откроется окно сохранения проекта, в котором Вам нужно выбрать путь, куда сохранять. После чего появиться уже готовая форма*:

Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета (MDI Application)

Если мы запустим ее, то увидим, что это самый обычный текстовый редактор, который мы писали на уроках 4.14.24.34.4 и  4.5правда, в нем можно открыть не одно окно редактирования текста, а много*.

Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета (MDI Application)

Теперь давайте переименуем наш проект в  StoreApp, для этого просто из меню "File"  выберем "Save Project as..." и сохраним проект под нужным именем. Так же поступим с программным модулем переключимся на него и сохраним под именем MainStoreAppUnit. через меню "File" --> "Save as..".Теперь давайте переименуем уложенные на форму компоненты, будем сразу привыкать к правильным именам. Начнем с ToolBar*:

Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета (MDI Application)

Программа назвала его ToolBar2, мы назовем tbrStore. Теперь займемся кнопочками. Вместо ToolButton1, ToolButton2 и так далее, присвоим имена, соответствующие их назначению:

  • Новый файл Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета (TToolButton)tbnNew.

  • Открыть файл Программирование баз данных в Delphi 7 tbnOpen.

  • Сохранить файл Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета (TToolButton)* - tbnSave.

  • Вырезать текст Программирование баз данных в Delphi - создаем шаблон программы складского учета (TToolButton)* - tbnCut.

  • Скопировать текст Создаем шаблон программы складского учета (TToolButton)* - tbnCopy.

  • Вставить текст Базы данных в Delphi 7 - создаем шаблон программы складского учета (TToolButton)* - tbnInsert.

  • Окна каскадом Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета (TToolButton)* - tbnCascade.

  • Окна горизонтально Delphi 7 - создаем шаблон программы складского учета (TToolButton)* - tbnHorizontal.

  • Окна вертикально Программирование баз данных в Delphi 7 - создаем шаблон программы складского учета (TToolButton)tbnVertical.

Теперь перейдем к не визуальным компонентам в нижней части формы*:

Программирование баз данных: создаем шаблон программы складского учета (TOpenDialog, name, caption)

Назовем их вот так, начиная с первого:

  • odOpenDialog.

  • mmMainMenu.

  • alActionList.

  • ilImageList.

Далее, изменим название и заголовок формы на frmStoreForm и "Программа складского учета".

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

Затем в Delphi выберем опцию Add to project*:

Добавление формы (TForm) в проект. В проекте так же TActionList, TImageList, базы данныех

И добавим файл  UnitStore.pas. У вас так же автоматически добавиться форма, которая будет доступна в списке форм проекта*:

Базы данных на Delphi 7. В проекте так же TActionList, TImageList, базы данныех

Начнем с того, создадим еще одну таблицу базы данных с такой вот структурой

Имя поля Тип Размер
id +  
Fio A 50
Address A 100
Phone A 15

Базы данных на Delphi 7. В проекте так же TActionList, TImageList, базы данныех

*и назовем ее employees.db, сохранив в том же каталоге, что и wares.db. Затем переключимся на добавленную форму (через список форм) и переименуем форму в frmTableViewТеперь займемся переименованием положенных на форму компонентов. TTable назовем tbView, TDataSource переименуем в dsView, TDbGrid назовем dbgView, TDbNavigator - dbnView. Затем к объявлению класса формы добавим новый метод OpenTable(ATableName:string):

TfrmTableView = class(TForm)
     tbView: TTable;
     dsView: TDataSource;
     dbgView: TDBGrid;
     dbnView: TDBNavigator;
private
     { Private declarations }
public
     { Public declarations }
     procedure OpenTable(ATableName:string);
end;

Реализуем его:

procedure TfrmTableView.OpenTable(ATableName:string);
begin
      tbView.Active:=false;
      tbView.TableName:=ATableName;
      tbView.Active:=true;
      Show;
end;

Да, кстати,  не забудьте включить UnitStore в раздел uses модуля MainStoreAppUnit, иначе  при компиляции у вас будет выдано сообщение об ошибке. Раньше этого не было написано в уроке, но посыпались вопросы, поэтому я решил дополнить урок (см. комментарии к уроку внизу текста)*:

Базы данных на Delphi 7. В проекте так же TActionList, TImageList, базы данныех

 

Немного пояснений к программе:

tbView.Active:=false; - здесь мы выключаем доступ к таблице базы данных, что бы компонент TTable мог поменять таблицу. Если этого не сделать, то при попытке выполнить строку

tbView.TableName:=ATableName;

будет выдано сообщение об ошибке*:

Базы данных на Delphi 7. В проекте так же TActionList, TImageList, базы данныех

Далее, мы присваиваем компоненту TTable новое имя таблицы и открываем его командой

tbView.Active:=true;

Теперь нам нужно еще и форму сделать видимой для пользователя. Это команда Show. Далее, переключимся на форму frmStoreForm и поставим на нее компонент TSession*.

Базы данных на Delphi 7. В проекте так же TActionList, TImageList, TSession, базы данныех

Назовем добавленный компонет sSession. Свойство SessionName установим в "Store". Затем, с целью приведения имен в порядок, щелкнем на компонент TActionList*.

Базы данных на Delphi 7. В проекте так же TActionList, TImages, TSession, базы данныех

В открывшемся окне выберем FileOpen1*

Базы данных на Delphi 7. В проекте так же TActionList, TImageList, TSession, базы данныех

и при помощи Object Inspector назначим ему новое имя acFileOpenЗаодно перведем обрабатываемый нами пункт меню на русский язык, сменив у пунктов меню File и Open свойство Caption*:

Базы данных на Delphi 7. В проекте так же TActionList, TImageList, TSession, базы данныех

Теперь перейдем к обработчику события OnClick пункта меню "Файл --Открыть" или кнопочки tbnOpen (он у них благодаря компоненту TActionList один и тот же) и изменим его содержимое:

procedure TfrmStoreForm.acFileOpenExecute(Sender: TObject);
var SessionParams:TStringList; i:integer;
begin
      SessionParams:=TStringList.Create;
      sSession.GetAliasParams('StorePrj',SessionParams);
      for i:=0 to SessionParams.Count-1 do
         if Pos('PATH',SessionParams[i])>0 then
         begin
                odOpenDialog.InitialDir:=copy(SessionParams[i],6,Length(SessionParams[i])-5);
                if odOpenDialog.Execute then  CreateMDIChild(odOpenDialog.FileName);
         end;
end;

В данном обработчике мы создаем переменную типа TStringList (список строк). При помощи метода GetAliasParams компонента TSession мы получаем в эту переменную список параметров Alias-а. Нам надо  извлечь параметр PATH. Для этого в цикле перебираем все параметры, и если найдем, извлекаем его командой:

odOpenDialog.InitialDir:=copy(SessionParams[i],6,Length(SessionParams[i])-5);

которая просто напросто обрезает все, что в тексте параметра идет после "PATH=". То, что мы вырезали, а это у нас путь к базе данных, записываем в свойство InitialDir диалога открытия файла. После этого запускаем диалог, и, в случае успешного его выполнения (пользователь в диалоге нажал ОК), вызываем процедуру CreateMDIChild, указав ей в качестве параметра выбранный файл.

Сама процедура CreateMDIChild является методом форму, которую автоматически сгенерировала система Delphi, когда мы создавали MDI приложение. Мы можем ее изменить. Точнее не только можем, но и изменим, потому что созданная автоматом процедура у нас открывает только текстовые файлы, а нам надо таблицы баз данных.

procedure TfrmStoreForm.CreateMDIChild(const Name: string);
var
Child: TfrmTableView;
begin
    { create a new MDI child window }
     Child := TfrmTableView.Create(Application);
     Child.Caption := Name;
     if FileExists(Name) then Child.OpenTable(Name);
end

В этой процедуре мы создаем форму типа TfrmTableView (которую мы с вами скопировали из урока уроке 8.2 и добавили в проект. После чего, если у нас существует переданный в качестве параметра файл, то открываем его через вызов метода OpenTable, который мы с вами так же написали ранее.

Все, остались последние штрихи. В фильтр масок диалога открытия файла добавим маску "*.db". Затем запускаем программу и смотрим через нее наши таблицы wares.db и employees.db.

Базы данных на Delphi 7. В проекте так же TActionList, TImageList, TSession, базы данныех

В заключении немного скажу о компоненте TActionList. Он содержит в себе список обработчиков событий, общих для нескольких объектов. В частности, для кнопочки и пункта меню. Для этой цели  связан с компонентом TImageList через  свое свойство Images, компонент TMainMenu связан с TImageList  через свое свойство Images и компонент TToolBar, на котором расположены кнопочки, так же связан с TImageList .

 

Форма входа
Пошук
Друзі сайту
Календар
«  Листопад 2024  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
252627282930

Єдина Країна! Единая Страна!