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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния вычислСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΠΎΠ² ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ Π»Π΅Π²Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

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

Π’Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ компилятор Π˜ΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ Π² ΡΠΎΡΡ‚Π°Π²Π΅ Delphi компилятор с ΡΠ·Ρ‹ΠΊΠ° ObjectPascal, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΌΠΈΡ€Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 120 000 строк Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ. Π‘Ρ€Π΅Π΄Π° Delphi Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ встроСнный компилятор. ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ компилятором DCC.EXE. ПослС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±Ρ‹Π» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния вычислСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΠΎΠ² ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ Π»Π΅Π²Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования ΠΈ Π½Π°ΡƒΠΊΠΈ РСспублики Π‘Π΅Π»Π°Ρ€ΡƒΡΡŒ БСлорусский Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ тСхничСский унивСрситСт ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ институт дистанционного образования ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм

ΠšΠ£Π Π‘ΠžΠ’ΠΠ― Π ΠΠ‘ΠžΠ’Π

ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅:

«ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΡΠ·Ρ‹ΠΊΠΈ программирования»

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния вычислСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΠΎΠ² ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ Π»Π΅Π²Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»:

ст. Π³Ρ€. 417 313 Π―

ΠŸΡ€ΠΈΠ½ΡΠ»:

Π΄ΠΎΡ†. Гурский Н.Н.

Минск 2005

Delphi — это соврСмСнный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π² ΡΠ΅Π±Π΅ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ компилятор с ΡΠ·Ρ‹ΠΊΠ° ObjectPascal, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ_ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ структурного языка Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ поколСния Pascal, срСдств наглядного (Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ) создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ управлСния Π‘Π”. ОсновноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Delphi — ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ срСдством для быстрого создания ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ класса Windows_ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ прилоТСния, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ распрСдСлСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚_сСрвСр.

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Windows_ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Delphi ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ срСдства:

— Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ компилятор Π˜ΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ Π² ΡΠΎΡΡ‚Π°Π²Π΅ Delphi компилятор с ΡΠ·Ρ‹ΠΊΠ° ObjectPascal, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΌΠΈΡ€Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ 120 000 строк Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ. Π‘Ρ€Π΅Π΄Π° Delphi Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ встроСнный компилятор. ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ компилятором DCC.EXE.

— ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ_ориСнтированная модСль ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ примСнСния Π² Delphi ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² являСтся обСспСчСниС возмоТности ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²Ρ‹Ρ…. Для создания Delphi использовались Ρ‚Π΅ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ входят Π² ΡΠΎΡΡ‚Π°Π² поставки. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, внСсСнныС Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ модСль измСнСния, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π±Ρ‹Π»ΠΈ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. ΠŸΡ€ΠΈ этом язык остался совмСстимым с ΡΠ·Ρ‹ΠΊΠΎΠΌ Pascal, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ компилятором BorlandPascal 7.0

— Π±Ρ‹ΡΡ‚рая срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (RAD)

Π‘Ρ€Π΅Π΄Π° Delphi содСрТит ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… срСдств для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ°ΠΊ созданиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов, Ρ‚Π°ΠΊ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… срСдств). ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (VCL) ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ Π½Π° Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ этом ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΡΠΎΡΡ‚Π°Π² Delphi, максимально ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Windows API, Ρ‚Π΅ΠΌ самым облСгчая процСсс создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

— Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ

Delphi являСтся систСмой с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ, Ρ‡Ρ‚ΠΎ позволяСт Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ срСдствами ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

— ΡΡ€Π΅Π΄ΡΡ‚Π²Π° для построСния Π‘Π”

Delphi ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ практичСски всС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… рСляционных Ρ‚Π°Π±Π»ΠΈΡ†. Delphi Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр InterBase, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Π΅ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ внСшниС SQL_сСрвСры прилоТСния Π² ΠΎΠ½Π»Π°ΠΉΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

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

1. ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ВрСбуСтся ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ вычислСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Π° ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ Π»Π΅Π²Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π€ΠΎΡ€ΠΌΡƒΠ»Π° Π»Π΅Π²Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Π°. ΠŸΠΎΠ΄Ρ‹Π½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π³Ρ€Π°Ρ„ичСском Π²ΠΈΠ΄Π΅, ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ гСомСтричСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Π° Π² Π²ΠΈΠ΄Π΅ Π·Π°ΡˆΡ‚Ρ€ΠΈΡ…ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ.

2. ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ 4 Ρ„ΠΎΡ€ΠΌΡ‹:

1. Π“Π»Π°Π²Π½ΡƒΡŽ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ элСмСнты управлСния:

2. Π€ΠΎΡ€ΠΌΡƒ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΡƒΡŽ заставку:

3. Π€ΠΎΡ€ΠΌΡƒ для About:

4. Π€ΠΎΡ€ΠΌΡƒ для COM-сСрвСра.

Бтруктурная схСма ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конвСртация Π΄Π°Π½Π½Ρ‹Ρ… расчСта Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Microsoft Office Excel. Π‘ΠΎΠ·Π΄Π°Π½Π° справочная систСма ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

4. Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Для запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» «Pintegral.exe».

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ прСдставлСн Π² Ρ‡.3.

1. Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ….

Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² Π½Π΅Ρ‘ Π΄Π°Π½Π½Ρ‹Π΅ посрСдством Π²Π²ΠΎΠ΄Π° ΠΈΡ… Π² ΠΏΠΎΠ»Ρ TΠ•dit:

2. ВычислСниС значСния ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Π°.

Для вычислСния значСния ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Π° Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ Π”Π°Π½Π½Ρ‹Π΅->ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒΠ»Π° ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ, располоТСнной Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅:

ПослС вычислСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отобразится Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, Π±ΡƒΠ΄Π΅Ρ‚ построСн Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠ΄ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² расчСта.

3. ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… расчСта Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Microsoft Office Excel.

Π”Π°Π½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π»ΠΈΠ±ΠΎ Π²Ρ‹Π±Ρ€Π°Π² Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню Π€Π°ΠΉΠ»->Экспорт Π² Excel Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

5. Π’Ρ‹Π·ΠΎΠ² справки.

Для Π²Ρ‹Π²ΠΎΠ΄Π° справочной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ?->Π‘ΠΏΡ€Π°Π²ΠΊΠ° Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠΊΠ½Π° справки:

6. Π’Ρ‹Π·ΠΎΠ² About.

Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ?->About Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠΊΠ½Π° прСдставлСн Π² Ρ‡.3.

7 Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ прилоТСния.

Для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню Π€Π°ΠΉΠ»->Π’Ρ‹Ρ…ΠΎΠ΄

ΠΠ°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

Π›ΠΈΠ±ΠΎ Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΡ€Π΅ΡΡ‚ΠΈΠΊΠ΅ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹

5. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° испытаний

ЦСлью провСдСния испытаний являлась ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… исходных Π΄Π°Π½Π½Ρ‹Ρ….

1. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π° интСгрирования: 1,6;

Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π° интСгрирования: 2,7;

Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вычислСния: 95;

ПослС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±Ρ‹Π» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСний, построСн Π³Ρ€Π°Ρ„ΠΈΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ расчСта. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ экспортировала Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Microsoft Office, ΠΏΠΎΠΊΠ°Π·Π°Π»Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ Ρ„Π°ΠΉΠ» ΠΏΠΎΠΌΠΎΡ‰ΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ…ΠΎΠ΄Π΅ тСстирования Π½Π΅ Π±Ρ‹Π»ΠΎ выявлСно ошибок ΠΈ ΡΠ±ΠΎΠ΅Π² Π² Ρ€Π°Π±ΠΎΡ‚Π΅ прилоТСния: процСссы вычислСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΠΎΠ², Π²Ρ‹Π²ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π³Π΅ΠΎΠΌΠ΅Ρ‚ричСских смыслов ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΠΎΠ² происходили ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ запросов Π±Π΅Π· ошибок.

Доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ класса, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ COM-сСрвСра ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ «pServer.dll» осущСствлялся Π±Π΅Π· ошибок.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использования прилоТСния ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ срСдства ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ исчислСния.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

Π€Π°Ρ€ΠΎΠ½ΠΎΠ² Π’.Π’. Delphi. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня. — Π‘Пб: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «ΠŸΠΈΡ‚Π΅Ρ€», 2000. 639 с.

