Створення електронної анкети для заповнення даних

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

КУРСОВА РОБОТА

Створення електронної анкети для заповнення даних

Вступ

анкета база електронний

Ті, кому доводилося часто працювати з великими об'ємами документацій, знають ціну швидкого знаходження потрібної інформації в великих томах документації. Дійсно люди, які займаються різноманітною професійною юридичною діяльністю розбирають дуже багато інформації. І щоб знайти ту чи іншу інформацію треба потратити доволі не мало часу.

Тому, за допомогою комп’ютерів можна полегшити роботу працівників. Для цього й була розроблена електронна анкета для заповнення даних.

Цю програму можна використовувати для зібрання анкетних даних про людей, які подають заявку на отримання візи. Ці дані будуть зберігатися в єдиній базі даних. Замість заповнення бланків і анкет на які теж треба потратити не мало часу, можна заповнити електронну форму, яка зберігається в базі даних. Основна перевага цієї програми в тому, що можна використовувати бланки неодноразово.

Для виконання поставленої задачі вибрано середовище розробки програм Delphi, оскільки в Delphi є великий набір доступних компонентів. Тут інтуїтивно зрозумілий інтерфейс для звичайних користувачів і швидка реалізація поставленої задачі для програміста.

1. Постановка задачі на розробку програми

Оскільки зараз у всіх країнах світу запроваджується нова форма електронної анкети для подачі даних на отримання візи ця програма буде актуальна в наш час.

В даній курсовій роботі необхідно створити електронну анкету для заповнення персональних даних. Для розв’язання даної задачі вимагається розробити базу даних, в якій зберігається інформація про особу, яка подає заявку на отримання візи. Для використання бази створити користувацький інтерфейс в Delphi у вигляді форм для заповнення даних. В інтерфейсі надати можливість перегляду вмістимої інформації в базі даних.

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

2. Загальний опис основних компонентів

2. 1 ActionList

Компонент Delphi — ActionList зберігає список дій, які можуть бути використані компонентами та елементи управління, такими як пункти меню і кнопки. Для прикладу розглянемо пункт в меню і дублююча кнопка. У багатьох програмах є панель задач, в якій кнопки, дублюють дії меню. Ви можете кнопці і пункту меню призначити один код, але керувати цим не так зручно. Набагато зручніше буде створити дії в ActionList і призначити їх кнопці і пункту меню. Додати список дій компонентів до вашої формі або модулю даних можна із стандартної сторінки палітри компонентів. Двічі клацніть список дій, щоб відобразити редактор, з якого ви можете додавати, видаляти і змінювати дії. ActionList призначена в першу чергу для управління діями в крос-платформних додатків.

Властивості ActionList

Основна властивість ActionList це State — дозволяє заборонити виконання всіх команд у списку. В ній є такі категорії:

§ asNormal — всі команди працюють у звичайному режимі;

§ asSuspended — команди недоступні, але не зачіпається властивість Enabled в компонентах використовуваних Action;

§ asSuspendedEnabled — команди недоступні, але мають звичайний вигляд тому, що властивість Enabled кожного компонента використовується Action встановлюється в значення True.

В редакторі дій ActionList створюється дія яка нам потрібна і вже кнопку прив’язуєм до цієї дії. Щоб дія працювала правильно необхідно використовувати наступні параметри:

· AutoCheck — якщо true, то властивість checked буде перемикатися при виконанні дій.

· Caption — назва дії. Ця назва буде копіюватися в властивості caption компонентам, яким буде застосуються дана дія.

· Category — тут можна вибрати існуючe або написати нове ім'я для створення категорії.

· Enabled — показує чи доступна дія.

· Groupindex — якщо у двох дій один індекс, тобто вони знаходяться в одній групі, то при виділенні дії, їй надається властивість checked призначається true іншим діям цієї групи властивість checked призначається false.

· Imageindex — призначає картинку для цієї дії.

· Shortcut — клавіші швидкого доступу.

2.2 MainMenu

Компонент Delphi MainMenu (головне меню) розташовується на сторінці Standard Палітри інструментів. Майже у всіх сучасних Windows додатках є меню, як необхідний елемент інтерфейсу. Меню представляє з себе список з пунктів об'єднаних за функціональною ознакою. Пункт меню позначає або вкладене підменю, або конкретну команду. При виборі пункту меню ми виконуємо відповідну цьому пункту команду або розкриваємо підменю.

MainMenu представляє з себе не візуальний компонент, отже розташовувати його можна на формі де завгодно. Користувач побачить результат роботи компонента — меню згенероване ним, зверху, над формою.

