Информатика программирование : Курсовая работа: Довідник по Хмельницькому
Курсовая работа: Довідник по Хмельницькому
Зміст
Зміст
Вступ
1. Аналітичний розділ
2. Побудова інформаційно-математично
моделі задачі
3. Алгоритм задачі
4. Визначення структури даних
5. Розробка інтерфейсу програми з
користувачем
6. Складання код програми
7. Реалізація
проекту у візуальному середовищі
8. Аналіз програми
9. Тестування програми
10. Інструкція з
експлуатації програми
11.
Аналіз отриманих результатів
Висновок
Список літератури
Додаток A
Вступ
З того часу як
люди почали подорожувати на досить далекі відстані їм ставало все більш
необхідно знати де вони знаходяться і як знайти дорогу додому. Першими
мандрівниками були купці, які в пошуках нових дорогих товарів відкривали
невідомі землі. Вони розпочали описувати природу нових країн, життя і побуту
місцевих жителів, продукцію що ті виготовляли. За купцями вирушали досліджувати
нові країни вчені, які не тільки описували, а й вивчали особливості природи
діяльності населення. Потім за цими записами та «замальовками» створювали щось
подібне до географічних карт. Так почали з’явилися перші карти. На той час щоб
купити таке задоволення потрібно було викласти чимало грошей, бо географічн
карти малювались вручну і це займало досить багато часу.
У наш час існу
чимало різноманітних видів географічних карт та атласів. По них можна знайти всю
потрібну інформацію яка цікавить по тому чи іншого питанні. Також створено чимало
електронних карт, які допомагають пришвидшити пошук потрібної інформації. За
допомогою них можна знайти, вибрати та відсортувати дані. Вони дозволяють легко
показати ту частину карти яка потрібна. Лише варто ввести данні і програма
виконає всі вказані дії.
Рідним містом хмельничан
місто Хмельницький. Кожний місцевий житель, який прожив кілька років в міст
приблизно знає де що знаходиться, але що робити тим людям які приїхали в місто
у своїх справах, тільки перший раз. Їм потрібна карта у якій поданий майже
повний план розташування будинків, вулиць, бібліотек та багато іншого для того щоб
швидко зорієнтувалися. За допомогою карти можна знайти точну адресу будинку та
вулицю де він розташовується, але все виконується “вручну”. Що досить незручно.
Найбільшим
недоліком усіх карт являється їх неточність та застарілість. Якою новою карта
не була вона вважається вже застарілою, тому що на момент виходу вже щось
змінилось, бо час не стоїть на місці.
1 Аналітичний розділ
В якості теми для
курсового проекту було обрано: “Довідник по Хмельницькому”. Аналізуючи вже
снуючі електронні карти можна визначити основні і додаткові завдання курсового
проекту:
До основних
завдань можна віднести:
- пошук по
введенню вулиці;
- пошук по вибору
вулиці;
- пошук по
району;
- показ частини
карти вибраного району;
До додаткових
завдань, можна віднести:
- виведення
вулиці на екран у вигляді лінії яка мерехтить;
- замальовування
у нестандартний колір та ширину;
- додаткова
нформація про місто;
- умовні позначення
на карті;
В даному курсовому
проекті буде представлено довідник міста Хмельницького, в якому можливо виконувати
пошук або вибір по конкретній вулиці, та відсортувати вулиці по вибраному
районі, а також переглядати вибраний район при виборі конкретно дії. Усе це можливо
буде розробити у середовищі – Delphi. Середовище програмування Delphi дозволя
швидко і легко створювати програму у якій буде зручний та зрозумілий
користувачу інтерфейс, а також легке та доступне управління програмою. Орієнтована
мова програмування Delphi має свій набір компонентів які допоможуть у
реалізації та оформлені програми. Delphi має свій текстовий редактор та власний
набір конкретних команд які відрізняють його від інших мов програмування. В
програмі обов’язково буде головне меню. В якому будуть представленні команди
для роботи з програмою, за допомогою яких можна виконувати конкретні дії. Також
буде довідка, для того щоб користувач міг детальніше розібратися з програмою,
яка буде представлена перед ним, або просто звернутись до неї по допомогу, коли
виникнуть проблеми, які не можна вирішити самостійно. Вагомим недоліком Delphi являється
порівняно низька швидкість роботи, а також нераціональне використання ресурсів.
2 Побудова
нформаційно-математичної моделі задачі
Побудова
нформаційної моделі задачі полягає у визначенні вхідних даних, способів їх
зібрання та обробки, а також визначення вихідних даних. Для розв’язання
будь-якої задачі необхідно скласти її математичну модель, тобто послідовність
дій, які необхідно виконати, щоб отримати розв’язок задачі.
Для того щоб
можна було знайти потрібну вулицю необхідно спочатку ввести її назву у
спеціальне поле для пошуку, після цього натиснути кнопку яка знаходиться під
полем введення, тоді вулиця з’явилась на екрані, але до того кнопка пошуку
вулиці являється неактивною, тільки при введені першого символу назви вулиц
кнопка активізується. При введені наступної вулиці попередня буде знищена.
При введені назви
вулиці вона порівнюватиметься зі списком вулиць які знаходитиметься в масиві,
якщо назва вулиці яка була введена співпадає з назвою вулиці, яка розмішується
в масиві, то на екран виводитиметься вулиця замальована в червоний колір, вона
буде мерехтіти для того щоб користувач швидше звернув на неї увагу. Якщо назва
вулиці не співпаде, то на екран програма виводитиме повідомлення. Саме ж
переміщення на вказану вулицю здійснюватиметься за допомогою горизонтальної та
вертикальної ліній прокрутки. Щоб знайти вулицю горизонтальну і вертикальну
лінії прокрутки присвоюється значення першої точки по вісі координат Х та У. Потім
від першої точки знайденої вулиці відніматиметься певне відхилення, для
зручного виведення на екран вулиці. Коли ж вулиця знайдена вона замальовується
у червоний колір. Пропадає та з’являється за рахунок “вічного циклу”, тобто
таймера. В ньому йде проста перевірка. Якщо вибравши певну вулицю лінія
загорілась тоді її гасимо і знову засвічуємо. За допомогою цього методу ми
зациклюємо показ лінії на екрані. Для того що вивести наступну вулицю на
монітор необхідно спочатку очистити попередню. В підтверджені вибору наступно
вулиці існує команда яка очищує попередню вулицю.
3 Алгоритм задачі
Алгоритм – це
чітка послідовність дій, які необхідно виконати для виконання задачі та
отримання результату.
Блок-схема
алгоритму – це графічне зображення його структури в якому кожний етап процесу
оброблення даних подається у вигляді певної геометричної фігури.
Рисунок 1 – Блок-схема алгоритм
пошуку вулиці.
Рисунок 2 – Блок-схема алгоритм свічення та погашення вулиці.
Рисунок 3 – Блок-схема алгоритм вибору.
4
Визначення структури даних
При написанн
коду програми необхідно було використовувати безліч змінних різних типів даних:
масиви, файлові змінні, записи, а також звичайні змінні.
Таблиця 1
глобальні змінні Unit1
Ідентифікатор |
Тип змінних |
Призначення |
An, Аni |
Цілий |
Зациклення вулиці при виводі на екран (мерехтіння) |
K |
Цілий |
Потрібна для вибору вулиці з циклу. |
Таблиця 2
локальні змінні Unit1
Ідентифікатор |
Тип змінних |
Призначення |
I |
Цілий |
Використовується для пошуку
вулиці в циклі
|
Znaydeno |
Логічний |
Виведення повідомлення на екран вразі того якщо вулиця введена не вірно |
Таблиця 3
записи Unit1
Назва запису |
Поля запису |
Тип полів |
Призначення |
Vul |
Name |
Рядок |
Назва вулиці |
X..X13, Y0..Y13 |
Цілий |
Координати вулиць |
Array[1..313] of Vul |
Масив |
Масив для розміщення назви вулиць |
F:file of Vul |
Запис |
Використовується для читання з файлу даних |
5 Розробка
нтерфейсу програми з користувачем
Розробка дано
програми буде відбуватись у середовищі програмування Delphi 6. Дана оболонка
програмування 32-розрядна і використовується для створення користувальницьких
програм для Windows. Програма після її створення буде повністю відповідати
даній операційній системі.
Інтерфейс дано
програми складається з загальної форми на якій знаходяться такі компонентів:
Image1
Зображення. Потрібне для завантаження малюнка карти Хмельницького.
AcroPDF1 – Спилка
на програму Acrobat Х.0. Відкриває файли з форматом PDF. Х.0 – це версія
програми.
Timer1
Лічильник (нескінченний цикл). Використовується для зациклення виводу вулиці на
екран.
Panel1
Використовується для розміщення на ньому інших компонентів.
MainMenu1
Містить головне меню програми.
Button1 – Кнопка.
Використовується для пошуку вулиці по її назві.
Button2 – Кнопка.
Потрібний для підтвердження вибору вулиці зі списку.
Button3 – Кнопка.
Підтвердження вибору вибраного району зі списку.
ComboBox1
Список. Належний візуальний компонент використовується для показу вулиці.
ComboBox2
Список. Необхідний для підтвердження та вибору району зі списку.
ComboBox3 – Список.
Використовується для введення вулиці.
TreeView1
Дерево. Компонент використовується для відсортованих вулиць по району та пошуку
х на карті.
RadioButton – Для
вибору однієї з наведених ділянок опрацювання даних.
PageControl1
Багато сторінкове вікно. Використовується для заощадження місця на робочо
вікні.
CheckBox1- Флаг.
Вибір для завантаження району.
Label1- Надпис.
Підписує певний елемент для кращого розуміння.
ScrollBox1
вікно з прокруткою. Використовується
для створення зон відображення з прокруткою. Прокручує на знайдену вулицю.
              