ΠœΠ°Ρ€ΠΊΠΎ ΠšΡΠ½Ρ‚Ρƒ. Delphi 5 для профСссионалов.-БПб.: ΠŸΠΈΡ‚Π΅Ρ€. 2001. — 944 с.

А.Π―.ΠΡ€Ρ…Π°Π½Π³Π΅Π»ΡŒΡΠΊΠΈΠΉ. Delphi 7. Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС. — Π‘Пб: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «ΠŸΠΈΡ‚Π΅Ρ€», 2004. 1087 с.

Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Π΅ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΈ

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π‘Π΅Ρ€Π²Π΅Ρ€:

unit pServer_TLB;

// ****************************************************** //

// WARNING

// ———;

// The types declared in this file were generated from data read from a

// Type Library. If this type library is explicitly or indirectly (via

// another type library referring to this type library) re-imported, or the

// 'Refresh' command of the Type Library Editor activated while editing the

// Type Library, the contents of this file will be regenerated and all

// manual modifications will be lost.

// ********************************************************** //

// PASTLWTR: 1.2

// File generated on 15.11.2005 22:46:27 from Type Library described below.

// ************************************************* //

// Type Lib: C: Documents and SettingsSerghΠ Π°Π±ΠΎΡ‡ΠΈΠΉ столРазработка прилоТСния вычислСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΠΎΠ² ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ Π»Π΅Π²Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² (Delphi)SourceServerpServer.tlb (1)

// LIBID: {73AF5EFB-ABD6−4565−91C3−0E7C137DA989}

// LCID: 0

// Helpfile:

// HelpString: pServer Library

// DepndLst:

// (1) v2.0 stdole, (C:WINDOWSsystem32stdole2.tlb)

// ********************************************************* //