Зазвичай в додатку є одне головне меню і його ім'я автоматично задається у властивості форми Menu Інспектора об'єктів. Але можна також розмістити на формі декілька компонентів головного меню з різними наборами пунктів, які будуть відповідати різним режимам роботи програми. Тоді при проектуванні властивості Menu форми присвоюється посилання на одне з цих меню.

Основна властивість головного меню — це Items. Коли заповнення відбувається в редакторі меню, який викликається подвійним клацанням на компоненті або на крапці навпроти відповідного пункту в добавляє його в інспектор об'єктів. Для додавання нового пункту меню можна скористатися клавішею Insert або заповнити властивість Caption у останньої нижньої комірки. Видалити непотрібний пункт меню можна клавішею Delete.

Властивості MainMenu

Щоб візуально зобразити компонент MainMenu необхідно використовувати наступні властивості:

· Bitmap — малюнок, розташований зліва від заголовка пункту меню. Типово малюнок відсутній.

· Break — цим компонентом можна поділити меню на стовпці.

· Caption — задає заголовок меню. символ «-» в якості заголовка буде відображатися в меню розділова лінія,

· Checked — відповідно до цього ознакою визначається позначений (TRUE) пункт меню чи ні (FALSE). Пункт меню, за умовчанням не відзначений,

· AutoCheck — при рівному TRUE, автоматично змінює властивості Checked на протилежне, якщо обрано даний пункт меню,

· Count — кількість підпунктів в даному пункті меню,

· Enabled — властивість, яка блокує пункт меню. При рівному FALSE вона не активно і їм не можна скористатися,

· RadioItem — дозволяє змінювати вид позначки при FALSE (за замовчуванням) — галочка, TRUE — жирна крапка,

· ShortCut — визначає гарячі клавіші,

· Visible — відповідає за видимість пункту меню.

2. 3 PageControl

Компонент Delphi PageControl (багатосторінковий блокнот) розташований на сторінці Win32 Палітри компонентів. Компонент PageControl є більш складним елементом управління, ніж компонент Delphi TabControl, хоча вони мають досить багато спільних властивостей. PageControl може містити кілька панелей класу TTabSheet, які перекриватимуть одного. Перехід на іншу панель (сторінку) здійснюється клацанням миші в області заголовка сторінки.

На етапі конструювання, щоб додати нову панель (сторінку) необхідно натиснути праву кнопку на компоненті і вибрати з контекстного меню пункт «New Page». Delphi створить нову сторінку з ім'ям TabSheet1, її можна перейменувати, змінивши властивість Caption у «Інспекторові об'єктів» об'єкта TabSheet (потрібно проконтролювати, щоб при виділенні маркери не зачіпали області заголовків компонента PageControl). Для видалення панелі використовуємо пункт меню — «Delete Page». Пункти меню «Next Page» і «Previouse Page» дозволяють переходити на наступну і попередню сторінки.

У компонента PageControl є дві основних події OnChange і OnChanging. Подія OnChange відбувається відразу при перемиканні. А OnChangeing відбувається перед переходом на іншу сторінку після кліка на новій закладці. При цьому враховується параметр AllowChange, якщо його поставити рівним FALSE, то перехід не здійснитися.

Процедура SelectNextPage (GoForward: Boolean) задає активної наступну панель, при GoForward рівному TRUE і попередню, якщо GoForward одно FALSE.

Властивість PageCount повідомляє кількість сторінок (лише для читання).

2. 4 Компоненти OpenDialog, SaveDialog

На вкладці палітри компонентів Dialogs знаходяться компонент Delphi OpenDialog і компонент Delphi SaveDialog. Всі Delphi діалоги, що знаходяться на цій вкладці, у тому числі і Delphi діалоги вибору файлу, невізуальні, тобто при перенесенні їх на форму в працюючій програмі їх не видно, їх видно тільки на етапі конструювання. Компонент OpenDialog реалізує діалог відкриття файлу. При запуску цього діалогу з’являється вікно, в якому можна вибрати ім'я файлу, що відкривається. У разі успішного закриття діалогового вікна (натисканням кнопки Open) в якості результату повертається обране ім'я файлу.

Компонент SaveDialog пропонує стандартний діалог збереження файлу, який відрізняється від діалогу відкриття файлу тільки своїм заголовком.

Основні властивості компонентів OpenDialog і SaveDialog

Є декілька основних властивостей необхідних для зберігання і відкриття файлу:

· FileName типу String — вказує ім'я і повний шлях файлу, обраного в діалозі. Файл відображається у рядку редагування списку Ім'я файлу і є результатом діалогу.