Рисунок 4 Вікно
головної програми.
    
Рисунок 5 Вікно
допомоги користувачу.

      Рисунок 6 вікно виведення
нформації про автора.
    
Рисунок 7 Умовн
позначення.
 
 Рисунок 8 Відомості про місто
Хмельницький.
Головне вікно
програми має такий вигляд:

Рисунок 9 Вікно
готової програми (закладка “Пошук вулиць”).

Рисунок 10 Вікно
готової програми (закладка “Детальний перегляд”).
6 Складання
коду програми
Код програми
алгоритм дій, написаний на конкретній мові програмування. Цей проект написано з
використанням Delphi 6.0, отже мова програмування Object Pascal.
В Delphi 6.0 вся
програма складається з окремих модулів.
Нижче будуть
перелічені процедури кожного модуля (повний текст програми наведено в Додатку
1).
Unit 1 - Головне
вікно програми.
procedure
FormCreate – виконання певних дій при завантажені.
procedure
Button1Click – підтвердження та пошук введеної вулиці.
procedure N5Click
переміщення на поле введення вулиці.
procedure N7Click
вихід з програми.
procedure
Timer1Timer – створення мерехтіння вулиці.
procedure
Button2Click - підтвердження та пошук вибраної вулиці.
procedure N3Click
показує довідку програми.
procedure
N10Click – встановлює карту в початковий режим завантаження.
procedure N6Click
показує закладку “Пошук вулиць”.
procedure
N16Click - показує закладку "Детальний перегляд"
procedure
N13Click – переміщає курсор на вибір по вулиці.
procedure N4Click
показує коротку інформацію про автора.
procedure
TreeView1Click – тут розміщуються відсортовані вулиці по районах.
procedure
ComboBox1Change – перевірка на пустий текст в списку.
procedure
Button3Click – підтвердження та пошук району.
procedure
N17Click – показує форму з умовними позначеннями.
procedure
ComboBox2Change – перевірка вибору пустого тексту в списку.
procedure
ComboBox1KeyPress – можливість натискання клавіші “Enter”.
procedure
ComboBox2KeyPress – можливість натискання клавіші “Enter”.
procedure
N15Click - переміщає курсор на вибір по району та відкриває список.
procedure
ComboBox3Change – перевірка вибору пустого тексту в списку.
procedure
ComboBox3KeyPress – можливість натискання клавіші “Enter”.
procedure
RadioButtonClick – недоступність певних елементів на панелі.
procedure N9Click
сторія міста Хмельницького.
Unit 2 - Довідка.
procedure
Button1Click – закрити вікно довідки.
procedure
TreeView1Click – завантажує в текстове поле дані про певний розділ.
Unit 3 – Інформація
про автора.
procedure
OKButtonClick – закриває вікно.
Unit 4
Інформація про автора.
procedure
Button1Click – закриває вікно умовних позначень.
procedure
FormCreate – завантажує картинку в Іmage1.
Unit 5 – Історія
міста.
procedure
Button1Click – закриває вікно.
procedure
FormCreate – завантажує дані в Memo1.
7 Реалізація
проекту у візуальному середовищі
В проект
використовується нестандартний компонент, під назвою – AcroPDF. Для його
використання необхідно спочатку встановити на комп’ютер Acrobat х.0. Після
цього необхідно проінсталювати типову бібліотеку для Acrobat (Project ->
Import Type Library). З меню Delphi виберіть "Acrobat Control for ActiveX
(version x)". Де x - поточна версія бібліотеки. Також виберіть закладку
куди буде поміщений новий компонент. Натиснути кнопку інсталяції. Після
нсталяції в Delphi буде створено новий компонент з назвою – AcroPDF.
Реалізація
проекту у візуальному середовищі складається з таких етапів:
1. Запустити систему візуального
об’єктно-орієнтовного програмування Delphi 6.
2. Створюємо 5 форм. Називаємо
х: 1-ша – Forma1, 2-га – Forma2, 3-тя – AboutBox, 4-та – Forma4, 5-та
Forma5.
3. Коли з’явиться 1-ша форма
налаштувати згідно рисунка 4.
4. За допомогою панел
нструментів перетягуємо на форму Forma1 у закладку TabSheet1 наступн
компоненти: PopupMenu1, Timer1,
Button1, Button2, Button3, Label1,
ComboBox1, ComboBox2, ComboBox3, RadioButton1,
RadioButton2, RadioButton3, ScrollBox1, Рanel1, PageControl1 та TreeView1. На
наступну закладку(TabSheet2) вставляємо AcroPDF1. Налаштовуємо ці компоненти для
нормальної роботи програми.
5. На форму Forma2 перетягуємо
такі компоненти: TreeView1, Memo1 та Button1.
6. На форму AboutBox наносимо наступн
компоненти: Image1, три компоненти
Label, Рanel1,
Button1.
7. На 4-ту форму наносим так
компоненти: Image1, ScrollBox1, Рanel1, Button1 і це все розміщуємо так само як
на рисунку 7.
8. На 5-ту форму накладаємо так
компоненти як: Memo1, Рanel1 іButton1.
9. Розмістити усі компоненти як
показано на рисунках 4 – 8.
10. Після подвійного натискання
вводимо текст який надруковано у додатку А.
11. Після виконання усіх дій
зберігаємо програму у новій папці компілюємо та закриваємо Delрhi.
8 Аналіз
програми
Аналізуючи програму можна помітити її недоліки та переваги. Головними недоліками
програми, являється те, що програма надто велика за своїми розмірами. Вона
займає чимало місця на жорсткому диску. Через це програма довго грузиться.
Також використовується багато місця в оперативній пам’яті, через що операційна
система Windows починає повільно працювати з іншими програмами. Тому щоб
скористатись програмою потрібно мати швидкодіючий процесор та достатньо
оперативної пам’яті на комп’ютері, а також до 260 мегабайт вільного місця на
носію інформації. Ще одним видимим недоліком являється повільний пошук вулиць
та введення назви вулиці з великої літери. Це відбувається тому що при кожному
новому пошуку вулиця має очиститись та знову по новому завантажити зображення.
Використовується для того щоб на екрані монітора не залишались старі вулиці. Також
в програмі не передбачено команди, яка мала б відповідати за зміну стандартної назви
вулиці, що відноситься до недоліків програми. Одним з недоліків є те що
користувачу не надано можливості для зміни оформлення програми під свій погляд.
Він лише користуватись стандартним виглядом форми, що не всіх влаштовує. До
переваг програми можна віднести те, що всі дії виконуються правильно. В програм
розроблений зручний інтерфейс. Усе дуже легко зрозуміти, навіть без
використання довідки. Виведення на екран здійснюється у вигляді замальовування
вулиці червоною лінією яка з’являється та гасне. Це розроблено для того, щоб
користувач швидше звернув увагу на знайдену вулицю. Можливо в програмі не
тільки вводити назву вулиці для пошуку, а й вибирати її зі списку, а також
можливо відсортувати її по районах, що можна вважати значною перевагою програми.
Нею можуть користуватись усі бажаючі, кому потрібно знайти швидко необхідну
вулицю на карті. Також програма володіє довідковою інформацією, до яко
користувач може звернутись в будь-який необхідний момент. Кожний об’єкт який
знаходиться на формі підписаний підказками, це зроблено з тою метою щоб
користувач зміг швидше з орієнтуватися у програмі.
9 Тестування
програми
Тестування
програми – це один із способів перевірити програму на її правильну роботу. Воно
допомагає виявити помилки та виправити їх. Також тестування допомагає виявити
які необхідні мінімальні запити до комп’ютера.
Перш за все
перевірялось чи не виникає проблем при запуску та закритті програми. Потім
маємо перевірити програму безпосередньо на готовому працюючому коді. Для цього
введемо будь-яку з відомих нам вулиць і натиснемо пошук. Цей експеримент
пройшов успішно, вулицю знайдено. Але вже при наступному виборі на екран
монітора застигла минула вулиця. Це можна віднести до збою в програмі.
Перевіривши по новому код програми і переправивши деякі команди програма
запрацювала нормально, бо при наступному запуску, та перевірці вже було все
гаразд. Вулиця чітко виводилась на екран монітора, та зникала при вибор
наступної. Також тестувалася програма на вибір вулиці та відсортування вулиць
по їх розміщенню в різних районах міста. При виборі вулиці на екран з’явилась
шукана вулиця.
Дана програма
також тестувалась на різних комп’ютерах з різними операційними системами класу
Windows. Зокрема програма показала свою швидкодії та коректну роботу на
операційній системі Windows XP Professional. Також на даних комп’ютерах було
встановлено різне апаратне забезпечення, яке показувало конкретні недоліки та
не доопрацювання в програмі. В результаті цього тесту, було перевірено, як
програма поводить себе на різних комп’ютерах. Вона довго завантажувалась на
старих машина, не коректно працювала. Або відкривалась за декілька секунд, на
операційних системах, де швидкодія процесора, та оперативної пам’яті вистачало.
Програма тестувалась близько ста разів. За цей час сталось багато змін в код
програми. Програма під час тестування показала певний ряд різноманітних помилок
як орфографічних та логічних помилок, які були виправлені по ходу опрацювання
тестування. Тестування пройшло успішно, тому можна сказати що програма повністю
готова до експлуатування.
10 Інструкція
з експлуатації програми
Для роботи
програми комп’ютер повинен відповідати таким умовам:
ü
Windows
9x/2000/ME/XP
ü
Pentium
III 1000MGz
ü
256 Mb
Ram
ü
64 Mb
video card
ü
CD-ROM
ü
260 МВ
вільного місця
ü
Наявність
мишки та клавіатури
Для того щоб
встановити програму, необхідно вставити диск з програмою, потім скопіювати
повністю папку на комп’ютер. Та запустити програму.
Щоб запустити
програму достатньо два рази клацнути на неї, програма знаходиться в папці.
Після запуску
програми користувачу потрібно спочатку вибрати одну з трьох дій: Ввести назву, вибрати
з вказаних або вибрати район. Після того як користувач ввів правильну назву
вулиці йому потрібно натиснути кнопку пошуку. За допомогою неї здійснюється
пошук вказаної вулиці. Після чого вулицю буде показано на екран. Якщо вулиця
буде введена не вірно то користувач буде повідомлений. Щоб скористатися
командою перегляду району необхідно спочатку при виборі району поставити
галочку для підтвердження цієї дії. Тоді в списку вибрати потрібний район і він
буде завантажений. Щоб відмінити цю команду і перейти до простого сортування
необхідно зняти галочку. Також за допомогою команди “нормальний розмір” яка
розміщується в головному меню можна переглянути карту повністю. Якщо на карт
потрібно знайти пені визначні місця наприклад такі як: театр, кінотеатр, музей
та навіть просто бензозаправну, спочатку потрібно знати як воно все позначається.
Тут і допоможуть умовні позначення які розміщуються в головному меню. Потрібно
вибрати: головне меню “Вид” потім підпункт “Умовні позначення”. Тоді з’являться
всі позначення які використовуються на карті.
11 Аналіз
отриманих результатів
Аналіз отриманих
результатів проводився під час тестування програми. На кожному етапі введення
чи вибору вулиці програми виводить потрібні вулиці на монітор якщо назва
співпала та виводить помилку якщо такої назви немає. Виконаний проект повністю
відповідає усім поставленим вимогам, тому з упевненістю можна сказати, що
поставленої мети досягнуто.
В програмі можна
вибрати, ввести та відсортувати по районі вулиці.
Після введення чи
вибору вулиці вона автоматично буде показана на екрані монітора, і ми можемо
пересвідчитись в достовірності роботи програми.