{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.

{$WARN SYMBOL_PLATFORM OFF}

{$WRITEABLECONST ON}

{$VARPROPSETTER ON}

interface

uses Windows, ActiveX, Classes, Graphics, StdVCL, Variants;

// ****************************************************//

// GUIDS declared in the TypeLibrary. Following prefixes are used:

// Type Libraries: LIBID_xxxx

// CoClasses: CLASS_xxxx

// DISPInterfaces: DIID_xxxx

// Non-DISP interfaces: IID_xxxx

// ********************************************************//

const

// TypeLibrary Major and minor versions

pServerMajorVersion = 1;

pServerMinorVersion = 0;

LIBID_pServer: TGUID = '{73AF5EFB-ABD6−4565−91C3−0E7C137DA989}';

IID_IIntegral: TGUID = '{287 7719B-94E7−45FB-82BE-7F9CD8A6017C}';

CLASS_Integral: TGUID = '{3AD7BD31−8C15−49ED-A0B5−436 060 913 721}';

type

// ***************************************************//

// Forward declaration of types defined in TypeLibrary

// *******************************************************//

IIntegral = interface;

// *******************************************************//

// Declaration of CoClasses defined in Type Library

// (NOTE: Here we map each CoClass to its Default Interface)

// *********************************************************//

Integral = IIntegral;

// *******************************************************//

// Interface: IIntegral

// Flags: (0)

// GUID: {287 7719B-94E7−45FB-82BE-7F9CD8A6017C}

// *****************************************************//

IIntegral = interface (IUnknown)

['{287 7719B-94E7−45FB-82BE-7F9CD8A6017C}']

function Func (x: Double): Double; stdcall;

end;

// **********************************************************//

// The Class CoIntegral provides a Create and CreateRemote method to

// create instances of the default interface IIntegral exposed by

// the CoClass Integral. The functions are intended to be used by

// clients wishing to automate the CoClass objects exposed by the

// server of this typelibrary.

// ***********************************************************//

CoIntegral = class

class function Create: IIntegral;

class function CreateRemote (const MachineName: string): IIntegral;

end;

implementation

uses ComObj;

class function CoIntegral. Create: IIntegral;

begin

Result := CreateComObject (CLASS_Integral) as IIntegral;

end;

class function CoIntegral. CreateRemote (const MachineName: string): IIntegral;

begin

Result := CreateRemoteComObject (MachineName, CLASS_Integral) as IIntegral;

end;

end.

unit uFunc;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses

Windows, ActiveX, Classes, ComObj, pServer_TLB, StdVcl;

type

TIntegral = class (TTypedComObject, IIntegral)

protected

function Func (x: Double): Double; stdcall;

end;

implementation

uses ComServ;

// ВычислСниС значСния уравнСния

function TIntegral. Func (x: Double): Double;

begin

Result := (x + 0.8) / sqrt (x * x + 1.2);

end;

initialization

TTypedComObjectFactory.Create (ComServer, TIntegral, Class_Integral,

ciMultiInstance, tmApartment);

end.

ΠšΠ»ΠΈΠ΅Π½Ρ‚:

unit uMain;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls, TeEngine, Series, TeeProcs, Chart,

Grids, Menus, ToolWin, ComCtrls, ImgList;

type

TfrmMain = class (TForm)

GroupBox1: TGroupBox;

edtA: TEdit;

Label1: TLabel;

edtB: TEdit;

Label2: TLabel;

edtN: TEdit;

Label3: TLabel;

btnApply: TBitBtn;

pnlRes: TPanel;

Chart1: TChart;

Series1: TAreaSeries;

grdAll: TStringGrid;

MainMenu1: TMainMenu;

N1: TMenuItem;

Excel: TMenuItem;

N2: TMenuItem;

nExit: TMenuItem;

N3: TMenuItem;

NApply: TMenuItem;

N5: TMenuItem;

NSave: TMenuItem;

NLoad: TMenuItem;

OpenDialog: TOpenDialog;

SaveDialog: TSaveDialog;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

ToolButton7: TToolButton;

ToolButton8: TToolButton;

ToolButton9: TToolButton;

N4: TMenuItem;

nAbout: TMenuItem;

ToolButton10: TToolButton;

NHelp: TMenuItem;

N6: TMenuItem;

ImageList1: TImageList;

procedure FormCreate (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure nExitClick (Sender: TObject);

procedure ExcelClick (Sender: TObject);

procedure NApplyClick (Sender: TObject);

procedure NLoadClick (Sender: TObject);

procedure NSaveClick (Sender: TObject);

procedure nAboutClick (Sender: TObject);

procedure NHelpClick (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmMain: TfrmMain;

implementation

uses uLogo, uIntegral, uAbout;

var

Integral: TIntegral;

{$R *.dfm}

// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹

procedure TfrmMain. FormCreate (Sender: TObject);

var

// ОбъявляСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ°

logo: TfrmLogo;

begin

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒ

logo := TfrmLogo. Create (self);

// ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒ

logo.ShowModal;

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Integral

Integral := TIntegral. Create (1.6, 2.7, 95);

pnlRes.Caption := 'Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ' + FloatToStr (Integral.Calculate);

Integral.Draw (Series1);

Chart1.ZoomPercent (90);

Integral.FillTable (grdAll);

end;

procedure TfrmMain. FormClose (Sender: TObject; var Action: TCloseAction);

begin

// ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒ

Integral.Destroy;

end;

procedure TfrmMain. nExitClick (Sender: TObject);

begin

Close;

end;

procedure TfrmMain. ExcelClick (Sender: TObject);

begin

Integral.ExcelExport (grdAll);

end;

procedure TfrmMain. NApplyClick (Sender: TObject);

begin

Integral.A := StrToFloat (edtA.Text);

Integral.B := StrToFloat (edtB.Text);

Integral.N := StrToInt (edtN.Text);

pnlRes.Caption := 'Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ' + FloatToStr (Integral.Calculate);

Integral.Draw (Series1);

Integral.FillTable (grdAll);

end;

procedure TfrmMain. NLoadClick (Sender: TObject);

begin

if (OpenDialog.Execute) then begin

Integral.LoadFromFile (OpenDialog.FileName);

edtA.Text := FloatToStr (Integral.A);

edtB.Text := FloatToStr (Integral.B);

edtN.Text := IntToStr (Integral.N);

pnlRes.Caption := 'Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ' + FloatToStr (Integral.Calculate);

Integral.Draw (Series1);

Integral.FillTable (grdAll);

end;

end;

procedure TfrmMain. NSaveClick (Sender: TObject);

begin

if (SaveDialog.Execute) then begin

Integral.SaveToFile (SaveDialog.FileName);

end;

end;

procedure TfrmMain. nAboutClick (Sender: TObject);

begin

frmAbout.ShowModal;

end;

procedure TfrmMain. NHelpClick (Sender: TObject);

begin

Application.HelpCommand (0,0);

end;

end.

unit uLogo;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls;

type

TfrmLogo = class (TForm)

Panel1: TPanel;

Label1: TLabel;

Label3: TLabel;

Label2: TLabel;

Image1: TImage;

Timer1: TTimer;

procedure Panel1Click (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure Timer1Timer (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmLogo: TfrmLogo;

implementation

{$R *.dfm}

// НаТатиС ΠΌΡ‹ΡˆΠΊΠΎΠΉ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ

procedure TfrmLogo. Panel1Click (Sender: TObject);

begin

// Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒ

Close;

end;

procedure TfrmLogo. FormClose (Sender: TObject; var Action: TCloseAction);

begin

// ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ

Action := caFree;

end;

// Кода Ρ‚Π°ΠΉΠΌΠ΅Ρ€ сработаСт

procedure TfrmLogo. Timer1Timer (Sender: TObject);

begin

// Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ

Close;

end;

end.

unit uIntegral;

interface

uses pServer_TLB, Series, Chart, SysUtils, grids,

ComObj, ActiveX, Windows, StdCtrls;

{Класс TIntegral}

type

TIntegral = class

private

_A, _B: real;

_N: integer;

// ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ записи для property-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

procedure SetA (const Value: real);

procedure SetB (const Value: real);

procedure SetN (const Value: integer);

public

// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ (ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для вычислСний значСния)

constructor Create (ANew, BNew: real; NNew: integer);

// НСобходимыС property

property A: real read _A write SetA; // Π½Π°Ρ‡Π°Π»ΠΎ интСгрирования

property B: real read _B write SetB; // ΠΊΠΎΠ½Π΅Ρ† интСнрирования

property N: integer read _N write SetN; // ΠΊΠΎΠ»-Π²ΠΎ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠΉ

// ВычислСниС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Π° (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ сумму)

function Calculate: real;

// Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

procedure LoadFromFile (fName: string);

// Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»

procedure SaveToFile (fName: string);

// РисованиС Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

procedure Draw (Series: TAreaSeries);

// ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° заполнСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

procedure FillTable (Stg: TStringGrid);

// Экспорт Π² Excel

procedure ExcelExport (Stg: TStringGrid);

end;

implementation

uses Dialogs;

// ВычислСниС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Π° (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ сумму)

function TIntegral. Calculate: real;

var

i: Integer;

tmp, h, s: real;

{ОбъявляСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ интСрфСйса}

Func: IIntegral;

begin

s := 0;

{Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ интСрфСйса}

Func := CoIntegral. Create;

h := (_B — _A)/_N; // ВычисляСм шаг

for i := 0 to _N do

begin

tmp := i * h;

s := s + h * Func. Func (_A + tmp); // рСлизация ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

end;

Result := s; // Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Func._Release;

end;

// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ (ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для вычислСний значСния)

constructor TIntegral. Create (ANew, BNew: real; NNew: integer);

begin

_A := ANew;

_B := BNew;

_N := NNew;

end;

// РисованиС Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

procedure TIntegral. Draw (Series: TAreaSeries);

var

i: Integer;

tmp, h: real;

{ОбъявляСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ интСрфСйса}

Func: IIntegral;

begin

Series.Clear;

{Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ интСрфСйса}

Func := CoIntegral. Create;

h := (_B — _A)/_N; // ВычисляСм шаг

for i := 0 to _N do

begin

tmp := i * h;

{добавляСм Π² Π³Ρ€Π°Ρ„ΠΈΠΊ}

Series.AddXY (_A + tmp, h*Func.Func (_A + tmp));

end;

Func._Release;

end;

// Экспорт Π² Excel

procedure TIntegral. ExcelExport (Stg: TStringGrid);

var

j: Integer;

Unknown: IUnknown;

Result: HResult;

AppProgID: String;

App, Ch: Variant;

begin

// Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ прилоТСния-сСрвСра

AppProgID := 'Excel.Application';

Result := GetActiveObject (ProgIDToClassID (AppProgID), nil, Unknown);

if (Result = MK_E_UNAVAILABLE) then

// Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ экзСмпляр сСрвСра

App := CreateOleObject (AppProgID)

else

// Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ с ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ сСрвСра

App := GetActiveOleObject (AppProgID);

//——————————————————————————-;

App.Workbooks.Add ();

j:=App.Workbooks.Count;

App.Workbooks[j]. Activate;

//ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π°ΠΌ

App.ActiveWorkbook.WorkSheets[1]. Name := 'Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚';

//ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… для построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

For j:=1 to _N-1 do

begin

App.ActiveWorkbook.WorkSheets[1]. Cells[j, 1].Value :=StrToFloat (Stg.Cells[1,j+1]);

App.ActiveWorkbook.WorkSheets[1]. Cells[j, 2].Value := StrToFloat (Stg.Cells[2,j+1]);

end;

App.DisplayAlerts:=False;

// ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ прилоТСния Π½Π° ΡΠΊΡ€Π°Π½Π΅

App.Visible := True;

end;

procedure TIntegral. FillTable (Stg: TStringGrid);

var

i: Integer;

tmp, h: real;

{ОбъявляСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ интСрфСйса}

Func: IIntegral;

begin

{Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ интСрфСйса}

Func := CoIntegral. Create;

Stg.RowCount := _N + 1;

Stg.Cells[0,0] := 'N';

Stg.Cells[1,0] := 'X';

Stg.Cells[2,0] := 'Y';

h := (_B — _A)/_N; // ВычисляСм шаг

for i := 0 to _N-1 do

begin

tmp := i * h;

{добавляСм Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ}

Stg.Cells[0,i+1] := IntToStr (i+1);

Stg.Cells[1,i+1] := FloatToStr (_A + tmp);

Stg.Cells[2,i+1] := FloatToStr (h*Func.Func (_A + tmp));

end;

Func._Release;

end;

// Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

procedure TIntegral. LoadFromFile (fName: string);

var

f: file of real;

fa, fb, fn: real;

res: boolean;

begin

{$I-}

{ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»}

AssignFile (f, fName);

Reset (f);

{Π§ΠΈΡ‚Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°}

Read (f, fa);

Read (f, fb);

Read (f, fn);

{Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»}

CloseFile (f);

{$I+}

{ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ}

res := (IOResult = 0) and (fName <> '');

if (res = false) then

ShowMessage ('ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°')

else begin {ЗаписываСм Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ»Π°ΡΡ}

_A := fa;

_B := fb;

_N := Round (fn);

end;

end;

// Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»

procedure TIntegral. SaveToFile (fName: string);

var

f: file of real;

fn: real;

res: boolean;

begin

{$I-}

{ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ создаСм}

AssignFile (f, fName);

Rewrite (f);

{$I+}

{ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ}

res := (IOResult = 0) and (fName <> '');

if (res = false) then

ShowMessage ('ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅')

else begin {ЗаписываСм Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»}

{ПишСм Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»}

Write (f, _A);

Write (f, _B);

fn := _N;

Write (f, fn);

end;

{Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»}

CloseFile (f);

end;

// ОписаниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² записи для property-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

procedure TIntegral. SetA (const Value: real);

begin

_A := Value;

end;

procedure TIntegral. SetB (const Value: real);

begin

_B := Value;

end;

procedure TIntegral. SetN (const Value: integer);

begin

_N := Value;

end;

end.

unit uAbout;

interface

uses

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

Dialogs, StdCtrls;

type

TfrmAbout = class (TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button1: TButton;

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmAbout: TfrmAbout;

implementation

{$R *.dfm}

procedure TfrmAbout. Button1Click (Sender: TObject);

begin

Close;

end;

end.

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