· Title типу String — задає заголовок вікна. Якщо властивість Title не встановлено, то за замовчуванням використовується заголовок Open для OpenDialog і заголовок Save — для SaveDialog.

· InitiaLDir типу String — визначає каталог, вміст якого відображається при виклику діалогового вікна. Якщо каталог не заданий, то відображається вміст поточного каталогу.

· DefaultExt типу String — задає розширення, автоматично використовуване в імені файлу, якщо користувач не вказав розширення.

· Filter типа String — задає маски імен файлів, що відображаються в списку Тип файлів. У діалоговому вікні видно імена файлів, що збігаються з вказаною маскою це файл. Типово значенням Filter є порожній рядок, що відповідає відображенню імен файлів всіх типів.

· FilterIndex типу Integer — вказує, яка з масок фільтра відображається у списку. Типово властивість FilterIndex має значення 1 (використовується перша маска).

3. Програмна реалізація поставленої задачі

3.1 Підключення до бази даних

Концепція даної програми проста: всі дані анкети будуть зберігатися в базі даних Microsoft Access, яка підключається до Delphi, коли починається робота з програмою. Налаштування підключення до бази даних відбувається за допомогою форми dbconnect.

Рис. 1. Концепція підключення до БД

За допомогою трьох основних компонентів (рис. 1) відбувається підключення бази даних до Delphi:

· ADOConnection — знаходиться на вкладці ADO, призначений для підключення нашої БД по визначеному провайдеру.

· DataSource — знаходиться на вкладці Data Access, призначений для зв’язку нашої сітки відображення даних, з БД.

· ADOTable — знаходиться також на вкладці ADO, призначений отримання потрібних результатів з нашої БД.

3.2 Створення таблиці БД

Щоб реалізувати швидке заповнення таблиці і занесення інформації в базу даних, необхідно створити форму з компонентом DBGrid. Цей компонент інкапсулює двовимірну таблицю, в якій рядки являють собою записи, а стовпці - поля набору даних.

Щоб створити анкету з полями для заповнення бази даних потрібно помістити кнопку, яка буде створювати новий запис в базі даних і переходити на форму для заповнення анкети (рис. 2).

Рис. 2. Таблиця в Delphi, яка підключена до БД

Ще тут реалізована кнопка, яка буде видаляти всі дані про особу з таблиці і бази даних.

3.3 Створення анкети для заповнення даних

Для створення анкети в зручному вигляді для користувача, я використав такий компонент Delphi як PageControl. За допомогою нього можна реалізувати багатосторінковий блокнот з різними розділами та пунктами заповнення даних (рис. 3).

Рис. 3. Реалізація компонента PageControl

Для зручності розроблено меню за допомогою компонента MainMenu (рис. 4).

Рис. 4. Реалізація компоненту MainMenu

Зручністю програми є те що, при заповненні даних, вони зразу ж відображаються в таблиці (рис. 5).

Рис. 5. Заповнення анкетних даних

Зберігання інформації в таблицю відбувається за допомогою кнопки «зберегти», або за допомогою меню.

Рис. 6. Збережені дані в таблиці

Оскільки таблиця інтегрована з базою даних, інформація про особу зразу зберігається в БД Microsoft Access (рис. 7).

Рис. 7. Дані в таблиці БД Microsoft Access

4. Інтерфейс користувача

Запускаючи програму, користувач бачить перед собою вікно таблиці з пустими полями. Переходячи по кнопці на форму анкети, користувачу необхідно заповнити всі бланки в анкеті і зберегти їх в таблицю. При збереженні, в анкеті вся інформація зникає, даючи змогу заповнити нову анкету для нової особи. В кожного є свій порядковий номер, по якому буде легко знайти необхідну інформацію в базі даних. (рис. 8)

Рис. 8. Загальний вигляд таблиці

Збережена інформація залишається в базі даних, що дає гарантію на те що анкети з вашими даними на втратяться.

Висновки

У даній курсовій роботі була розроблена програма, в якій реалізована електронна анкета, для заповнення даних людей, які подають заявку на отримання візи. В програмі створений простий і зрозумілий інтерфейс для користувача. Програма розроблялась у візуальному середовищі програмування Delphi, яке використовує мову програмування ObjectPascal і містить у собі великий набір візуальних інструментів для швидкої та зручної розробки програм. Щоб поєднати роботу с базою даних, тут використовується система управління базами даних Microsoft Access.

В ході курсової роботи я ознайомився з особливостями та проблемами створення бази даних та підключення її до середовища програмування Delphi.

Література