Рисунок 10. Вікно
програми перед початком роботи.
Для вибору вулиц
натиснемо:

Виберемо вулицю
зі списку:

Рисунок 10 Вибір
зі списку вулиці.

Рис 11 Знайдена
вулиця.
Після того як ми
виберемо чи введемо вулицю вона з’явиться на екрані при умові що ви натиснете
кнопку підтвердження.
Висновок
Для розробки даної програми було
необхідно продумати та пояснити кожний крок. Для програмування використовувалось
орієнтоване середовище програмування Delphi. Програму можна використовувати для
масового розповсюдження. Вона буде популярна серед великої кількості людей у
різних вікових групах. В програмі створений простий графічний інтерфейс, який
забезпечує легкість у користуванні і чітку зрозумілість для звичайних
користувачів. Кожній людині якій буде потрібно знайти вулицю в міст
Хмельницького може звернутись по допомогу до цієї програми. В ній наведена
докладна історична інформація міста Хмельницького. Також в програмі створена
довідка яка допоможе краще ознайомитися користувачу з програмою, коли він не
зрозуміє як працює та чи інша команда в програмі.
Поставлена задача у створенні довідника по
місту Хмельницькому, була виконана у повному обсязі та з додатковими завданнями,
які були поставлені для кращої реалізації проекту. При перевірці працездатност
програми на різних комп’ютерах не виникало ніяких проблем, вулиці завжди
виводились в тому місці де було потрібно, програма працювала чітко та без
помилок. При розробці даного проекту, було використано велику кількість
літератури, з метою покращення своїх знань та навичок. Література
використовувалась, також з метою докладнішого вивчення властивостей різних
елементів. Значно покращились навики, щодо розробки програм на мов
програмування Delphi.
До цього проекту була розроблена
пояснювальна записка, згідно самостійної розробки аналогічного проекту в
середовищі програмування. Дана записка містить одинадцять розділів для зручно
розробки проекту. В кожному розділі детально розписані всі дії які буде
необхідно виконати для того щоб реалізувати створення даного проекту.
Список використаної літератури:
1.
В. Фаронов – Система программирования Delphi;
2.
Глинський Я.М – Turbo Pascal\Delphi 6 – видання;
3.
Кэнту – Delphi для профисионалов;
4.
Краснов – Графика в проектах Delphi;
5.
Марков Є.П. – Програмированье в Delphi 7;
6.
Мозговой М. -Занимательное программирование.
7.
Григас Г. – Начала програмируванье. – М.,1987
8.
Грогоно П. – Програмируванье на языке паскаль.
9.
Спірідонов В.І. – Обчислювальна техніка і програмування.
10.
Глинський Я.М. – Основи інформатики та обчислювальної техніки.
11.
Абрамов С.А – Начала програмируванья на языке Паскаль.
12.
Фаронов В.В. – Delphi 5 учебный курс.
13.
Черняхівський В.В – Сучасна технологія візуального програмування.
14.
Немнюгин – Turbo Pascal.
15.
Климов – Pascal 7.0
16.
Юрий Гурский – Трюки и эффекты в Delphi 7.
17.
Род Стивенс – Delphi. Готовые алгоритмы.
18.
Виктор Пестриков, Артур Маслобоев – Delphi на примерах.
19.
Михаил Фленов – Программирование в Delphi глазами хакера.
Додаток А
unit Unit1;
interface
uses
Windows,
Messages,SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, ExtCtrls, ComCtrls, Grids, Menus, ToolWin, ActnMan,
ActnCtrls,
ActnMenus, CheckLst, OleCtrls, AcroPDFLib_TLB, Buttons;
type
TForm1 =
class(TForm)
PageControl1:
TPageControl;
TabSheet1:
TTabSheet;
TabSheet2:
TTabSheet;
Panel1: TPanel;
ScrollBox1:
TScrollBox;
Image1: TImage;
MainMenu1:
TMainMenu;
N1: TMenuItem;
N5: TMenuItem;
N8: TMenuItem;
N7: TMenuItem;
N10: TMenuItem;
N14: TMenuItem;
N6: TMenuItem;
N16: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Timer1: TTimer;
Button1: TButton;
ComboBox1: TComboBox;
Button2: TButton;
ComboBox2:
TComboBox;
TreeView1:
TTreeView;
N15: TMenuItem;
N17: TMenuItem;
Button3: TButton;
Label1: TLabel;
ComboBox3:
TComboBox;
AcroPDF1:
TAcroPDF;
RadioButton1:
TRadioButton;
RadioButton2:
TRadioButton;
RadioButton3:
TRadioButton;
CheckBox1:
TCheckBox;
Label2: TLabel;
Label3: TLabel;
N9: TMenuItem;
procedure
FormCreate(Sender: TObject);
procedure
Button1Click(Sender: TObject);
procedure
N5Click(Sender: TObject);
procedure
N7Click(Sender: TObject);
procedure
Timer1Timer(Sender: TObject);
procedure
Button2Click(Sender: TObject);
procedure
N3Click(Sender: TObject);
procedure
N10Click(Sender: TObject);
procedure
N6Click(Sender: TObject);
procedure
N16Click(Sender: TObject);
procedure
N13Click(Sender: TObject);
procedure
N4Click(Sender: TObject);
procedure
TreeView1Click(Sender: TObject);
procedure
ComboBox1Change(Sender: TObject);
procedure
Button3Click(Sender: TObject);
procedure
N17Click(Sender: TObject);
procedure
ComboBox2Change(Sender: TObject);
procedure
ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure
ComboBox2KeyPress(Sender: TObject; var Key: Char);
procedure
N15Click(Sender: TObject);
procedure
ComboBox3Change(Sender: TObject);
procedure
ComboBox3KeyPress(Sender: TObject; var Key: Char);
procedure
Panel1Click(Sender: TObject);
procedure
RadioButton1Click(Sender: TObject);
procedure
RadioButton2Click(Sender: TObject);
procedure
RadioButton3Click(Sender: TObject);
procedure
N9Click(Sender: TObject);
procedure
CheckBox1Click(Sender: TObject);
private
{ Private
declarations }
public
{ Public
declarations }
end;
Type Vul=Record
Name:string[35];
X,Y,X1,Y1,X2,Y2,X3,Y3:Integer;
X4,Y4,X5,Y5,X6,Y6,X7,Y7:Integer;
X8,Y8,X9,Y9,X10,Y10,X11,Y11,X12,Y12,X13,Y13:Integer;
end;
var
Form1: TForm1;
A:array[1..313]
of vul;
F:file of Vul;
an, ani: byte;
k: integer;
implementation
uses Unit2,
Unit3, Unit4, Unit5;
{$R *.dfm}
procedure
TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
AcroPDF1.LoadFile
('Дані\Карта\Khmelnitskiy Map.pdf');
ComboBox2.Items.Add('Виставка');
ComboBox2.Items.Add('Гречани');
ComboBox2.Items.Add('Ракове');
ComboBox2.Items.Add('Лезневе');
ComboBox2.Items.Add('Дубове');
ComboBox2.Items.Add('Ружична');
ComboBox2.Items.Add('Катіон');
ComboBox2.Items.Add('Книжківці');
ComboBox2.Items.Add('Центр');
ComboBox2.Items.Add('Озерна');
Button1.Enabled:=false;
Button2.Enabled:=false;
Button3.Enabled:=false;
TreeView1.Enabled:=false;
RadioButton1.Checked:=true;
AssignFile(F,
'Дані/Вулиці/Координати вулиць.DKH');
Reset(F);
for i:=1 to 313
do begin
Read(F,A[i]);
ComboBox1.Items.Add(A[i].Name);
ComboBox3.Items.Add(A[i].Name);
end;
CloseFile(f);
Image1.Picture.LoadFromFile('Дані/Карта/Карта
Хмельницького2.bmp');
Image1.AutoSize:=false;
end;
procedure
TForm1.Button1Click(Sender: TObject);
var i:integer;
znaydeno:
boolean;
begin
PatBlt(Image1.Canvas.Handle,
0, 0, Image1.ClientWidth, Image1.ClientHeight, WHITENESS);
znaydeno:=false;
for I:=1 to 313
do
if
ComboBox3.Text=A[i].Name Then begin K:=I;
Image1.Align:=alNone;
znaydeno:=true;
ani:=1;
Image1.Picture.LoadFromFile('Дані/Карта/Карта
Хмельницького2.bmp');
Image1.AutoSize:=true;
Image1.Canvas.Pen.Mode:=Pmxor;
Image1.Canvas.Pen.Color
:=$af;
Image1.Canvas.Pen.Width
:= 6;
ScrollBox1.HorzScrollBar.Position:=a[k].X-160;
ScrollBox1.VertScrollBar.Position:=a[k].Y-380;
if znaydeno=false
then begin
ShowMessage('Ведіть
правильну назву вулиці!');
ComboBox3.Clear;
ComboBox3.SetFocus;
ComboBox3.SelectAll;
end;
end;
end;
procedure
TForm1.N5Click(Sender: TObject);
begin
RadioButton1.Checked:=
true;
ComboBox3.SetFocus;
end;
procedure
TForm1.N7Click(Sender: TObject);
begin
Halt;
end;
procedure
TForm1.Timer1Timer(Sender: TObject);
begin
Image1.Canvas.Pen.Mode:=Pmxor;
if(ani=1)or(an=1)
then begin
Image1.Canvas.MoveTo(a[k].x,a[k].y);
Image1.Canvas.LineTo(a[k].x1,a[k].y1);
Image1.Canvas.MoveTo(a[k].X1,a[k].y1);
Image1.Canvas.LineTo(a[k].X2,a[k].Y2);
Image1.Canvas.MoveTo(a[k].X2,a[k].y2);
Image1.Canvas.LineTo(a[k].X3,a[k].Y3);
Image1.Canvas.MoveTo(a[k].X3,a[k].y3);
Image1.Canvas.LineTo(a[k].X4,a[k].Y4);
Image1.Canvas.MoveTo(a[k].X4,a[k].y4);
Image1.Canvas.LineTo(a[k].X5,a[k].Y5);
Image1.Canvas.MoveTo(a[k].X5,a[k].y5);
Image1.Canvas.LineTo(a[k].X6,a[k].Y6);
Image1.Canvas.MoveTo(a[k].X6,a[k].y6);
Image1.Canvas.LineTo(a[k].X7,a[k].Y7);
Image1.Canvas.MoveTo(a[k].X7,a[k].y7);
Image1.Canvas.LineTo(a[k].X8,a[k].Y8);
Image1.Canvas.MoveTo(a[k].X8,a[k].y8);
Image1.Canvas.LineTo(a[k].X9,a[k].Y9);
Image1.Canvas.MoveTo(a[k].X9,a[k].y9);
Image1.Canvas.LineTo(a[k].X10,a[k].Y10);
Image1.Canvas.MoveTo(a[k].X10,a[k].y10);
Image1.Canvas.LineTo(a[k].X11,a[k].Y11);
Image1.Canvas.MoveTo(a[k].X11,a[k].y11);
Image1.Canvas.LineTo(a[k].X12,a[k].Y12);
Image1.Canvas.MoveTo(a[k].X12,a[k].y12);
Image1.Canvas.LineTo(a[k].X13,a[k].Y13);
end;
if an=0 then
an:=1 else an:=0;
end;
procedure
TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
PatBlt(Image1.Canvas.Handle,
0, 0, Image1.ClientWidth, Image1.ClientHeight, WHITENESS);
for I:=1 to 313
do
if
ComboBox1.Text=A[i].Name Then begin K:=I;
Image1.Align:=alNone;
ani:=1;
Image1.Picture.LoadFromFile('Дані/Карта/Карта
Хмельницького2.bmp');
Image1.AutoSize:=true;
Image1.Canvas.Pen.Mode:=Pmxor;
Image1.Canvas.Pen.Color
:=$af;
Image1.Canvas.Pen.Width
:= 6;
ScrollBox1.HorzScrollBar.Position:=a[k].X-160;
ScrollBox1.VertScrollBar.Position:=a[k].Y-380;
end;
end;
procedure
TForm1.N3Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure
TForm1.N10Click(Sender: TObject);
begin
Image1.AutoSize:=false;
Image1.Align:=alClient;
end;
procedure
TForm1.N6Click(Sender: TObject);
begin
TabSheet1.Show;
end;
procedure
TForm1.N16Click(Sender: TObject);
begin
TabSheet2.Show;
end;
procedure
TForm1.N13Click(Sender: TObject);
begin
RadioButton2.Checked:=
true;
ComboBox1.SetFocus;
ComboBox1.DroppedDown
:= True
end;
procedure
TForm1.N4Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;
procedure
TForm1.TreeView1Click(Sender: TObject);
var i:integer;
begin
PatBlt(Image1.Canvas.Handle,
0, 0, Image1.ClientWidth, Image1.ClientHeight, WHITENESS);
for I:=1 to 313
do
if
TreeView1.Selected.Text=A[i].Name Then begin K:=I;
Image1.Align:=alNone;
ani:=1;
Image1.Picture.LoadFromFile('Дані/Карта/Карта
Хмельницького2.bmp');
Image1.AutoSize:=true;
Image1.Canvas.Pen.Mode:=Pmxor;
Image1.Canvas.Pen.Color
:=$af;
Image1.Canvas.Pen.Width
:= 6;
ScrollBox1.HorzScrollBar.Position:=a[k].X-160;
ScrollBox1.VertScrollBar.Position:=a[k].Y-380;
end;
end;
procedure
TForm1.ComboBox1Change(Sender: TObject);
begin
if
ComboBox1.Text<>'' then Button2.Enabled:=true;
end;
procedure
TForm1.Button3Click(Sender: TObject);
begin
if
ComboBox2.Text<>'' then
TreeView1.Enabled:=true;
if
ComboBox2.Text='Виставка' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[2].name);
TreeView1.Items.Add(nil,a[3].name);
TreeView1.Items.Add(nil,a[4].name);
TreeView1.Items.Add(nil,a[5].name);
TreeView1.Items.Add(nil,a[6].name);
TreeView1.Items.Add(nil,a[7].name);
TreeView1.Items.Add(nil,a[8].name);
TreeView1.Items.Add(nil,a[9].name);
TreeView1.Items.Add(nil,a[10].name);
TreeView1.Items.Add(nil,a[11].name);
TreeView1.Items.Add(nil,a[12].name);
TreeView1.Items.Add(nil,a[13].name);
TreeView1.Items.Add(nil,a[26].name);
TreeView1.Items.Add(nil,a[27].name);
End;
if
ComboBox2.Text='Озерна' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[14].name);
TreeView1.Items.Add(nil,a[15].name);
TreeView1.Items.Add(nil,a[16].name);
TreeView1.Items.Add(nil,a[17].name);
TreeView1.Items.Add(nil,a[18].name);
TreeView1.Items.Add(nil,a[19].name);
TreeView1.Items.Add(nil,a[20].name);
TreeView1.Items.Add(nil,a[21].name);
TreeView1.Items.Add(nil,a[22].name);
TreeView1.Items.Add(nil,a[23].name);
TreeView1.Items.Add(nil,a[24].name);
TreeView1.Items.Add(nil,a[25].name);
TreeView1.Items.Add(nil,a[28].name);
End;
if
ComboBox2.Text='Лезневе' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[29].name);
TreeView1.Items.Add(nil,a[30].name);
TreeView1.Items.Add(nil,a[31].name);
TreeView1.Items.Add(nil,a[32].name);
TreeView1.Items.Add(nil,a[33].name);
TreeView1.Items.Add(nil,a[34].name);
TreeView1.Items.Add(nil,a[35].name);
TreeView1.Items.Add(nil,a[36].name);
TreeView1.Items.Add(nil,a[37].name);
TreeView1.Items.Add(nil,a[38].name);
TreeView1.Items.Add(nil,a[39].name);
TreeView1.Items.Add(nil,a[40].name);
TreeView1.Items.Add(nil,a[41].name);
TreeView1.Items.Add(nil,a[42].name);
TreeView1.Items.Add(nil,a[43].name);
TreeView1.Items.Add(nil,a[44].name);
TreeView1.Items.Add(nil,a[45].name);
TreeView1.Items.Add(nil,a[46].name);
TreeView1.Items.Add(nil,a[47].name);
TreeView1.Items.Add(nil,a[48].name);
TreeView1.Items.Add(nil,a[49].name);
TreeView1.Items.Add(nil,a[50].name);
TreeView1.Items.Add(nil,a[51].name);
TreeView1.Items.Add(nil,a[52].name);
TreeView1.Items.Add(nil,a[53].name);
TreeView1.Items.Add(nil,a[54].name);
TreeView1.Items.Add(nil,a[55].name);
TreeView1.Items.Add(nil,a[56].name);
TreeView1.Items.Add(nil,a[57].name);
TreeView1.Items.Add(nil,a[58].name);
TreeView1.Items.Add(nil,a[59].name);
TreeView1.Items.Add(nil,a[60].name);
TreeView1.Items.Add(nil,a[61].name);
TreeView1.Items.Add(nil,a[62].name);
TreeView1.Items.Add(nil,a[63].name);
TreeView1.Items.Add(nil,a[64].name);
TreeView1.Items.Add(nil,a[65].name);
TreeView1.Items.Add(nil,a[66].name);
End;
if
ComboBox2.Text='Центр' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[67].name);
TreeView1.Items.Add(nil,a[68].name);
TreeView1.Items.Add(nil,a[69].name);
TreeView1.Items.Add(nil,a[70].name);
TreeView1.Items.Add(nil,a[71].name);
TreeView1.Items.Add(nil,a[72].name);
TreeView1.Items.Add(nil,a[73].name);
TreeView1.Items.Add(nil,a[74].name);
TreeView1.Items.Add(nil,a[75].name);
TreeView1.Items.Add(nil,a[76].name);
TreeView1.Items.Add(nil,a[77].name);
TreeView1.Items.Add(nil,a[78].name);
TreeView1.Items.Add(nil,a[79].name);
TreeView1.Items.Add(nil,a[80].name);
TreeView1.Items.Add(nil,a[81].name);
TreeView1.Items.Add(nil,a[82].name);
TreeView1.Items.Add(nil,a[83].name);
TreeView1.Items.Add(nil,a[84].name);
TreeView1.Items.Add(nil,a[85].name);
TreeView1.Items.Add(nil,a[86].name);
TreeView1.Items.Add(nil,a[98].name);
TreeView1.Items.Add(nil,a[99].name);
TreeView1.Items.Add(nil,a[100].name);
TreeView1.Items.Add(nil,a[101].name);
TreeView1.Items.Add(nil,a[102].name);
End;
if
ComboBox2.Text='Ракове' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[87].name);
TreeView1.Items.Add(nil,a[88].name);
TreeView1.Items.Add(nil,a[89].name);
TreeView1.Items.Add(nil,a[90].name);
TreeView1.Items.Add(nil,a[91].name);
TreeView1.Items.Add(nil,a[92].name);
TreeView1.Items.Add(nil,a[93].name);
TreeView1.Items.Add(nil,a[94].name);
TreeView1.Items.Add(nil,a[95].name);
TreeView1.Items.Add(nil,a[96].name);
TreeView1.Items.Add(nil,a[97].name);
TreeView1.Items.Add(nil,a[112].name);
TreeView1.Items.Add(nil,a[113].name);
TreeView1.Items.Add(nil,a[114].name);
TreeView1.Items.Add(nil,a[115].name);
TreeView1.Items.Add(nil,a[116].name);
TreeView1.Items.Add(nil,a[116].name);
TreeView1.Items.Add(nil,a[117].name);
TreeView1.Items.Add(nil,a[118].name);
TreeView1.Items.Add(nil,a[119].name);
TreeView1.Items.Add(nil,a[313].name);
TreeView1.Items.Add(nil,a[120].name);
TreeView1.Items.Add(nil,a[121].name);
TreeView1.Items.Add(nil,a[122].name);
TreeView1.Items.Add(nil,a[123].name);
TreeView1.Items.Add(nil,a[124].name);
TreeView1.Items.Add(nil,a[125].name);
TreeView1.Items.Add(nil,a[126].name);
TreeView1.Items.Add(nil,a[127].name);
TreeView1.Items.Add(nil,a[128].name);
TreeView1.Items.Add(nil,a[129].name);
TreeView1.Items.Add(nil,a[130].name);
TreeView1.Items.Add(nil,a[131].name);
TreeView1.Items.Add(nil,a[132].name);
TreeView1.Items.Add(nil,a[133].name);
TreeView1.Items.Add(nil,a[134].name);
TreeView1.Items.Add(nil,a[135].name);
TreeView1.Items.Add(nil,a[136].name);
TreeView1.Items.Add(nil,a[137].name);
TreeView1.Items.Add(nil,a[138].name);
TreeView1.Items.Add(nil,a[154].name);
TreeView1.Items.Add(nil,a[155].name);
TreeView1.Items.Add(nil,a[156].name);
TreeView1.Items.Add(nil,a[157].name);
TreeView1.Items.Add(nil,a[158].name);
TreeView1.Items.Add(nil,a[159].name);
TreeView1.Items.Add(nil,a[160].name);
TreeView1.Items.Add(nil,a[161].name);
TreeView1.Items.Add(nil,a[162].name);
TreeView1.Items.Add(nil,a[163].name);
TreeView1.Items.Add(nil,a[164].name);
TreeView1.Items.Add(nil,a[213].name);
TreeView1.Items.Add(nil,a[214].name);
TreeView1.Items.Add(nil,a[215].name);
TreeView1.Items.Add(nil,a[216].name);
TreeView1.Items.Add(nil,a[217].name);
TreeView1.Items.Add(nil,a[218].name);
TreeView1.Items.Add(nil,a[219].name);
End;
if
ComboBox2.Text='Ружична' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[165].name);
TreeView1.Items.Add(nil,a[166].name);
TreeView1.Items.Add(nil,a[167].name);
TreeView1.Items.Add(nil,a[168].name);
TreeView1.Items.Add(nil,a[169].name);
TreeView1.Items.Add(nil,a[170].name);
TreeView1.Items.Add(nil,a[171].name);
TreeView1.Items.Add(nil,a[172].name);
TreeView1.Items.Add(nil,a[173].name);
TreeView1.Items.Add(nil,a[174].name);
TreeView1.Items.Add(nil,a[175].name);
TreeView1.Items.Add(nil,a[176].name);
TreeView1.Items.Add(nil,a[177].name);
TreeView1.Items.Add(nil,a[178].name);
TreeView1.Items.Add(nil,a[179].name);
TreeView1.Items.Add(nil,a[180].name);
TreeView1.Items.Add(nil,a[181].name);
TreeView1.Items.Add(nil,a[182].name);
TreeView1.Items.Add(nil,a[183].name);
TreeView1.Items.Add(nil,a[184].name);
TreeView1.Items.Add(nil,a[185].name);
TreeView1.Items.Add(nil,a[186].name);
TreeView1.Items.Add(nil,a[187].name);
TreeView1.Items.Add(nil,a[188].name);
TreeView1.Items.Add(nil,a[189].name);
TreeView1.Items.Add(nil,a[223].name);
TreeView1.Items.Add(nil,a[224].name);
TreeView1.Items.Add(nil,a[225].name);
TreeView1.Items.Add(nil,a[226].name);
TreeView1.Items.Add(nil,a[227].name);
TreeView1.Items.Add(nil,a[228].name);
TreeView1.Items.Add(nil,a[229].name);
TreeView1.Items.Add(nil,a[230].name);
TreeView1.Items.Add(nil,a[231].name);
TreeView1.Items.Add(nil,a[232].name);
TreeView1.Items.Add(nil,a[233].name);
TreeView1.Items.Add(nil,a[234].name);
TreeView1.Items.Add(nil,a[235].name);
TreeView1.Items.Add(nil,a[236].name);
TreeView1.Items.Add(nil,a[237].name);
TreeView1.Items.Add(nil,a[238].name);
TreeView1.Items.Add(nil,a[239].name);
TreeView1.Items.Add(nil,a[240].name);
TreeView1.Items.Add(nil,a[241].name);
TreeView1.Items.Add(nil,a[242].name);
TreeView1.Items.Add(nil,a[243].name);
TreeView1.Items.Add(nil,a[244].name);
TreeView1.Items.Add(nil,a[245].name);
TreeView1.Items.Add(nil,a[246].name);
TreeView1.Items.Add(nil,a[247].name);
TreeView1.Items.Add(nil,a[248].name);
TreeView1.Items.Add(nil,a[249].name);
TreeView1.Items.Add(nil,a[250].name);
TreeView1.Items.Add(nil,a[251].name);
End;
if
ComboBox2.Text='Книжківці' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[136].name);
TreeView1.Items.Add(nil,a[139].name);
TreeView1.Items.Add(nil,a[140].name);
TreeView1.Items.Add(nil,a[141].name);
TreeView1.Items.Add(nil,a[142].name);
TreeView1.Items.Add(nil,a[143].name);
TreeView1.Items.Add(nil,a[144].name);
TreeView1.Items.Add(nil,a[145].name);
TreeView1.Items.Add(nil,a[146].name);
TreeView1.Items.Add(nil,a[147].name);
TreeView1.Items.Add(nil,a[148].name);
TreeView1.Items.Add(nil,a[149].name);
TreeView1.Items.Add(nil,a[150].name);
TreeView1.Items.Add(nil,a[151].name);
TreeView1.Items.Add(nil,a[152].name);
TreeView1.Items.Add(nil,a[153].name);
End;
if
ComboBox2.Text='Дубове' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[91].name);
TreeView1.Items.Add(nil,a[103].name);
TreeView1.Items.Add(nil,a[104].name);
TreeView1.Items.Add(nil,a[105].name);
TreeView1.Items.Add(nil,a[106].name);
TreeView1.Items.Add(nil,a[107].name);
TreeView1.Items.Add(nil,a[108].name);
TreeView1.Items.Add(nil,a[109].name);
TreeView1.Items.Add(nil,a[110].name);
TreeView1.Items.Add(nil,a[111].name);
TreeView1.Items.Add(nil,a[189].name);
TreeView1.Items.Add(nil,a[190].name);
TreeView1.Items.Add(nil,a[191].name);
TreeView1.Items.Add(nil,a[192].name);
TreeView1.Items.Add(nil,a[193].name);
TreeView1.Items.Add(nil,a[194].name);
TreeView1.Items.Add(nil,a[195].name);
TreeView1.Items.Add(nil,a[196].name);
TreeView1.Items.Add(nil,a[197].name);
TreeView1.Items.Add(nil,a[198].name);
TreeView1.Items.Add(nil,a[199].name);
TreeView1.Items.Add(nil,a[200].name);
TreeView1.Items.Add(nil,a[201].name);
TreeView1.Items.Add(nil,a[202].name);
TreeView1.Items.Add(nil,a[203].name);
TreeView1.Items.Add(nil,a[204].name);
TreeView1.Items.Add(nil,a[205].name);
TreeView1.Items.Add(nil,a[206].name);
TreeView1.Items.Add(nil,a[207].name);
TreeView1.Items.Add(nil,a[208].name);
TreeView1.Items.Add(nil,a[209].name);
TreeView1.Items.Add(nil,a[210].name);
TreeView1.Items.Add(nil,a[211].name);
TreeView1.Items.Add(nil,a[212].name);
TreeView1.Items.Add(nil,a[220].name);
TreeView1.Items.Add(nil,a[221].name);
TreeView1.Items.Add(nil,a[222].name);
End;
if
ComboBox2.Text='Катіон' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[252].name);
TreeView1.Items.Add(nil,a[253].name);
TreeView1.Items.Add(nil,a[254].name);
TreeView1.Items.Add(nil,a[255].name);
TreeView1.Items.Add(nil,a[256].name);
TreeView1.Items.Add(nil,a[257].name);
TreeView1.Items.Add(nil,a[258].name);
TreeView1.Items.Add(nil,a[259].name);
TreeView1.Items.Add(nil,a[260].name);
TreeView1.Items.Add(nil,a[261].name);
TreeView1.Items.Add(nil,a[262].name);
TreeView1.Items.Add(nil,a[263].name);
TreeView1.Items.Add(nil,a[264].name);
TreeView1.Items.Add(nil,a[265].name);
TreeView1.Items.Add(nil,a[266].name);
TreeView1.Items.Add(nil,a[267].name);
TreeView1.Items.Add(nil,a[268].name);
TreeView1.Items.Add(nil,a[269].name);
TreeView1.Items.Add(nil,a[270].name);
TreeView1.Items.Add(nil,a[271].name);
TreeView1.Items.Add(nil,a[272].name);
TreeView1.Items.Add(nil,a[273].name);
TreeView1.Items.Add(nil,a[274].name);
End;
if
ComboBox2.Text='Гречани' then begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil,a[275].name);
TreeView1.Items.Add(nil,a[276].name);
TreeView1.Items.Add(nil,a[277].name);
TreeView1.Items.Add(nil,a[278].name);
TreeView1.Items.Add(nil,a[279].name);
TreeView1.Items.Add(nil,a[280].name);
TreeView1.Items.Add(nil,a[281].name);
TreeView1.Items.Add(nil,a[282].name);
TreeView1.Items.Add(nil,a[283].name);
TreeView1.Items.Add(nil,a[284].name);
TreeView1.Items.Add(nil,a[285].name);
TreeView1.Items.Add(nil,a[286].name);
TreeView1.Items.Add(nil,a[287].name);
TreeView1.Items.Add(nil,a[288].name);
TreeView1.Items.Add(nil,a[289].name);
TreeView1.Items.Add(nil,a[290].name);
TreeView1.Items.Add(nil,a[291].name);
TreeView1.Items.Add(nil,a[292].name);
TreeView1.Items.Add(nil,a[293].name);
TreeView1.Items.Add(nil,a[294].name);
TreeView1.Items.Add(nil,a[295].name);
TreeView1.Items.Add(nil,a[296].name);
TreeView1.Items.Add(nil,a[297].name);
TreeView1.Items.Add(nil,a[298].name);
TreeView1.Items.Add(nil,a[299].name);
TreeView1.Items.Add(nil,a[300].name);
TreeView1.Items.Add(nil,a[301].name);
TreeView1.Items.Add(nil,a[302].name);
TreeView1.Items.Add(nil,a[303].name);
TreeView1.Items.Add(nil,a[304].name);
TreeView1.Items.Add(nil,a[305].name);
TreeView1.Items.Add(nil,a[306].name);
TreeView1.Items.Add(nil,a[307].name);
TreeView1.Items.Add(nil,a[308].name);
TreeView1.Items.Add(nil,a[309].name);
TreeView1.Items.Add(nil,a[310].name);
TreeView1.Items.Add(nil,a[311].name);
TreeView1.Items.Add(nil,a[312].name);
end;
end;
procedure
TForm1.N17Click(Sender: TObject);
begin
Form4.ShowModal;
end;
procedure
TForm1.ComboBox2Change(Sender: TObject);
begin
if
ComboBox2.Text<>'' then
Button3.Enabled:=true;
if
CheckBox1.Checked=true then begin
Image1.AutoSize:=true;
Image1.Align:=alNone;
Image1.Picture.LoadFromFile('Дані\Райони\'+ComboBox2.Text+'.bmp');
ScrollBox1.HorzScrollBar.Position:=800;
ScrollBox1.VertScrollBar.Position:=1200;
end;
end;
procedure
TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Button2.Click;
end;
procedure
TForm1.ComboBox2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Button3.Click;
end;
procedure
TForm1.N15Click(Sender: TObject);
begin
RadioButton3.Checked:=
true;
ComboBox2.SetFocus;
ComboBox2.DroppedDown
:= True
end;
procedure
TForm1.ComboBox3Change(Sender: TObject);
begin
if
ComboBox3.Text<>'' then Button1.Enabled:=true;
end;
procedure
TForm1.ComboBox3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
Button1.Click;
end;
procedure
TForm1.Panel1Click(Sender: TObject);
begin
Image1.Canvas.Pen.Mode:=Pmxor;
end;
procedure
TForm1.RadioButton1Click(Sender: TObject);
begin
if RadioButton1.Checked
= true then begin
ComboBox3.Enabled
:=true;
ComboBox1.Enabled
:=false;
Button2.Enabled
:=false;
ComboBox2.Enabled
:=false;
Button3.Enabled
:=false;
CheckBox1.Enabled
:=false;
Label3.Enabled
:=false;
end;
end;
procedure
TForm1.RadioButton2Click(Sender: TObject);
begin
if
RadioButton2.Checked = true then begin
ComboBox1.Enabled
:=true;
ComboBox3.Enabled
:=false;
Button1.Enabled
:=false;
ComboBox2.Enabled
:=false;
Button3.Enabled
:=false;
CheckBox1.Enabled
:=false;
Label3.Enabled
:=false;
end;
end;
procedure
TForm1.RadioButton3Click(Sender: TObject);
begin
if
RadioButton3.Checked = true then begin
ComboBox1.Enabled
:=false;
ComboBox3.Enabled
:=false;
Button1.Enabled
:=false;
Button2.Enabled
:=false;
ComboBox2.Enabled
:=true;
CheckBox1.Enabled
:=true;
Label3.Enabled
:=true;
end;
end;
procedure
TForm1.N9Click(Sender: TObject);
begin
Form5.ShowModal;
end;
procedure
TForm1.CheckBox1Click(Sender: TObject);
begin
if
CheckBox1.Checked=true then
Button3.Enabled:=false
else
Button3.Enabled:=true;
end;
end.
unit Unit2;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, ComCtrls;
type
TForm2 =
class(TForm)
TreeView1:
TTreeView;
Memo1: TMemo;
Button1: TButton;
procedure
Button1Click(Sender: TObject);
procedure
TreeView1Click(Sender: TObject);
private
{ Private
declarations }
public
{ Public
declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure
TForm2.Button1Click(Sender: TObject);
begin
close;
end;
procedure
TForm2.TreeView1Click(Sender: TObject);
begin
Memo1.Lines.LoadFromFile('Дані\Справка\'+TreeView1.Selected.Text+'.FSH');
end;
end.
unit Unit3;
interface
uses Windows,
SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
type
TAboutBox =
class(TForm)
Panel1: TPanel;
ProgramIcon:
TImage;
ProductName:
TLabel;
Version: TLabel;
Copyright:
TLabel;
OKButton:
TButton;
procedure
OKButtonClick(Sender: TObject);
private
{ Private
declarations }
public
{ Public
declarations }
end;
var
AboutBox:
TAboutBox;
implementation
{$R *.dfm}
procedure
TAboutBox.OKButtonClick(Sender: TObject);
begin
close;
end;
end.
unit Unit4;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, ExtCtrls, jpeg;
type
TForm4 =
class(TForm)
Panel1: TPanel;
Button1: TButton;
ScrollBox1:
TScrollBox;
Image1: TImage;
procedure
Button1Click(Sender: TObject);
procedure
FormCreate(Sender: TObject);
private
{ Private
declarations }
public
{ Public
declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure
TForm4.Button1Click(Sender: TObject);
begin
Close;
end;
procedure
TForm4.FormCreate(Sender: TObject);
begin
Image1.Picture.LoadFromFile('Дані\Умовн
позначення\Умовні позначення.jpg');
end;
end.
unit Unit5;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
ExtCtrls;
type
TForm5 =
class(TForm)
Memo1: TMemo;
Panel1: TPanel;
Button1: TButton;
procedure
Button1Click(Sender: TObject);
procedure
FormCreate(Sender: TObject);
private
{ Private
declarations }
public
{ Public
declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
procedure
TForm5.Button1Click(Sender: TObject);
begin
close;
end;
procedure
TForm5.FormCreate(Sender: TObject);
begin
Memo1.Lines.LoadFromFile('Дані\Справка\History.FSH');
end;
end.
|