ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Β«Domain name, IPΒ» для тСхничСского института

Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Из ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², присущих ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ — Click. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° эквивалСнтно Ρ‰Π΅Π»Ρ‡ΠΊΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅, Ρ‚. Π΅. Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ событиС ΠΊΠ½ΠΎΠΏΠΊΠΈ OnClick. Π­Ρ‚ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ дСйствиями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. ΠŸΡƒΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ клавиши с ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ «Π‘» ΠΈΠ»ΠΈ «Ρ» Π² Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Β«Domain name, IPΒ» для тСхничСского института (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

    • 1. АналитичСская Ρ‡Π°ΡΡ‚ΡŒ
      • 1.1 Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΡΠ΅Ρ‚ΡŒ
      • 1.2 ДомСнная организация сСти
      • 1.3 IP Π°Π΄Ρ€Π΅Ρ
      • 2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Π½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ
      • 2.1 ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅
      • 2.2 БрСдства проСктирования
      • 2.3 Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Delphi
      • 2.4 Π˜ΡΡ‚ΠΎΡ€ΠΈΡ языка
      • 2.5 НазначСниС Delphi
      • 2.6 ЦСлСвая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°
      • 2.7 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹
      • 2.7.1 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button
      • 2.7.1.1 Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Button
      • 2.7.1.2 Бобытия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Button
      • 2.7.1.2.1 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹
      • 2.7.2 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit
      • 2.7.2.1 Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit
      • 2.7.2.2 Бобытия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit
      • 2.7.2.2.1 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄
      • 2.7.3 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label
      • 2.7.3.1 Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Label
      • 2.7.3.2 Бобытия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Label
      • 2.7.3.2.1 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹
      • 2.7.4 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Bevel
      • 2.7.5 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ListBox
      • 2.7.5.1 Бвойство Sorted
      • 2.7.5.2 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹
      • 2.7.6 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Timer
      • 2.7.6.1 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄
      • 2.8 ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
      • Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°
      • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
      • 1. АналитичСская Ρ‡Π°ΡΡ‚ΡŒ
      • 1.1 Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΡΠ΅Ρ‚ΡŒ

Internet — глобальная ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΡΠ΅Ρ‚ΡŒ, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ вСсь ΠΌΠΈΡ€. БСгодня Internet ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 15 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 150 странах ΠΌΠΈΡ€Π°. ЕТСмСсячно Ρ€Π°Π·ΠΌΠ΅Ρ€ сСти увСличиваСтся Π½Π° 7−10%. Internet ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ Π±Ρ‹ ядро, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ связь Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… сСтСй, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ учрСТдСниям Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡ€Π΅, ΠΎΠ΄Π½Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π¦ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ адрСса — ΠΈ ΡΡ‚ΠΎ стало понятно ΠΎΡ‡Π΅Π½ΡŒ скоро — Ρ…ΠΎΡ€ΠΎΡˆΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², Π° Π΄Π»Ρ людСй ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈΠΌΠ΅Π½Π°. НСудобно Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ адрСса, ΠΈ Π΅Ρ‰Ρ‘ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΈΡ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌ Π² Internet присвоСны ΠΈΠΌΠ΅Π½Π°. ВсС ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Internet ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° систСм вмСсто числовых адрСсов ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ².

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, использованиС ΠΈΠΌΡ‘Π½ ΠΈΠΌΠ΅Π΅Ρ‚ свои нСдостатки. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ имя Π½Π΅ Π±Ρ‹Π»ΠΎ случайно присвоСно Π΄Π²ΡƒΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΡ‘Π½ Π² Ρ‡ΠΈΡΠ»ΠΎΠ²Ρ‹Π΅ адрСса, вСдь ΠΈΠΌΠ΅Π½Π° Ρ…ΠΎΡ€ΠΎΡˆΠΈ для людСй, Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ всё-Ρ‚Π°ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ числа. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ имя, Π½ΠΎ Ρƒ Π½Π΅Ρ‘ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ способ поиска этого ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΅Π³ΠΎ Π² Π°Π΄Ρ€Π΅Ρ.

На ΡΡ‚Π°ΠΏΠ΅ становлСния, ΠΊΠΎΠ³Π΄Π° Internet Π±Ρ‹Π»Π° малСнькой ΠΎΠ±Ρ‰Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ. Π¦Π΅Π½Ρ‚Ρ€ сСтСвой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (NIC) создавал ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ слуТбу рСгистрации. Π’Ρ‹ ΠΏΠΎΡΡ‹Π»Π°Π»ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ Π±Π»Π°Π½ΠΊ (ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, элСктронными срСдствами), ΠΈ NIC вносил Вас Π² ΡΠ²ΠΎΠΉ список ΠΈΠΌΡ‘Π½ ΠΈ Π°Π΄Ρ€Π΅ΡΠΎΠ². Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ», Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ hosts (список ΡƒΠ·Π»ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ²), рСгулярно рассылался Π½Π° Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ сСти. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΈΠΌΡ‘Π½ использовались простыС слова, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ являлось ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ. Когда Π’Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ имя, Π’Π°Ρˆ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ искал Π΅Π³ΠΎ Π² ΡΡ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΏΠΎΠ΄ΡΡ‚авлял ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ адрСс.

Когда Internet Ρ€Π°Π·Ρ€ΠΎΡΠ»Π°ΡΡŒ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, Ρ€Π°Π·ΠΌΠ΅Ρ€ этого Ρ„Π°ΠΉΠ»Π° Ρ‚ΠΎΠΆΠ΅ увСличился. Π‘Ρ‚Π°Π»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ рСгистрации ΠΈΠΌΡ‘Π½, поиск ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΡ‘Π½ услоТнился. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° Ρ€Π°ΡΡΡ‹Π»ΠΊΡƒ этого большого Ρ„Π°ΠΉΠ»Π° Π½Π° Π²ΡΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Π½Ρ‘ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΡƒΡ…ΠΎΠ΄ΠΈΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ сСтСвого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π‘Ρ‚Π°Π»ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΡ‹ роста Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ наличия распрСдСлённой ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ систСмы. Π­Ρ‚Π° систСма называСтся «Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ систСмой ΠΈΠΌΡ‘Π½» (Domain Name System, DNS).

1.2 ДомСнная организация сСти

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ описан Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΉ сСти. Π­Ρ‚Π° структура ΠΏΠΎΠ΄ΠΎΠ±Π½Π° структурС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅: Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½Ρ‹ самого Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня, Π΅ΡΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Π½ΠΈΡ… Π΄ΠΎΠΌΠ΅Π½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹. ИмСна Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² самого Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня строго распрСдСлСны. БущСствуСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Ρ‚Π°ΠΊΠΈΡ… ΠΈΠΌΠ΅Π½: ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎ ΡΡ‚Ρ€Π°Π½Π΅. ИмСна ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ (com — коммСрчСская организация, eduучСбная, gov — ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π΅Π½Π½Π°Ρ ΠΈ Ρ‚. Π΄.), Π±Ρ‹Π»ΠΈ историчСски ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ, сСйчас практичСски Π½Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ся ΠΈ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ Π² Π‘ША.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ адрСс, присваиваСмый ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ, Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΡΠ΅Π±Ρ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΈΠΌΠ΅Π½ΠΈ самого «Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ» Π΄ΠΎΠΌΠ΅Π½Π° символы, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ стран прСбывания. РоссийскиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ адрСса, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ru ΠΈΠ»ΠΈ su. Π”Π°Π»Π΅Π΅, ΡƒΠΆΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠΉ страны, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ свои Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈΠΌΠ΅Π½ — Π΄ΠΎΠΌΠ΅Π½Ρ‹. Имя ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° отдСляСтся ΠΏΡ€ΠΈ написании ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ имя Π΄ΠΎΠΌΠ΅Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ справа. Π’Π°ΠΊ, адрСс сСрвСра Π³Π°Π·Π΅Ρ‚Ρ‹ «Π£Ρ€Π°Π»ΡŒΡΠΊΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ» — это ur.etel.ru. Π’ ΡΡ‚ΠΎΠΌ адрСсС ru — ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ страны, etel — Π΄ΠΎΠΌΠ΅Π½, зарСгистрированный ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ (ЕкатСринбургским Ρ‚Π΅Π»Π΅Π³Ρ€Π°Ρ„ΠΎΠΌ), ur — имя ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π² Π³Π°Π·Π΅Ρ‚Π΅. Если прСдоставлСниС услуг осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· нСсколько ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, Ρ‚ΠΎ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π±ΠΎΠ»ΡŒΡˆΠ΅Π³ΠΎ числа Π³Ρ€ΡƒΠΏΠΏ символов, хотя Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π΅Π΄ΠΊΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡˆΡŒ ΠΈΠΌΠ΅Π½Π°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π² ΡΠ΅Π±Ρ большС пяти Π³Ρ€ΡƒΠΏΠΏ. Π”ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ. Но ΠΎΠ½ΠΎ Π΅Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ ΠΌΠ΅ΡΡ‚ΠΎΠ½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡΠ΅Π±Ρ Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΈ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄Π΅ ΠΈΠ· Π³ΠΎΡ€ΠΎΠ΄Π° Π² Π³ΠΎΡ€ΠΎΠ΄ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π·Π° ΡΠΎΠ±ΠΎΠΉ эти ΠΈΠΌΠ΅Π½Π°. Π‘ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ ваш Π²Ρ‹Ρ…ΠΎΠ΄ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, рСгистрируя эти ΠΈΠΌΠ΅Π½Π° Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΉ сСти.

1.3 IP Π°Π΄Ρ€Π΅Ρ

ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΉ delphi

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π² ΠΌΠΈΡ€Π΅ — это IP адрСс. IP Π°Π΄Ρ€Π΅Ρ — это Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ числа, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ 255. НапримСр IP — адрСс ftp-сСрвСра Ρ„ΠΈΡ€ΠΌΡ‹ Microsoft (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ сСрвСра, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ ΡΠ΅Ρ‚ΠΈ) 189.105.232.1. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ адрСс, присваиваСмый ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ. НС Π²Π΄Π°Π²Π°ΡΡΡŒ Π² Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ подробности, ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ этот Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ адрСс ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² ΠΌΠΈΡ€Π΅ Π½Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ адрСсом. Π’ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° сущСствования Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ² адрСсов? Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ адрСсом, Ρ‡Π΅ΠΌ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ сочСтания Ρ†ΠΈΡ„Ρ€.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ — Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π½Π°Ρ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ адрСса Ρ„ΠΈΡ€ΠΌΡ‹ — ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΎ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΌ адрСсС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сохранСниС «Π·Π° ΡΠΎΠ±ΠΎΠΉ «ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΅Π·Π΄ΠΎΠ² придСтся ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ адрСса. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, IP Π°Π΄Ρ€Π΅ΡΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π½Π° ΡΠ΅Π±Ρ Ρ„ΠΈΡ€ΠΌΡ‹, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ услуги Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Π­Ρ‚ΠΈ адрСса (ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько) ΠΎΠ½ΠΈ Π·Π°ΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‚ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ «ΡΠ²ΠΎΠ΅», собствСнноС Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя. ПослС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ рСгистрации ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя (ΠΎΠΊΠΎΠ»ΠΎ суток), Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСрвСра Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡ€Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ записи ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… услуги Internet, обСспСчиваСт Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ IP-адрСсу ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ IP-адрСс, ΠΈΠΌΠ΅ΡŽΡ‚ зарСгистрированноС Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΉ сСти своС Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя.

2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Π½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

2.1 ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «Domain name, IP» для тСхнологичСского института для опрСдСлСния IP-адрСсов ΠΈ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Π² ΡΠ΅Ρ‚ΠΈ института.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования Delphi.

2.2 БрСдства проСктирования

Для проСктирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Delphi, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π° ΠΊΠ°ΠΊ срСдство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ самим Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠΌ.

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Delphi с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ прилоТСния ΠΏΠΎΠ΄ ΡΠ°ΠΌΡƒΡŽ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Windows. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΎΡΠ½ΠΎΠ²Π΅ Delphi Π»Π΅ΠΆΠΈΡ‚ концСпция быстрого создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ — RAD.

Π’ ΠΎΡΠ½ΠΎΠ²Π΅ систСм быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (RAD-систСм, Rapid Application Development — срСда быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ) Π»Π΅ΠΆΠΈΡ‚ тСхнология Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования ΠΈ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉΠ½ΠΎΠ³ΠΎ программирования, ΡΡƒΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Π΅Ρ€Π΅Ρ‚ Π½Π° ΡΠ΅Π±Ρ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, оставляя программисту Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий.

2.3 Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Delphi

Delphi — это срСда быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ языка программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ язык Delphi. Π―Π·Ρ‹ΠΊ Delphi — строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π»Π΅ΠΆΠΈΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ программистам Object Pascal.

Delphi — это комбинация Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ:

— Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ компилятор Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄;

— ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная модСль ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚;

— Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ (Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚Π½ΠΎΠ΅) построСниС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ²;

— ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ срСдства для построСния Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…;

2.4 Π˜ΡΡ‚ΠΎΡ€ΠΈΡ языка

Delphi, Ρ€Π°Π½Π΅Π΅ извСстный ΠΊΠ°ΠΊ Object Pascal, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΈΡ€ΠΌΠΎΠΉ Borland ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² Π΅Ρ‘ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Borland Delphi, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π² 2003 Π³ΠΎΠ΄Ρƒ своё Π½Ρ‹Π½Π΅ΡˆΠ½Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ развития языка Turbo Pascal, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, развился ΠΈΠ· ΡΠ·Ρ‹ΠΊΠ° Pascal. Pascal Π±Ρ‹Π» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ языком, Turbo Pascal, начиная с Π²Π΅Ρ€ΡΠΈΠΈ 5.5, Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² Pascal ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ свойства.

— Π²Π΅Ρ€ΡΠΈΡ 1 Π±Ρ‹Π»Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ 16-Ρ‚ΠΈ Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Win16;

— Π²Π΅Ρ€ΡΠΈΠΈ начиная со Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ΄ 32-Ρ… Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Win32;

ВмСстС с 6-ΠΉ вСрсиСй Delphi Π²Ρ‹ΡˆΠ»Π° совмСстимая с Π½ΠΈΠΌ ΠΏΠΎ ΡΠ·Ρ‹ΠΊΡƒ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ срСда Kylix, прСдназначСнная для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Linux;

ВСрсия 8 способна Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.NET. Π­Ρ‚ΠΎ пСрвая срСда, ориСнтированная Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ·Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (лишь для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.NET);

ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вСрсии (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹Π΅ Π³ΠΎΠ΄Π°ΠΌΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π° Π½Π΅ ΠΏΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ Ρ€Π°Π½Π΅Π΅) ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ прилоТСния Win32, Ρ‚Π°ΠΊ ΠΈ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.NET;

Delphi for .NET — срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Delphi, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ язык Delphi (Object Pascal), ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для NET.

2.5 НазначСниС Delphi

НазначСниС Delphi — быстрая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΈ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: ΠΎΡ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π΄ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ систСмы управлСния прСдприятиСм.

ИспользованиС Delphi позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ самыС простыС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… трСбуСтся 2−3 часа, Ρ‚Π°ΠΊ ΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ дСсятков ΠΈ ΡΠΎΡ‚Π΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ВслСдствиС Ρ‡Π΅Π³ΠΎ Delphi ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для программистов-профСссионалов, ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡƒΡ‡ΠΈΡ‚Сля, ΠΈ Π²Ρ€Π°Ρ‡ΠΈ, ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΠΈ Π’Π£Π—ΠΎΠ², ΠΈ Π±ΠΈΠ·Π½Π΅ΡΠΌΠ΅Π½Ρ‹, всС Ρ‚Π΅, ΠΊΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ с Ρ‡ΠΈΡΡ‚ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ свои Π·Π°Π΄Π°Ρ‡ΠΈ, Π½Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ для этого программистов со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹.

2.6 ЦСлСвая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ язык Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Microsoft Windows, Π·Π°Ρ‚Π΅ΠΌ Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ‚Π°ΠΊΠΆΠ΅ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ GNU/Linux (ΠΊΠ°ΠΊ Kylix), ΠΎΠ΄Π½Π°ΠΊΠΎ послС выпуска Π² 2002 Π³ΠΎΠ΄Ρƒ Kylix 3 Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±Ρ‹Π»Π° ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π°, ΠΈ, вскорС послС этого, Π±Ρ‹Π»ΠΎ объявлСно ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Microsoft .NET. ΠŸΡ€ΠΈ этом Π²Ρ‹ΡΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ прСдполоТСния, Ρ‡Ρ‚ΠΎ эти Π΄Π²Π° Ρ„Π°ΠΊΡ‚Π° взаимосвязаны.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Delphi ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ прилоТСния для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows, Π½ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ этого с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΄Π»Ρ Linux. Π‘Ρ€Π΅Π΄Π° Delphi Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ установкой Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ настраиваСмый — ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

РСализация языка Delphi ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Free Pascal позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΊΠ°ΠΊ Mac OS X, Windows CE ΠΈ Linux.

2.7 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

2.7.1 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ ΠΈ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ являСтся ΠΊΠ½ΠΎΠΏΠΊΠ° Button, располоТСнная Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Standard.

ОсновноС с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния внСшнСго Π²ΠΈΠ΄Π° свойство ΠΊΠ½ΠΎΠΏΠΊΠΈ — Caption (надпись). Π’ Π½Π°Π΄ΠΏΠΈΡΡΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ использованиС клавиш ускорСнного доступа, выдСляя для этого ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² надписи. ΠŸΠ΅Ρ€Π΅Π΄ символом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ клавишС ускорСнного доступа, ставится символ ампСрсанта «&». Π­Ρ‚ΠΎΡ‚ символ Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅Ρ‚ся Π² Π½Π°Π΄ΠΏΠΈΡΠΈ, Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° Π½ΠΈΠΌ символ оказываСтся ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΌ. Π’ΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ вмСсто Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π² Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Alt совмСстно с ΠΊΠ»Π°Π²ΠΈΡˆΠ΅ΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ символа.

НапримСр, Ссли Π² Π²Π°ΡˆΠ΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ имССтся ΠΊΠ½ΠΎΠΏΠΊΠ° выполнСния ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅Π΅ ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ Caption Ρ€Π°Π²Π½Ρ‹ΠΌ «&Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ». На ΠΊΠ½ΠΎΠΏΠΊΠ΅ эта надпись Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄ «Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ». И Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ клавиши Alt-Π’, Ρ‚ΠΎ ΡΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ эквивалСнтно Ρ‰Π΅Π»Ρ‡ΠΊΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅.

2.7.1.1 Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Button

Бвойство Cancel, Ссли Π΅Π³ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² true, опрСдСляСт, Ρ‡Ρ‚ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ клавиши Esc Π±ΡƒΠ΄Π΅Ρ‚ эквивалСнтно Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ. Π­Ρ‚ΠΎ свойство цСлСсообразно Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π²Π½Ρ‹ΠΌ true для ΠΊΠ½ΠΎΠΏΠΎΠΊ «ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ» Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠ½Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Π΄ΠΈΠ°Π»ΠΎΠ³Π°, Π½Π°ΠΆΠ°Π² Π½Π° ΡΡ‚Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Esc.

Бвойство Default, Ссли Π΅Π³ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² true, опрСдСляСт, Ρ‡Ρ‚ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ клавиши Π²Π²ΠΎΠ΄Π° Enter Π±ΡƒΠ΄Π΅Ρ‚ эквивалСнтно Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π΄Π°ΠΆΠ΅ Ссли данная ΠΊΠ½ΠΎΠΏΠΊΠ° Π² ΡΡ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π½Π°Ρ…одится Π² Ρ„окусС. ΠŸΡ€Π°Π²Π΄Π°, Ссли Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ наТатия Enter Π² Ρ„окусС находится другая ΠΊΠ½ΠΎΠΏΠΊΠ°, Ρ‚ΠΎ Π²ΡΠ΅-Ρ‚Π°ΠΊΠΈ сработаСт ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π² Ρ„окусС.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ свойство — ModalResult ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…, рассмотрСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ. Π’ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… прилоТСниях Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого свойства Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ mrNone.

Из ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², присущих ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ — Click. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° эквивалСнтно Ρ‰Π΅Π»Ρ‡ΠΊΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅, Ρ‚. Π΅. Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ событиС ΠΊΠ½ΠΎΠΏΠΊΠΈ OnClick. Π­Ρ‚ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ дСйствиями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. ΠŸΡƒΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ клавиши с ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ «Π‘» ΠΈΠ»ΠΈ «Ρ» Π² Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, прСдусмотрСнныС Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события OnClick ΠΊΠ½ΠΎΠΏΠΊΠΈ Button1. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ нСизвСстно, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ„окусС Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ этого события, Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. Π’Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ осущСствляСтся, Ссли ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойство Ρ„ΠΎΡ€ΠΌΡ‹ KeyPreview Π² true. Π’ΠΎΠ³Π΄Π° Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события Ρ„ΠΎΡ€ΠΌΡ‹ OnKeyPress ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if (key='C' or key='c') then Button1. Click;

2.7.1.2 Бобытия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Button

ОсновноС событиС любой ΠΊΠ½ΠΎΠΏΠΊΠΈ — OnClick, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ Π½Π° Π½Π΅ΠΉ. ИмСнно Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ этого события Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. Помимо этого Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ряд событий, связанных с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ манипуляциями клавишами ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΌΡ‹ΡˆΠΈ.

Рисунок 2.1 — ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button

2.7.1.2.1 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹

procedure TForm1. Button1Click (Sender: TObject);

begin

Label1.Caption:='Name: '+IPAddrToName (Edit1.Text);

end;

procedure TForm1. Button2Click (Sender: TObject);

var // Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠ΅ΠΌ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ IP адрСса

OrgVal: string; //части ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ IP

O1,O2,O3,O4: string; // ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½Ρ‹Π΅ части

H1,H2,H3,H4: string; // Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ собраны всС ΡˆΠ΅ΡΠ½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½Ρ‹Π΅ части

HexIP: string;

XN: array[1.8] of Extended;

Flt1: Extended;

Xc: Integer;

begin

//БохраняСм Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС для простого случая

Xn[8]: =IntPower (16,0);Xn[7]:=IntPower (16,1);

Xn[6]:=IntPower (16,2);Xn[5]:=IntPower (16,3);

Xn[4]:=IntPower (16,4);Xn[3]:=IntPower (16,5);

Xn[2]:=IntPower (16,6);Xn[1]:=IntPower (16,7);

//БохраняСм ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ IP адрСс

OrgVal:=Edit2.Text;

O1:=Copy (OrgVal, 1, Pos ('.', OrgVal)-1);Delete (OrgVal, 1, Pos ('.', OrgVal));

O2:=Copy (OrgVal, 1, Pos ('.', OrgVal)-1);Delete (OrgVal, 1, Pos ('.', OrgVal));

O3:=Copy (OrgVal, 1, Pos ('.', OrgVal)-1);Delete (OrgVal, 1, Pos ('.', OrgVal));

O4:=OrgVal;

H1:=IntToHex (StrToInt (O1), 2);H2:=IntToHex (StrToInt (O2), 2);

H3:=IntToHex (StrToInt (O3), 2);H4:=IntToHex (StrToInt (O4), 2);

// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ IP адрСса

HexIP:=H1+H2+H3+H4;

//ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ это большоС ΡˆΠ΅ΡΠ½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Float

Flt1:=0;

for Xc:=1 to 8 do

begin

case HexIP[Xc] of

'0'.'9': Flt1:=Flt1+(StrToInt (HexIP[XC])*Xn[Xc]);

'A': Flt1:=Flt1+(10*Xn[Xc]);

'B': Flt1:=Flt1+(11*Xn[Xc]);

'C': Flt1:=Flt1+(12*Xn[Xc]);

'D': Flt1:=Flt1+(13*Xn[Xc]);

'E': Flt1:=Flt1+(14*Xn[Xc]);

'F': Flt1:=Flt1+(15*Xn[Xc]);

end;

procedure TForm1. Button3Click (Sender: TObject);

var

WSAData: TWSAData;

p: PHostEnt;

begin

WSAStartup (WINSOCK_VERSION, WSAData);

p:=GetHostByName (PChar (Edit3.Text));

Label6.Caption:='IP: '+inet_ntoa (PInAddr (p.h_addr_list^)^);

WSACleanup;

end;

procedure TForm1. Button4Click (Sender: TObject);

var

wsdata: TWSAData;

hostName: array [0.255] of char;

hostEnt: PHostEnt;

addr: PChar;

begin

WSAStartup ($ 0101, wsdata);

try

GetHostName (hostName, sizeof (hostName));

StrPCopy (hostName, Edit4. Text);

hostEnt:=GetHostByName (hostName);

if Assigned (hostEnt)

then

if Assigned (hostEnt^.h_addr_list)

then

begin

addr:=hostEnt^.h_addr_list^;

if Assigned (addr)

then

begin

Label9.Caption:=Format ('%d.%d.%d.%d',[byte (addr[0]),

byte (addr[1]), byte (addr[2]), byte (addr[3])]);

end;

end;

finally

WSACleanup;

end;

end;

procedure TForm1. Button5Click (Sender: TObject);

begin

Label11.Caption:='Name: '+IPAddrToCompName (Edit5.Text);

end;

procedure TForm1. Button6Click (Sender: TObject);

begin

if stop_traf=false then stop_traf:=true

else stop_traf:=false;

end;

2.7.2 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ: Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ — ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… — Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ любая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ элСмСнтарных Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Delphi для это Ρ†Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ являСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit. Он ΠΏΡ€Π΅Π΄ΡΡ‚авляСт собой ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅. РасполагаСтся Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Standart.

2.7.2.1 Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit

Бвойства — это «Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΡΡ‚ΠΈΠΊΠΈ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΎΠ½ΠΈ содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

Enabled — свойство ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ логичСскиС значСния True ΠΈ False. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ True, ΠΏΡ€ΠΈ установки значСния False ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π½Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ΠΌ для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Top, Left — свойства ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ мСстополоТСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, ΠΎΠ±Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ числовыС значСния, Ρ€Π°Π·ΠΌΠ΅Ρ€ рассчитываСтся Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ…. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ свойство опрСдСляСт ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹, Π²Ρ‚ΠΎΡ€ΠΎΠ΅, Ρ‚. Π΅. Left — ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹.

Text являСтся основным свойством ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΎΠ½ΠΎ содСрТит Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ писалось Π²Ρ‹ΡˆΠ΅ ΠΎΠ½ΠΎ содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «Edit1» .

Visible — свойство ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ для скрытия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля. ΠŸΡ€ΠΈ установкС значСния False ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit исчСзаСт ΠΈΠ· Π²ΠΈΠ΄Ρƒ.

2.7.2.2 Бобытия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit

Бобытия — это ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π΄Π΅ΠΉΡΡ‚вия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НапримСр:

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ OnChange, Ссли для Π½Π΅Π³ΠΎ прописан ΠΊΠΎΠ΄, Ρ‚ΠΎ ΠΎΠ½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ значСния свойства Text ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit.

OnClick — Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΌΡ‹ΡˆΠΊΠΎΠΉ ΠΏΠΎ ΠΏΠΎΠ»ΡŽ Π²Π²ΠΎΠ΄Π°.

OnKeyPress — событиС Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ любой клавиши.

Π’ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Edit. Edit1, Edit2,Edit4 — слуТат для Π²Π²ΠΎΠ΄Π° IP; Edit3, Edit 5 — для Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ.

Рисунок 2.2 — ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit.

2.7.2.2.1 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

procedure TForm1. Edit1Change (Sender: TObject);

begin

end;

2.7.3 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label

Label — ΠΌΠ΅Ρ‚ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для отобраТСния тСкста. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

2.7.3.1 Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Label

Бвойства — это «Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΡΡ‚ΠΈΠΊΠΈ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΎΠ½ΠΈ содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

AutoSize — Если true — Ρ‚ΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ надписи

Aligment — УправляСт Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ тСкста Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΌΠ΅Ρ‚ΠΊΠΈ (Π²Π»Π΅Π²ΠΎ, Π²ΠΏΡ€Π°Π²ΠΎ, ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ)

Caption — Π‘Ρ‚Ρ€ΠΎΠΊΠ° тСкста, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ

Color — Π¦Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΌΠ΅Ρ‚ΠΊΠΈ

FocusControl — ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ фокус ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши быстрого доступа ΠΌΠ΅Ρ‚ΠΊΠΈ.

Font — Атрибуты ΡˆΡ€ΠΈΡ„Ρ‚Π°

Layout — ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ тСкста Π² ΠΏΠΎΠ»Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ

ParentColor — ΠŸΡ€ΠΈ true — Ρ„ΠΎΠ½ ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡ‹

ShowAccelChar — ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΊΠ°ΠΊ ампСрсанд отобраТаСтся Π² Ρ‚СкстС ΠΌΠ΅Ρ‚ΠΊΠΈ

WordWrap — ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡΡ Π»ΠΈ тСкст Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку, Ссли ΠΎΠ½ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΌΠ΅Ρ‚ΠΊΠΈ

2.7.3.2 Бобытия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Label

Рисунок 2.3-ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label.

Бобытия — это ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π΄Π΅ΠΉΡΡ‚вия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НапримСр:

OnMouseEnter — наступаСт Π² Π½Π°Ρ‡Π°Π»Π΅ прохоТдСния курсора ΠΌΡ‹ΡˆΠΈ Π½Π°Π΄ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ.

OnMouseLeave — наступаСт Π² ΠΊΠΎΠ½Ρ†Π΅ прохоТдСния курсора ΠΌΡ‹ΡˆΠΈ Π½Π°Π΄ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ.

2.7.3.2.1 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹

procedure TForm1. Label1DblClick (Sender: TObject);

begin

Edit1.Text:=Label1.Caption;

end;

procedure TForm1. Label4DblClick (Sender: TObject);

begin

Edit2.Text:=Label4.Caption;

end;

procedure TForm1. Label6DblClick (Sender: TObject);

begin

Edit3.Text:=Label6.Caption;

end;

procedure TForm1. Label9DblClick (Sender: TObject);

begin

Edit4.Text:=Label9.Caption;

end;

procedure TForm1. Label11DblClick (Sender: TObject);

begin

Edit5.Text:=Label11.Caption;

end;

2.7.4 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Bevel

Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Bevel, Ρ‡ΡŒΠ΅ СдинствСнноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сосотоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± Π°Π²Ρ‚ΠΎΡ€Π΅ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, СдинствСнноС для Ρ‡Π΅Π³ΠΎ годится ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Bevel — это ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ. Он ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСго ΠΏΡ€ΠΈΠ³ΠΎΡ€ΡˆΠ½Π΅ΠΉ свойств ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ событий, ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½ΠΈ Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ внСшний Π²ΠΈΠ΄ Bevel, измСняя Π΅Π³ΠΎ свойства Shape ΠΈ Style, Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€. Shape Bevel ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π²Π΅Ρ€Π΄Ρ‹ΠΌ ΠΎΠΊΠ½ΠΎΠΌ, Ρ€Π°ΠΌΠΊΠΎΠΉ (ΠΎΡ‡Π΅Ρ€Ρ‡Π΅Π½Π½Ρ‹ΠΌ ΠΎΠΊΠ½ΠΎΠΌ) ΠΈΠ»ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ»ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ. Π‘Ρ‚ΠΈΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ bsRaised («Π²Ρ‹ΡΡ‚ΡƒΠΏΠΎΠΌ»,. mnrbsLowered («ΡƒΠ³Π»ΡƒΠ±Π»Π΅Π½ΠΈΠ΅ΠΌ»). Bevel ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ Additional page (Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ страницС) ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Рисунок 2.4-ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Bevel.

2.7.5 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ListBox

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ListBox прСдставляСт ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ списком однострочных тСкстовых элСмСнтов. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Π·Π° ΡΡ‡Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΡ‹ΡˆΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π±ΠΎΡ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ элСмСнтов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Бвойство Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится список строк это Items Ρ‚ΠΈΠΏΠ° TString. На ΡΡ‚Π°ΠΏΠ΅ проСктирования, для Π΅Π³ΠΎ заполнСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ с ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ΠΌ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² этого свойства Π² ΠΎΠΊΠ½Π΅ Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π° ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π»ΡŽΠ±ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ (допустим событиС ΠΊΠ½ΠΎΠΏΠΊΠΈ)

ListBox1.Items.Add ΠΈΠ»ΠΈ ListBox1.Items.Add(Edit1.Text); // Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit1. Text

Для ΠΏΠΎΠ»Π½ΠΎΠΉ очистки списка: ListBox1.Clear; Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт: ListBox1.DeleteSelected;По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ список состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. И Π΅ΡΠ»ΠΈ список большой ΠΈ Π½Π΅ Π²ΡΠ΅ элСмСнты ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π½Π΅ΠΌ автоматичСски справа появляСтся ΠΈΠ»ΠΈ исчСзаСт Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ (ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ListBox). Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ появилась Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ свойству Columns Ρ‚ΠΈΠΏΠ° Integer ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС нуля. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ — Columns Ρ€Π°Π²Π΅Π½ 1, Π²Ρ‚ΠΎΡ€ΠΎΠΉ 2.

2.7.5.1 Бвойство Sorted

Π Π°Π²Π½ΠΎΠ΅ true Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ элСмСнты Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ порядкС. Π—Π° ΡΡ‡Π΅Ρ‚ сортировки списка Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠΌ порядкС Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³Ρ‡Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ элСмСнт, особСнно Ссли список большой. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² сортировку Π² Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сортировку Π½Π΅ ΡƒΠ΄Π°ΡΡ‚ся.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ элСмСнт Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΠΎΠΉ записью, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π΅Π³ΠΎ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ события:

ShowMessage (ListBox1.Items[ListBox1.ItemIndex]);

Π³Π΄Π΅ ShowMessage () — ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ функция Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½ тСкстовых сообщСний, Π° ListBox1.ItemIndex — Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта.

MultiSelect — свойство благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ 1 элСмСнт, Π° Π±ΠΎΠ»Π΅Π΅. Для этого ставим Π΅Π³ΠΎ Ρ€Π°Π²Π½Ρ‹ΠΌ TRUE. ЩСлкая ΠΌΡ‹ΡˆΡŒΡŽ, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавишС CTRL, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ элСмСнты. Если свойство ExtendedSelect Ρ€Π°Π²Π½ΠΎ TRUE, удСрТивая ΠΊΠ»Π°Π²ΠΈΡˆΡƒ SHIFT Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ списка. Для опрСдСлСния Π²Ρ‹Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ обратимся ΠΊ ΡΠ²ΠΎΠΉΡΡ‚Π²ΡƒSelected. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: ListBox. Selected[3] Ρ€Π°Π²Π½ΠΎ TRUE, Ссли Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ элСмСнт Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ (Π½ΠΎΠΌΠ΅Ρ€Π° элСмСнтов Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Π½ΡƒΠ»Ρ).

ItemAtPos свойство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ списка Π² ΠΈΠ½Π΄Π΅ΠΊΡ элСмСнта. РасполоТим Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ListBox, Panel ΠΈ Label согласно рисунку. Для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ListBox Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ отпускания ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ напишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

Рисунок 2.5- ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ListBox.

2.7.5.2 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹

procedure TForm1. ListBox1Click (Sender: TObject);

begin

end;

end;

procedure TForm1. ListBox1MouseUp (Sender:

TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var

Point: TPoint;

Nomer: Integer;

begin

Point.X := X;

Point.Y := Y;

Nomer := ListBox1. ItemAtPos (Point, True);

Label1.Caption := IntToStr (Nomer);

Panel1.Caption := ListBox1. Items[ListBox1.ItemIndex];

end;

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Nomer Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ индСкс элСмСнта ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label1 Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π΅Π³ΠΎ. Надпись Π½Π° Panel1 Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ тСкст элСмСнта ListBox1.

2.7.6 ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Timer

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Timer ΠΎΡ‡Π΅Π½ΡŒ простой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π²ΠΈΠ΄Π΅Π½ Π½Π° ΡΠΊΡ€Π°Π½Π΅, Π½ΠΎ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Timer выполняСт ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Timer позволяСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… дСйствий. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Timer ΠΈΠΌΠ΅Π΅Ρ‚ всСго Π΄Π²Π° свойства ΠΈ ΠΎΠ΄Π½ΠΎ событиС, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Timer ΠΎΡ‡Π΅Π½ΡŒ просто. Cвойства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ: Interval — ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ… ΠΈ Enabled — Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ. Бвойство Interval Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ срабатывания Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°. Π§Π΅Ρ€Π΅Π· Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ послС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ срабатывания, ΠΈΠ»ΠΈ послС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ установки свойства Interval, ΠΈΠ»ΠΈ послС запуска прилоТСния, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Interval установлСно Π²ΠΎ Π²Ρ€Π΅ΠΌΡ проСктирования, Ρ‚Π°ΠΉΠΌΠ΅Ρ€ срабатываСт, вызывая событиС OnTimer. Π’ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ этого события Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Если Π·Π°Π΄Π°Ρ‚ΡŒ Interval = 0 ΠΈΠ»ΠΈ Enabled = false, Ρ‚ΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ пСрСстаСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ отсчСт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π°Π΄ΠΎ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ Enabled = true, Ссли установлСно ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Interval, ΠΈΠ»ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Interval, Ссли Enabled = true.

2.7.6.1 Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

procedure TForm1. Timer1Timer (Sender: TObject);

// Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ функция, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰Π°Ρ МАБ адрСс ΠΊ

// «Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ» Π²ΠΈΠ΄Ρƒ опрСдСляСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Ρ‡Ρ‚ΠΎΠ±Ρ‹

// ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ массив

type

TMAC=array [0.7] of Byte;

// Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ значСния массив, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅,

// Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΌΠ°ΡΡΠΈΠ²Π΅

function GetMAC (Value: TMAC; Length: DWORD): string;

var

i: integer;

begin

if Length=0

then Result:='00−00−00−00−00−00'

else

begin

Result:='';

for i:=0 to Length-2 do

Result:=Result+IntToHex (Value[i], 2)+'-';

Result:=Result+IntToHex (Value[Length-1], 2);

end;

end;

2.8 ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Рисунок 2.6- ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

1. ΠœΠ°Ρ€ΠΊΠΎΠ² Π•. П. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Delhi 7 / Π”Π°Ρ€Π°Ρ…Π²Π΅Π»ΠΈΠ΄Π°Π΅ П.Π“.- ΠœΠ°Ρ€ΠΊΠΎΠ² Π•. П — Π‘Π₯Π’ ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³.

2. ΠΡ€Ρ…Π°Π½Π³Π΅Π»ΡŒΡΠΊΠΈΠΉ А. Π―. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Delphi. Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΌ вСрсиям Delphi (+ дискСта); М.: Π‘ΠΈΠ½ΠΎΠΌ, 2006. — 518 c.

3. Бобровский Π‘Π΅Ρ€Π³Π΅ΠΉ Delphi 7. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ курс; БПб: ΠŸΠΈΡ‚Π΅Ρ€, 2003. — 736 c

4.. Π”Π°Ρ€Π°Ρ…Π²Π΅Π»ΠΈΠ΄Π·Π΅ П. Π“.; ΠœΠ°Ρ€ΠΊΠΎΠ², Π•.П. Delphi 2005 для Win32 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство; Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2005. 209 c.

5. ΠšΡƒΠ»ΡŒΡ‚ΠΈΠ½ Никита ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Delphi 7; БПб: Π‘Π₯Π’, 2003. — 608 c

6. Π—Π΅Π»ΠΊΠΎΠ²ΠΈΡ† М., ШоуА., Π“Π΅Π½Π½ΠΎΠ½ Π”ΠΆ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния/ΠŸΠ΅Ρ€. с Π°Π½Π³Π». — Πœ.: ΠœΠΈΡ€, 1982.-386с.

7. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ руководство ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ/ ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». Π‘. Мик, П. Π₯ΠΈΡ‚, Н. Рашби ΠΈ Π΄Ρ€.; ΠΏΠΎΠ΄ Ρ€Π΅Π΄. Π‘. Мика, П. Π₯ΠΈΡ‚, Н.Рашби. — Πœ.: Радиосвязь, 1986.-168с.

8. Π―Ρ„Π°Π΅Π²Π° Π . Π . Π›Π΅ΠΊΡ†ΠΈΠΈ_ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

9. Π“ΠΎΡ„ΠΌΠ°Π½ Π’. Π­., Π₯ΠΎΠΌΠΎΠ½Π΅Π½ΠΊΠΎ А. Π”. Delphi. Быстрый старт. — Π‘Пб: Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2003. — 288 с.: ΠΈΠ».

10. ДокумСнтация Delphi 7.0.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

unit dnip;

interface

uses

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

Dialogs, StdCtrls, Winsock, ExtCtrls, Math;

type

TForm1 = class (TForm)

Button1: TButton;

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Button2: TButton;

Bevel1: TBevel;

Edit2: TEdit;

Label3: TLabel;

Label4: TLabel;

Bevel2: TBevel;

Button3: TButton;

Edit3: TEdit;

Label5: TLabel;

Label6: TLabel;

Bevel3: TBevel;

Label7: TLabel;

Bevel4: TBevel;

Button4: TButton;

Edit4: TEdit;

Label8: TLabel;

Label9: TLabel;

Button5: TButton;

Edit5: TEdit;

Label10: TLabel;

Label11: TLabel;

Bevel5: TBevel;

Timer1: TTimer;

ListBox1: TListBox;

Button6: TButton;

Label12: TLabel;

Label13: TLabel;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Label4DblClick (Sender: TObject);

procedure Label1DblClick (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure Label6DblClick (Sender: TObject);

procedure Label9DblClick (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Label11DblClick (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure Button6Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

stop_traf: boolean;

count, trafbitin, trafbitout, trafbitold: integer;

implementation

{$R *.dfm}

function IPAddrToName (IPAddr: string): string;

var

SockAddrIn: TSockAddrIn;

HostEnt: PHostEnt;

WSAData: TWSAData;

begin

WSAStartup ($ 101, WSAData);

SockAddrIn.sin_addr.s_addr:=inet_addr (PChar (IPAddr));

HostEnt:=GetHostByAddr (@SockAddrIn.sin_addr.S_addr, 4, AF_INET);

if HostEnt<>nil

then Result:=StrPas (Hostent^.h_name)

else Result:='';

end;

procedure TForm1. Button1Click (Sender: TObject);

begin

Label1.Caption:='Name: '+IPAddrToName (Edit1.Text);

end;

procedure TForm1. Button2Click (Sender: TObject);

var

// БохраняСм ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ IP адрСса

OrgVal: string;

// части ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ IP

O1,O2,O3,O4: string;

// ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½Ρ‹Π΅ части

H1,H2,H3,H4: string;

// Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ собраны всС ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½Ρ‹Π΅ части

HexIP: string;

XN: array[1.8] of Extended;

Flt1: Extended;

Xc: Integer;

begin

// БохраняСм Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС для простого случая

Xn[8]: =IntPower (16,0);Xn[7]:=IntPower (16,1); Xn[6]: =IntPower (16,2);Xn[5]:=IntPower (16,3);

Xn[4]:=IntPower (16,4);Xn[3]:=IntPower (16,5); Xn[2]: =IntPower (16,6);Xn[1]:=IntPower (16,7);

// БохраняСм ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ IP адрСс

OrgVal:=Edit2.Text;

O1:=Copy (OrgVal, 1, Pos ('.', OrgVal)-1);Delete (OrgVal, 1, Pos ('.', OrgVal));

O2:=Copy (OrgVal, 1, Pos ('.', OrgVal)-1);Delete (OrgVal, 1, Pos ('.', OrgVal));

O3:=Copy (OrgVal, 1, Pos ('.', OrgVal)-1);Delete (OrgVal, 1, Pos ('.', OrgVal));

O4:=OrgVal;

H1:=IntToHex (StrToInt (O1), 2);H2:=IntToHex (StrToInt (O2), 2);

H3:=IntToHex (StrToInt (O3), 2);H4:=IntToHex (StrToInt (O4), 2);

// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ IP адрСса

HexIP:=H1+H2+H3+H4;

// ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ это большоС ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚ΠΈΡ€ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Float

Flt1:=0;

for Xc:=1 to 8 do

begin

case HexIP[Xc] of

'0'.'9': Flt1:=Flt1+(StrToInt (HexIP[XC])*Xn[Xc]);

'A': Flt1:=Flt1+(10*Xn[Xc]);

'B': Flt1:=Flt1+(11*Xn[Xc]);

'C': Flt1:=Flt1+(12*Xn[Xc]);

'D': Flt1:=Flt1+(13*Xn[Xc]);

'E': Flt1:=Flt1+(14*Xn[Xc]);

'F': Flt1:=Flt1+(15*Xn[Xc]);

end;

end;

Label4.Caption:='Number: '+FloatToStr (Flt1);

end;

procedure TForm1. Label4DblClick (Sender: TObject);

begin

Edit2.Text:=Label4.Caption;

end;

procedure TForm1. Label1DblClick (Sender: TObject);

begin

Edit1.Text:=Label1.Caption;

end;

const

WINSOCK_VERSION=$ 0101;

procedure TForm1. Button3Click (Sender: TObject);

var

WSAData: TWSAData;

p: PHostEnt;

begin

WSAStartup (WINSOCK_VERSION, WSAData);

p:=GetHostByName (PChar (Edit3.Text));

Label6.Caption:='IP: '+inet_ntoa (PInAddr (p.h_addr_list^)^);

WSACleanup;

end;

// Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ IP адрСс

function LocalIP: string;

type

TaPInAddr=array [0.10] of PInAddr;

PaPInAddr=^TaPInAddr;

var

phe:PHostEnt;

pptr:PaPInAddr;

Buffer:array [0.63] of char;

i:Integer;

GInitData:TWSADATA;

begin

WSAStartup ($ 101, GInitData);

Result:='';

GetHostName (Buffer, SizeOf (Buffer));

phe:=GetHostByName (buffer);

if phe=nil then Exit;

pptr:=PaPInAddr (Phe^.h_addr_list);

i:=0;

while pptr^[i]<>nil do

begin

result:=StrPas (inet_ntoa (pptr^[i]^));

Inc (i);

end;

WSACleanup;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin

Label7.Caption:='Local IP: '+LocalIP;

end;

procedure TForm1. Button4Click (Sender: TObject);

var

wsdata: TWSAData;

hostName: array [0.255] of char;

hostEnt: PHostEnt;

addr: PChar;

begin

WSAStartup ($ 0101, wsdata);

try

GetHostName (hostName, sizeof (hostName));

StrPCopy (hostName, Edit4. Text);

hostEnt:=GetHostByName (hostName);

if Assigned (hostEnt)

then

if Assigned (hostEnt^.h_addr_list)

then

begin

addr:=hostEnt^.h_addr_list^;

if Assigned (addr)

then

begin

Label9.Caption:=Format ('%d.%d.%d.%d',[byte (addr[0]),

byte (addr[1]), byte (addr[2]), byte (addr[3])]);

end;

end;

finally

WSACleanup;

end;

end;

procedure TForm1. Label6DblClick (Sender: TObject);

begin

Edit3.Text:=Label6.Caption;

end;

procedure TForm1. Label9DblClick (Sender: TObject);

begin

Edit4.Text:=Label9.Caption;

end;

function IPAddrToCompName (IPAddr: string): string;

var

SockAddrIn: TSockAddrIn;

HostEnt: PHostEnt;

WSAData: TWSAData;

begin

WSAStartup ($ 101, WSAData);

SockAddrIn.sin_addr.s_addr:=inet_addr (PChar (IPAddr));

HostEnt:=gethostbyaddr (@SockAddrIn.sin_addr.S_addr, 4, AF_INET);

if HostEnt<>nil

then Result:=StrPas (Hostent^.h_name)

else Result:='';

end;

procedure TForm1. Button5Click (Sender: TObject);

begin

Label11.Caption:='Name: '+IPAddrToCompName (Edit5.Text);

end;

procedure TForm1. Label11DblClick (Sender: TObject);

begin

Edit5.Text:=Label11.Caption;

end;

//////////////////////////////////// Π’Ρ€Π°Ρ„ΠΈΠΊ

type

TMibIfRow = packed record

wszName: array[0.255] of WideChar;

dwIndex: DWORD;

dwType: DWORD;

dwMtu: DWORD;

dwSpeed: DWORD; // опрСдСляСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Π±ΠΈΡ‚Π°Ρ… Π² ΡΠ΅ΠΊΡƒΠ½Π΄Ρƒ

dwPhysAddrLen: DWORD;

bPhysAddr: array[0.7] of Byte; // содСрТит физичСский адрСс интСрфСйса (Ссли ΠΏΡ€ΠΎΡ‰Π΅ Ρ‚ΠΎ Π΅Π³ΠΎ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ, МАБ адрСс)

dwAdminStatus: DWORD;

dwOperStatus: DWORD;

dwLastChange: DWORD;

dwInOctets: DWORD; // содСрТит количСство Π±Π°ΠΉΡ‚ принятых Ρ‡Π΅Ρ€Π΅Π· интСрфСйс

dwInUcastPkts: DWORD;

dwInNUCastPkts: DWORD;

dwInDiscards: DWORD;

dwInErrors: DWORD;

dwInUnknownProtos: DWORD;

dwOutOctets: DWORD; // содСрТит количСство Π±Π°ΠΉΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… интСрфСйсом

dwOutUCastPkts: DWORD;

dwOutNUCastPkts: DWORD;

dwOutDiscards: DWORD;

dwOutErrors: DWORD;

dwOutQLen: DWORD;

dwDescrLen: DWORD;

bDescr: array[0.255] of Char; // cΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ описаниС интСрфСйса

end;

TMibIfArray = array [0.512] of TMibIfRow;

PMibIfRow = ^TMibIfRow;

PMibIfArray = ^TMibIfArray;

type

TMibIfTable = packed record

dwNumEntries: DWORD;

Table: TMibIfArray;

end;

PMibIfTable = ^TMibIfTable;

var

GetIfTable:function (pIfTable: PMibIfTable; pdwSize: PULONG;

bOrder: Boolean): DWORD; stdcall;

//////////////////////////////////// Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹

function WSAIoctl (s: TSocket; cmd: DWORD; lpInBuffer: PCHAR; dwInBufferLen:

DWORD;

lpOutBuffer: PCHAR; dwOutBufferLen: DWORD;

lpdwOutBytesReturned: LPDWORD;

lpOverLapped: POINTER;

lpOverLappedRoutine: POINTER): integer; stdcall; external 'WS232.DLL';

const

SIO_GET_INTERFACE_LIST = $4 004 747 °F;

IFF_UP = $ 1;

IFF_BROADCAST = $ 2;

IFF_LOOPBACK = $ 4;

IFF_POINTTOPOINT = $ 8;

IFF_MULTICAST = $ 10;

type

sockaddr_gen = packed record

AddressIn: sockaddr_in;

filler: packed array [0.7] of char;

end;

type

INTERFACE_INFO = packed record

iiFlags: u_long; // Π€Π»Π°Π³ΠΈ интСрфСйса

iiAddress: sockaddr_gen; // АдрСс интСрфСйса

iiBroadcastAddress: sockaddr_gen; // Broadcast адрСс

iiNetmask: sockaddr_gen; // Маска подсСти

end;

function EnumInterfaces (var sInt: string): Boolean;

var

s: TSocket;

wsaD: WSADATA;

NumInterfaces: Integer;

BytesReturned: u_long;

pAddrInet: SOCKADDR_IN;

pAddrString: PChar;

PtrA: pointer;

Buffer: array[0.20] of INTERFACE_INFO;

i: integer;

begin

result:=true; // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

sInt:='';

WSAStartup ($ 0101, wsaD); // запускаСм WinSock

// здСсь ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π±Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ошибки

s:=Socket (AF_INET, SOCK_STREAM, 0); // ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ сокСт

if (s=INVALID_SOCKET)

then Exit;

try // Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ WSAIoCtl

PtrA:=@bytesReturned;

if (WSAIoCtl (s, SIO_GET_INTERFACE_LIST, nil, 0, @Buffer,

1024, PtrA, nil, nil)<>SOCKET_ERROR)

then

begin // Ссли OK, Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ количСство ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… интСрфСйсов

NumInterfaces:=BytesReturned div SizeOf (INTERFACE_INFO);

for i:=0 to NumInterfaces-1 do // для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ интСрфСйса

begin

pAddrInet:=Buffer[i]. iiAddress. AddressIn; // IP Π°Π΄Ρ€Π΅Ρ

pAddrString:=inet_ntoa (pAddrInet.sin_addr);

if pAddrString<>'127.0.0.1'

then

begin

sInt:=sInt+'IP = '+pAddrString+', '+#10#13;

// pAddrInet:=Buffer[i]. iiNetMask. AddressIn; // маска подсСти

// pAddrString:=inet_ntoa (pAddrInet.sin_addr);

// sInt:=sInt+' Mask='+pAddrString+',';

end

else sInt:='IP = «localhost» ';

end;

end;

except

end;

// Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ сокСты

CloseSocket (s);

WSACleanUp;

result:=false;

end;

function BytesToString (Value: integer): string;

const

OneKB=1024;

OneMB=OneKB*1024;

OneGB=OneMB*1024;

begin

if Value

then Result:=FormatFloat ('#,##0.00 B', Value)

else

if Value

then Result:=FormatFloat ('#,##0.00 KB', Value/OneKB)

else

if Value

then Result:=FormatFloat ('#,##0.00 MB', Value/OneMB)

end;

procedure TForm1. Timer1Timer (Sender: TObject);

// Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ функция, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰Π°Ρ МАБ адрСс ΠΊ

// «Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ» Π²ΠΈΠ΄Ρƒ опрСдСляСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Ρ‡Ρ‚ΠΎΠ±Ρ‹

// ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ массив

type

TMAC=array [0.7] of Byte;

// Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ значСния массив, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅,

// Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΌΠ°ΡΡΠΈΠ²Π΅

function GetMAC (Value: TMAC; Length: DWORD): string;

var

i: integer;

begin

if Length=0

then Result:='00−00−00−00−00−00'

else

begin

Result:='';

for i:=0 to Length-2 do

Result:=Result+IntToHex (Value[i], 2)+'-';

Result:=Result+IntToHex (Value[Length-1], 2);

end;

end;

var

FLibHandle: THandle;

Table: TMibIfTable;

i, Size: integer;

s, trafnormin, trafnormout: string;

begin

Timer1.Enabled:=false; // приостанавливаСм Π½Π° Π²ΡΡΠΊΠΈΠΉ случай Ρ‚Π°ΠΉΠΌΠ΅Ρ€

ListBox1.Items.BeginUpdate;

ListBox1.Items.Clear; // ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ список

FLibHandle:=LoadLibrary ('IPHLPAPI.DLL'); // Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ

if FLibHandle=0

then Exit;

@GetIfTable:=GetProcAddress (FLibHandle, 'GetIfTable');

if not Assigned (GetIfTable)

then

begin

FreeLibrary (FLibHandle);

Close;

end;

Size:=SizeOf (Table);

if GetIfTable (@Table,@Size, false)=0

then // выполняСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

for i:=0 to Table. dwNumEntries-1 do // ΠΊΠΎΠ»-Π²ΠΎ сСтСвых ΠΊΠ°Ρ€Ρ‚

begin

with ListBox1. Items do

begin // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

// if string (GetMAC (TMAC (Table.Table[i]. bPhysAddr), Table. Table[i].dwPhysAddrLen))<>'00−00−00−00−00−00' // сравнСниС MAC адрСсов

// then

begin

Add ('Description: '+string (Table.Table[i]. bDescr)); // Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ интСрфСйса

Add ('MAC-adress: '+string (GetMAC (TMAC (Table.Table[i]. bPhysAddr), Table. Table[i].dwPhysAddrLen))); // МАБ адрСс

// ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌ «Π’ходящСго» Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°

trafbitin:=Table.Table[i]. dwInOctets; // всСго принято Π±Π°ΠΉΡ‚

trafnormin:=BytesToString (trafbitin);

// ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌ «Π˜ΡΡ…одящСго» Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°

trafbitout:=Table.Table[i]. dwOutOctets; // всСго ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π±Π°ΠΉΡ‚

trafnormout:=BytesToString (trafbitout);

////////////////////////////////////// сброс Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°

if stop_traf=true

then

begin

trafbitold:=trafbitin;

trafnormin:='0,00 B';

trafnormout:='0,00 B';

end;

if trafbitin>=trafbitold // Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ большС старого

then

begin

trafbitin:=trafbitin-trafbitold;

trafnormin:=BytesToString (trafbitin);

end

else // Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ мСньшС старого

begin

trafbitin:=trafbitold;

trafnormin:=BytesToString (trafbitin);

end;

Add ('In (Byte): '+trafnormin); // всСго принято Π±Π°ΠΉΡ‚

Add ('Out (Byte): '+trafnormout); // всСго ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π±Π°ΠΉΡ‚

Add ('————————————————————————-'); //

end;

end;

end;

EnumInterfaces (s);

ListBox1.Items.Add (s);

ListBox1.Items.EndUpdate;

FreeLibrary (FLibHandle);

Timer1.Enabled:=true; // Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€

end;

procedure TForm1. Button6Click (Sender: TObject);

begin

if stop_traf=false then stop_traf:=true

else stop_traf:=false;

end;

end.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