1. Ю. С. Бородич. Паскаль для персональных компьютеров [Текст]: довідниквидавництво: «Вышейшая школа», 2009 г. — 276 с.

2. Е. А. Зуев. Язык прграммирования Turbo Pascal [Текст]: довідник видавництво: М. «Унитех», 2012 г. — 576 с.

3. Embarcadero Delphi Wikipedia: [Електронний ресурс]. — Режим доступу: http: //uk. wikipedia. org/wiki/CodeGear_Delphi — Назва з екрану. — Мова: укр. — Перевірено: 13. 03. 2013

4. Microsoft Access: [Електронний ресурс]. — Режим доступу: http: //office. microsoft. com/uk-ua/access-help — Назва з екрану. — Мова укр. — Перевірено: 1. 04. 2013

Додаток

Код підключення Бази Даних

unit Unit1;

interface

uses

SysUtils, Classes, DB, ADODB;

type

Tdbconnect = class (TDataModule)

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

DataSource1: TDataSource;

private

{Private declarations}

public

{Public declarations}

end;

var

dbconnect: Tdbconnect;

implementation

{$R *. dfm}

end.

Основний код програми

unit Main;

interface

uses

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

Dialogs, StdCtrls, ComCtrls, ExtCtrls, XPMan, Menus, Buttons, Spin,

ActnList, ToolWin, Mask, DBCtrls;

type

TfmSchengenAgreement = class (TForm)

sbInfo: TStatusBar;

pnTop: TPanel;

pnBottom: TPanel;

MainMenu1: TMainMenu;

miFile: TMenuItem;

N1: TMenuItem;

miExit: TMenuItem;

miHelp: TMenuItem;

miAbout: TMenuItem;

XPManifest1: TXPManifest;

pcPages: TPageControl;

pnPersonalInfo: TPanel;

tsPersonalInfo: TTabSheet;

tsAddress: TTabSheet;

tsPosition: TTabSheet;

tsPartnerChildren: TTabSheet;

tsBrothers: TTabSheet;

tsParents: TTabSheet;

tsFriends: TTabSheet;

tsFormerCounties: TTabSheet;

stPersonalInfo: TStaticText;

stAddress: TStaticText;

stPosition: TStaticText;

stPartnerChildren: TStaticText;

stBrothers: TStaticText;

stParents: TStaticText;

stFriends: TStaticText;

stFormerCountries: TStaticText;

dtpFatherBirthday: TDateTimePicker;

chbxFatherDead: TCheckBox;

dtpFatherDeathday: TDateTimePicker;

lbedFatherAddress: TLabeledEdit;

dtpMotherBirthday: TDateTimePicker;

chbxMotherDead: TCheckBox;

dtpMotherDeathday: TDateTimePicker;

lbedMotherAddress: TLabeledEdit;

chbxFatherWithYou: TCheckBox;

chbxMotherWithYou: TCheckBox;

lbFatherBirthday: TLabel;

lbedFatherDeathday: TLabel;

lbMotheBirthday: TLabel;

lbMotherDeathday: TLabel;

lbedFriendName: TLabeledEdit;

dtpFriendBirthday: TDateTimePicker;

lbFriendBirthday: TLabel;

bbFriendAdd: TBitBtn;

bbFriendDelete: TBitBtn;

bbFriendEdit: TBitBtn;

lvFriends: TListView;

ActionList1: TActionList;

actNextPage: TAction;

actPrevPage: TAction;

lbedPartnerFormerName: TLabeledEdit;

lbedPartnerRealAddress: TLabeledEdit;

chbxPartnerWithYou: TCheckBox;

lbPartnerBirthday: TLabel;

dtpBrotherBirthday: TDateTimePicker;

lbedBrotherPartner: TLabeledEdit;

seBrotherChildrenCount: TSpinEdit;

chbxBrotherWithYou: TCheckBox;

lbBrotherChildrenCount: TLabel;

lbBrotherBirthday: TLabel;

bbBrotherAdd: TBitBtn;

bbBrotherDelete: TBitBtn;

bbBrotherEdit: TBitBtn;

lvBrothers: TListView;

Label2: TLabel;

Label3: TLabel;

dtpVisaStart: TDateTimePicker;

lbVisaStart: TLabel;

lbVisaEnd: TLabel;

dtpVisaEnd: TDateTimePicker;

cbxCountry: TComboBox;

lbCountry: TLabel;

lbVisaDate: TLabel;

dtpVisaDate: TDateTimePicker;

lbedVisaType: TLabeledEdit;

lbedCountryWhere: TLabeledEdit;

bbCountryAdd: TBitBtn;

bbCountryDelete: TBitBtn;

bbCountryEdit: TBitBtn;

lvCountries: TListView;

lbFullName: TLabel;

bbPrev: TBitBtn;

bbNext: TBitBtn;

miSave: TMenuItem;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

bbAbout: TBitBtn;

bbExit: TBitBtn;

lbDate: TLabel;

dtpDate: TDateTimePicker;

bvBevel1: TBevel;

bbSave: TBitBtn;

gbxName: TGroupBox;

lbedFormerNames: TLabeledEdit;

gbxBirth: TGroupBox;

lbBirthday: TLabel;

gbxArmy: TGroupBox;

chbxArmy: TCheckBox;

lbedArmy: TLabeledEdit;

gbxFamilyStatus: TGroupBox;

gbxHomeAddress: TGroupBox;

gbxRealAddress: TGroupBox;

lbedRealIndex: TLabeledEdit;

lbedRealAddress: TLabeledEdit;

gbxPhone: TGroupBox;

lbedRegisterPhone: TLabeledEdit;

gbxResponsiblePerson: TGroupBox;

lbedResponsiblePerson: TLabeledEdit;

lbedRegistered: TLabeledEdit;

gbxJob: TGroupBox;

lbedJobYear: TLabeledEdit;

gbxFirm: TGroupBox;

lbedFirmPhone: TLabeledEdit;

lbedFirmFax: TLabeledEdit;

lbedFirmEMail: TLabeledEdit;

gbxNoJob: TGroupBox;

lbedIfNoJob: TLabeledEdit;

gbxChildren: TGroupBox;

lbedChildPartner: TLabeledEdit;

seChildChildrenCount: TSpinEdit;

chbxChildWithYou: TCheckBox;

bbChildAdd: TBitBtn;

bbChildDelete: TBitBtn;

bbChildEdit: TBitBtn;

lvChildren: TListView;

lbChildBirthday: TLabel;

lbChildChildrenCount: TLabel;

Timer1: TTimer;

Label4: TLabel;

name1: TDBEdit;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBComboBox1: TDBComboBox;

DBEdit4: TDBEdit;

Label5: TLabel;

DBEdit5: TDBEdit;

Label1: TLabel;

DBEdit6: TDBEdit;

Label6: TLabel;

DBEdit7: TDBEdit;

Label7: TLabel;

DBEdit8: TDBEdit;

Label8: TLabel;

DBEdit9: TDBEdit;

Label9: TLabel;

DBEdit10: TDBEdit;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

DBEdit11: TDBEdit;

Label13: TLabel;

DBEdit12: TDBEdit;

Label14: TLabel;

Label15: TLabel;

lbedChildName: TDBEdit;

DateTimePicker1: TDateTimePicker;

dtpChildBirthday: TDateTimePicker;

lbedBrotherName: TDBEdit;

Label16: TLabel;

DBEdit14: TDBEdit;

Label17: TLabel;

DBEdit15: TDBEdit;

Label18: TLabel;

procedure chbxArmyClick (Sender: TObject);

procedure actNextPageExecute (Sender: TObject);

procedure actPrevPageExecute (Sender: TObject);

procedure chbxFatherDeadClick (Sender: TObject);

procedure chbxMotherDeadClick (Sender: TObject);

procedure miAboutClick (Sender: TObject);

procedure miExitClick (Sender: TObject);

procedure lvChildrenChange (Sender: TObject; Item: TListItem;

Change: TItemChange);

procedure cbxFamilyStatusExit (Sender: TObject);

procedure lvFriendsChange (Sender: TObject; Item: TListItem;

Change: TItemChange);

procedure lvBrothersChange (Sender: TObject; Item: TListItem;

Change: TItemChange);

procedure lvCountriesChange (Sender: TObject; Item: TListItem;

Change: TItemChange);

procedure bbFriendAddClick (Sender: TObject);

procedure bbFriendDeleteClick (Sender: TObject);

procedure bbFriendEditClick (Sender: TObject);

procedure lvFriendsKeyDown (Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure lvBrothersKeyDown (Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure bbBrotherDeleteClick (Sender: TObject);

procedure bbBrotherAddClick (Sender: TObject);

procedure bbBrotherEditClick (Sender: TObject);

procedure lvChildrenKeyDown (Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure bbChildDeleteClick (Sender: TObject);

procedure bbChildAddClick (Sender: TObject);

procedure bbChildEditClick (Sender: TObject);

procedure lvCountriesKeyDown (Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure bbCountryDeleteClick (Sender: TObject);

procedure bbCountryAddClick (Sender: TObject);

procedure bbCountryEditClick (Sender: TObject);

procedure miNewClick (Sender: TObject);

procedure miSaveAsClick (Sender: TObject);

procedure miOpenClick (Sender: TObject);

procedure miSaveClick (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure lbedSurnameChange (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure lbedSurnameKeyUp (Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure FormActivate (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

fmSchengenAgreement: TfmSchengenAgreement;

implementation

uses About, ComponentsLoadSave, Unit1;

{$R *. dfm}

procedure TfmSchengenAgreement. chbxArmyClick (Sender: TObject);

begin

lbedArmy. Enabled: =chbxArmy. Checked;

end;

procedure TfmSchengenAgreement. actNextPageExecute (Sender: TObject);

begin

pcPages. SelectNextPage (True);

end;

procedure TfmSchengenAgreement. actPrevPageExecute (Sender: TObject);

begin

pcPages. SelectNextPage (False);

end;

procedure TfmSchengenAgreement. chbxFatherDeadClick (Sender: TObject);

begin

dtpFatherDeathday. Enabled: =chbxFatherDead. Checked;

end;

procedure TfmSchengenAgreement. chbxMotherDeadClick (Sender: TObject);

begin

dtpMotherDeathday. Enabled: =chbxMotherDead. Checked;

end;

procedure TfmSchengenAgreement. miAboutClick (Sender: TObject);

begin

fmAbout. ShowModal;

end;

procedure TfmSchengenAgreement. miExitClick (Sender: TObject);

begin

Close;

end;

procedure TfmSchengenAgreement. bbChildAddClick (Sender: TObject);

begin

lbedChildName. SetFocus;

If Trim (lbedChildName. Text)='' Then Exit;

With lvChildren. Items. Add Do

Begin

Caption: =Trim (lbedChildName. Text);

SubItems. Add (DateToStr (dtpChildBirthday. Date));

SubItems. Add (lbedChildPartner. Text);

SubItems. Add (IntToStr (seChildChildrenCount. Value));

If chbxChildWithYou. Checked Then

SubItems. Add ('Так')

Else

SubItems. Add ('Ні');

End;

end;

procedure TfmSchengenAgreement. bbChildDeleteClick (Sender: TObject);

begin

If lvChildren. ItemIndex=-1 Then Exit;

If Application. MessageBox ('Видалити цей запис?', 'Ви впевнені?', MB_YESNO+MB_ICONQUESTION)< >IDYES Then Exit;

lvChildren. Items. Delete (lvChildren. ItemIndex);

end;

procedure TfmSchengenAgreement. bbChildEditClick (Sender: TObject);

begin

lbedChildName. SetFocus;

If lvChildren. ItemIndex=-1 Then Exit;

If Trim (lbedChildName. Text)='' Then Exit;

With lvChildren. Items [lvChildren. ItemIndex] Do

Begin

Caption: =Trim (lbedChildName. Text);

SubItems[0]: =DateToStr (dtpChildBirthday. Date);

SubItems[1]: =lbedChildPartner. Text;

SubItems[2]: =IntToStr (seChildChildrenCount. Value);

If chbxChildWithYou. Checked Then

SubItems[3]: ='Так'

Else

SubItems[3]: ='Ні';

End;

end;

procedure TfmSchengenAgreement. lvChildrenKeyDown (Sender: TObject;

var Key: Word; Shift: TShiftState);

begin

If Key=VK_DELETE Then

bbChildDeleteClick (Self);

end;

procedure TfmSchengenAgreement. lvChildrenChange (Sender: TObject;

Item: TListItem; Change: TItemChange);

begin

If Change< >ctState Then Exit;

If Item. SubItems. Count=0 Then Exit;

lbedChildName. Text: =Item. Caption;

dtpChildBirthday. Date: =StrToDate (Item. SubItems[0]);

lbedChildPartner. Text: =Item. SubItems[1];

seChildChildrenCount. Value: =StrToInt (Item. SubItems[2]);

If Item. SubItems[3] [1]='Д' Then

chbxChildWithYou. Checked: =True

Else

chbxChildWithYou. Checked: =False;

end;

procedure TfmSchengenAgreement. bbBrotherAddClick (Sender: TObject);

begin

lbedBrotherName. SetFocus;

If Trim (lbedBrotherName. Text)='' Then Exit;

With lvBrothers. Items. Add Do

Begin

Caption: =Trim (lbedBrotherName. Text);

SubItems. Add (DateToStr (dtpBrotherBirthday. Date));

SubItems. Add (lbedBrotherPartner. Text);

SubItems. Add (IntToStr (seBrotherChildrenCount. Value));

If chbxBrotherWithYou. Checked Then

SubItems. Add ('Так')

Else

SubItems. Add ('Ні');

End;

end;

procedure TfmSchengenAgreement. bbBrotherDeleteClick (Sender: TObject);

begin

If lvBrothers. ItemIndex=-1 Then Exit;

If Application. MessageBox ('Видалити цей запис?', 'Ви впевнені?', MB_YESNO+MB_ICONQUESTION)< >IDYES Then Exit;

lvBrothers. Items. Delete (lvBrothers. ItemIndex);

end;

procedure TfmSchengenAgreement. bbBrotherEditClick (Sender: TObject);

begin

lbedBrotherName. SetFocus;

If lvBrothers. ItemIndex=-1 Then Exit;

If Trim (lbedBrotherName. Text)='' Then Exit;

With lvBrothers. Items [lvBrothers. ItemIndex] Do

Begin

Caption: =Trim (lbedBrotherName. Text);

SubItems[0]: =DateToStr (dtpBrotherBirthday. Date);

SubItems[1]: =lbedBrotherPartner. Text;

SubItems[2]: =IntToStr (seBrotherChildrenCount. Value);

If chbxBrotherWithYou. Checked Then

SubItems[3]: ='Так'

Else

SubItems[3]: ='Ні';

End;

end;

procedure TfmSchengenAgreement. lvBrothersKeyDown (Sender: TObject;

var Key: Word; Shift: TShiftState);

begin

If Key=VK_DELETE Then

bbBrotherDeleteClick (Self);

end;

procedure TfmSchengenAgreement. lvBrothersChange (Sender: TObject;

Item: TListItem; Change: TItemChange);

begin

If Change< >ctState Then Exit;

If Item. SubItems. Count=0 Then Exit;

lbedBrotherName. Text: =Item. Caption;

dtpBrotherBirthday. Date: =StrToDate (Item. SubItems[0]);

lbedBrotherPartner. Text: =Item. SubItems[1];

seBrotherChildrenCount. Value: =StrToInt (Item. SubItems[2]);

If Item. SubItems[3] [1]='Д' Then

chbxBrotherWithYou. Checked: =True

Else

chbxBrotherWithYou. Checked: =False;

end;

procedure TfmSchengenAgreement. bbFriendAddClick (Sender: TObject);

begin

lbedFriendName. SetFocus;

If Trim (lbedFriendName. Text)='' Then Exit;

With lvFriends. Items. Add Do

Begin

Caption: =Trim (lbedFriendName. Text);

SubItems. Add (DateToStr (dtpFriendBirthday. Date))

End;

end;

procedure TfmSchengenAgreement. bbFriendDeleteClick (Sender: TObject);

begin

If lvFriends. ItemIndex=-1 Then Exit;

If Application. MessageBox ('Видалити цей запис?', 'Ви впевнені?', MB_YESNO+MB_ICONQUESTION)< >IDYES Then Exit;

lvFriends. Items. Delete (lvFriends. ItemIndex);

end;

procedure TfmSchengenAgreement. bbFriendEditClick (Sender: TObject);

begin

lbedFriendName. SetFocus;

If lvFriends. ItemIndex=-1 Then Exit;

If Trim (lbedFriendName. Text)='' Then Exit;

With lvFriends. Items [lvFriends. ItemIndex] Do

Begin

Caption: =Trim (lbedFriendName. Text);

SubItems[0]: =DateToStr (dtpFriendBirthday. Date);

End;

end;

procedure TfmSchengenAgreement. lvFriendsKeyDown (Sender: TObject;

var Key: Word; Shift: TShiftState);

begin

If Key=VK_DELETE Then

bbFriendDeleteClick (Self);

end;

procedure TfmSchengenAgreement. lvFriendsChange (Sender: TObject;

Item: TListItem; Change: TItemChange);

begin

If Change< >ctState Then Exit;

If Item. SubItems. Count=0 Then Exit;

lbedFriendName. Text: =Item. Caption;

dtpFriendBirthday. Date: =StrToDate (Item. SubItems[0]);

end;

procedure TfmSchengenAgreement. bbCountryAddClick (Sender: TObject);

begin

dtpVisaStart. SetFocus;

With lvCountries. Items. Add Do

Begin

Caption: =DateToStr (dtpVisaStart. Date);

SubItems. Add (DateToStr (dtpVisaEnd. Date));

SubItems. Add (cbxCountry. Text);

SubItems. Add (DateToStr (dtpVisaDate. Date));

SubItems. Add (lbedVisaType. Text);

SubItems. Add (lbedCountryWhere. Text);

End;

end;

procedure TfmSchengenAgreement. bbCountryDeleteClick (Sender: TObject);

begin

If lvCountries. ItemIndex=-1 Then Exit;

If Application. MessageBox ('Видалити цей запис?', 'Ви впевнені?', MB_YESNO+MB_ICONQUESTION)< >IDYES Then Exit;

lvCountries. Items. Delete (lvCountries. ItemIndex);

end;

procedure TfmSchengenAgreement. bbCountryEditClick (Sender: TObject);

begin

dtpVisaStart. SetFocus;

If lvCountries. ItemIndex=-1 Then Exit;

With lvCountries. Items [lvCountries. ItemIndex] Do

Begin

Caption: =DateToStr (dtpVisaStart. Date);

SubItems[0]: =DateToStr (dtpVisaEnd. Date);

SubItems[1]: =cbxCountry. Text;

SubItems[2]: =DateToStr (dtpVisaDate. Date);

SubItems[3]: =lbedVisaType. Text;

SubItems[4]: =lbedCountryWhere. Text;

End;

end;

procedure TfmSchengenAgreement. lvCountriesKeyDown (Sender: TObject;

var Key: Word; Shift: TShiftState);

begin

If Key=VK_DELETE Then

bbCountryDeleteClick (Self);

end;

procedure TfmSchengenAgreement. lvCountriesChange (Sender: TObject;

Item: TListItem; Change: TItemChange);

begin

If Change< >ctState Then Exit;

If Item. SubItems. Count=0 Then Exit;

dtpVisaStart. Date: =StrToDate (Item. Caption);

dtpVisaEnd. Date: =StrToDate (Item. SubItems[0]);

cbxCountry. Text: =Item. SubItems[1];

dtpVisaDate. Date: =StrToDate (Item. SubItems[2]);

lbedVisaType. Text: =Item. SubItems[3];

lbedCountryWhere. Text: =Item. SubItems[4];

end;

procedure TfmSchengenAgreement. miNewClick (Sender: TObject);

begin

If Sender< >nil Then

If Application. MessageBox ('Очистити анкету для занесення нових даних?', 'Нова анкета', MB_YESNO+MB_ICONQUESTION)< >IDYES Then Exit;

ClearComponents (fmSchengenAgreement, -1);

ClearComponents (fmSchengenAgreement, -2);

//cbxFamilyStatus. ItemIndex: =0;

chbxArmyClick (Self);

chbxFatherDeadClick (Self);

chbxMotherDeadClick (Self);

pcPages. ActivePageIndex: =0;

end;

procedure TfmSchengenAgreement. miOpenClick (Sender: TObject);

Var

AnkFile: TFileStream;

begin

If Not (OpenDialog1. Execute) Then Exit;

miNewClick (nil);

AnkFile: =TFileStream. Create (OpenDialog1. FileName, fmOpenRead);

LoadComponents (fmSchengenAgreement, -1, AnkFile);

AnkFile. Free;

SaveDialog1. FileName: =OpenDialog1. FileName;

end;

procedure TfmSchengenAgreement. miSaveAsClick (Sender: TObject);

begin

If Not (SaveDialog1. Execute) Then Exit;

miSaveClick (nil);

end;

procedure TfmSchengenAgreement. miSaveClick (Sender: TObject);

Var

AnkFile: TFileStream;

begin

dbconnect. ADOTable1. Insert;

SetFocus;

Update;

end;

procedure TfmSchengenAgreement. FormCreate (Sender: TObject);

begin

miNewClick (nil);

end;

procedure TfmSchengenAgreement. lbedSurnameChange (Sender: TObject);

begin

//lbFullName. Caption: =lbedSurname. Text+' '+lbedName. Text+' '+lbedPatronymic. Text;

end;

procedure TfmSchengenAgreement. Timer1Timer (Sender: TObject);

begin

Timer1. Enabled: =False;

Timer1. Tag: =0;

end;

procedure TfmSchengenAgreement. cbxFamilyStatusExit (Sender: TObject);

begin

Timer1. Tag: =1;

Timer1. Enabled: =True;

end;

procedure TfmSchengenAgreement. lbedSurnameKeyUp (Sender: TObject;

var Key: Word; Shift: TShiftState);

begin

If Timer1. Tag< >1 Then Exit;

If Key< >9 Then Exit;

Timer1. Enabled: =False;

actNextPageExecute (Self);

end;

procedure TfmSchengenAgreement. FormActivate (Sender: TObject);

begin

dbconnect. ADOTable1. Insert;

Update;

end;

end.

ПоказатьСвернуть
Заполнить форму текущей работой