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

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π”

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

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ° создана, Π½ΠΎ Π΅Ρ‰Π΅ Π΄ΠΎ Π΅Π΅ ΠΎΡ‚обраТСния Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события создания Ρ„ΠΎΡ€ΠΌΡ‹ OnCreate. Π’ ΡΡ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° — Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetPhoneCount… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ даСтся ΠΎΠ±Π·ΠΎΡ€ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² VCL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ ΠΏΡ€ΠΈ построСнии ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Π‘Π”.

ΠžΠ±Π·ΠΎΡ€ Π½Π΅Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

НазначСниС.

Tsession (сСссия соСдинСния).

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π”. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ список доступных Π‘Π” ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π‘Π”, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π‘Π”, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

TdataBase (Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…).

Активно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ «ΠΊΠ»ΠΈΠ΅Π½Ρ‚ — сСрвСр». ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ соСдинСниС с ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠΌ Π‘Π” ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ соСдинСния, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π‘Π”, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π½Π°Π±ΠΎΡ€Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (НД) ΠΈ ΠΎ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π‘Π”.

TdataSource (источник Π΄Π°Π½Π½Ρ‹Ρ…).

Π‘Π»ΡƒΠΆΠΈΡ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ Π·Π²Π΅Π½ΠΎΠΌ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ «ΠΠ” — источник Π΄Π°Π½Π½Ρ‹Ρ… — Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ». ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ НД, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ состояниС НД, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π² ΠΠ”.

TdataSet.

TBDEDataSet.

TDBDataSet.

Π―Π²Π½ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ся, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄ΠΊΠ°ΠΌΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° ΠΠ” (TTable, TQuery, TStoredProc). ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ряд свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², наслСдуСмых ΠΈ Ρ‡Π°ΡΡ‚ΠΈΡ‡Π½ΠΎ пСрСопрСдСляСмых Π² ΠΠ”.

TTable (Ρ‚Π°Π±Π»ΠΈΡ†Π°).

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ НД, источником Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся ΠΎΠ΄Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π‘Π”. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ мноТСство ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², свойств ΠΈ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉ, посрСдством ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π°Π΄ ΠΠ” ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. НаслСдуСтся ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TDataSet.

TQuery (SQL — ΠΊΠΎΠΌΠ°Π½Π΄Π°).

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ НД, источником Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько Ρ‚Π°Π±Π»ΠΈΡ† Π‘Π”. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° записи ΠΠ” опрСдСляСтся SQLзапросом (select). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, слуТит для выполнСния Π»ΡŽΠ±Ρ‹Ρ… SQL — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². НаслСдуСтся ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TDataSet.

TStoredProc (сохраняСмая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°).

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ «ΠΊΠ»ΠΈΠ΅Π½Ρ‚ — сСрвСр» для доступа ΠΊ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ, располоТСнным Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π΅ Π‘Π”. Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ являСтся Ρ‚Π°ΠΊΠΆΠ΅ НД, Ρ‚. ΠΊ. ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ мноТСство записСй.

TField (ΠΏΠΎΠ»Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹).

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π‘Π”. Помимо ΠΏΠΎΠ»…

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² public — части описания класса Ρ„ΠΎΡ€ΠΌΡ‹, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

public.

procedure Add; virtual; abstract;

procedure Edit; virtual; abstract;

procedure Print; virtual; abstract;

procedure Delete; virtual; abstract;

ПослСдний ΡˆΡ‚Ρ€ΠΈΡ… — это присвоим свойству WindowState Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ wsMaximized, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ сразу Π·Π°Π½ΠΈΠΌΠ°Π»ΠΎ всю Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° прилоТСния. Π”ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°ΠΌΠΈ, направлСниями ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ Для создания ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ fmMDIChild, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ мСню «File» «New». Π’ ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ «Traffic» Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡƒ fmMDIChild ΠΈ Π½Π°ΠΆΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠš». Π”Π°Π΄ΠΈΠΌ этой Ρ„ΠΎΡ€ΠΌΠ΅ имя fmClients ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ — «ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹». Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ Ρ„ΠΎΡ€ΠΌΡƒ Π² Ρ„Π°ΠΉΠ»Π΅ uClients.pas.

Π’. ΠΊ. наша Ρ„ΠΎΡ€ΠΌΠ° наслСдуСтся ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΡ‹ TMDIChild, Ρ‚ΠΎ ΠΎΠ½Π° содСрТит абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ здСсь ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ. Для этого Π² public — части опрСдСлСния класса TfmClients ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ абстрактныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

procedure Add; override;

procedure Edit; override;

procedure Print; override;

procedure Delete; override;

А Π² implementation — части модуля uClients Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (ΠΏΠΎΠΊΠ° с ΠΏΡƒΡΡ‚Ρ‹ΠΌ Ρ‚Π΅Π»ΠΎΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€):

procedure TfmClients. Add;

begin.

//—-;

end;

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Edit, Print, Delete.

Данная Ρ„ΠΎΡ€ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ† Clients ΠΈ Phones. Для этого примСняСтся Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TDBGrid, находящийся Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ «Data Controls» ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². РасполоТим Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ 2 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TDBGrid, ΠΎΠ΄ΠΈΠ½ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π°, Π΄Ρ€ΡƒΠ³ΠΎΠΉ — Π² Π½ΠΈΠΆΠ½Π΅ΠΉ, Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΈΡ… gdClients ΠΈ gdPhones. ΠœΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TSplitter, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ динамичСски ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ TDBGrid-ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°Π΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ gdPhones располоТим панСль TPanel, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ количСство Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TDBGrid присвоим свойству ReadOnly Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False для элСмСнтов dgEditing ΠΈ dgTabs свойства Options.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² gdClients ΠΈ gdPhones ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»Π°ΡΡŒ информация, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ свойству DataSource ссылку Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ dsClients ΠΈ dsPhones соотвСтствСнно. Π­Ρ‚ΠΈ источники Π΄Π°Π½Π½Ρ‹Ρ… находятся Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ uMainDM, поэтому Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ uClients ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ ссылку Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ uMainDM. Для этого Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ мСню «File» «Use Unit».

Как извСстно, ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Clients ΠΈ Phones сущСствуСт связь «ΠΎΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ». Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π² gdPhones ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ΠŸΡ€ΠΈ смСщСнии указатСля записи Π² gdClients Π² dgPhones Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. Π£ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° tbPhones присвоим ссылку Π½Π° dsClients Ρƒ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° MasterSource, Π° Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ значСния свойства MasterFields ΡƒΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎΠ»Π΅ Id Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Clients, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρƒ Π½Π°Ρ производится связь ΠΌΠ΅ΠΆΠ΄Ρƒ Clients ΠΈ Phones.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, установкой свойства Active Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True для Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, ΠΈ, пСрСйдя Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ fmClients, Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ связь «ΠΎΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ».

ПослСднСС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Π΅ΠΌ для Ρ„ΠΎΡ€ΠΌΡ‹ fmClients, это Π½Π°Π·Π½Π°Ρ‡ΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»Π΅ΠΉ для отобраТСния. Для этого Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ tbClients. Π’ ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΊΠΈ ΠΈ ΠΈΠ· ΠΌΠ΅Π½ΡŽ Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ «Add All Fields». ΠŸΡ€ΠΈ этом Π² ΠΎΠΊΠ½Π΅ появятся всС поля, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Clients. Выбирая ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…одя Π² «Object Inspector», установим свойства DisplayLabel ΠΈ DisplayWidth. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ для ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Clients ΠΈ Π²ΡΠ΅Ρ… ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Phones. ПослС этого ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ fmClients ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ ΠΌΡ‹ΡˆΠΊΠΎΠΉ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ gdClients. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ свойств ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ поля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π² gdClients. Π”Π΅Π»Π°Π΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΈ Π΄Π»Ρ gdPhones.

Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΡ‹ fmDirections ΠΈ fmTraffic для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π‘Π” Directions ΠΈ Traffic соотвСтствСнно. Π Π°Π·Π½ΠΈΡ†Π° лишь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TDBGrid Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ.

РСализация Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. РСализация Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ„ΠΎΡ€ΠΌ ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡΠΎΠ·Π΄Π°Π»ΠΈ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° Π²Ρ‹Π±ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² систСмы мСню ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ ΠΎΡ‚обраТСния Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΎΠΊΠΎΠ½. Π’. ΠΊ. ΠΏΡ€ΠΈ создании ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΌΡ‹ ΡΠ²ΡΠ·Π°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ мСню, Ρ‚ΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов эти ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, это Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Для этого ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ ΠΎΠΊΠ½ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° мСню, ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ Π½Π° ΠΏΡƒΠ½ΠΊΡ‚Π΅ мСню «Π Π°Π±ΠΎΡ‚Π°» «Π’Ρ‹Ρ…ΠΎΠ΄». ΠŸΡ€ΠΈ этом Delphi сгСнСрит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ OnClick Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню. Π’ ΡΡ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Π²Π²Π΅Π΄Π΅ΠΌ ΠΊΠΎΠ΄ закрытия Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡ прилоТСния:

procedure TfmMain. mnExitClick (Sender: TObject);

begin.

// — Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ прилоТСния.

Close;

Application.Terminate;

end;

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ этапом Π±ΡƒΠ΄Π΅Ρ‚ рСализация ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° ΠΏΡƒΠ½ΠΊΡ‚ мСню «Π Π°Π±ΠΎΡ‚Π°» «ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹» ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ всСх ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ отобраТСния Ρ„ΠΎΡ€ΠΌΡ‹ fmClients. Π’ ΡΡ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Π½Π°Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠ΄ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Clients, которая Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ uClients. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ прилоТСния ΠΌΠΎΠ³ Π½Π°ΠΉΡ‚ΠΈ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Π½Π΅ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню «File» «Use Unit». ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ uClients ΠΈ Π² interface — части этого модуля опишСм ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Clients, Π° Π² implementation — части Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ эту ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

procedure Clients;

begin.

if not Assigned (fmClients) then fmClients:=TfmClients.Create (fmMain);

fmClients.Show;

end;

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ° создана, Π½ΠΎ Π΅Ρ‰Π΅ Π΄ΠΎ Π΅Π΅ ΠΎΡ‚обраТСния Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события создания Ρ„ΠΎΡ€ΠΌΡ‹ OnCreate. Π’ ΡΡ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° — Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetPhoneCount. Но ΠΈΠ½Ρ„ормация ΠΎ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° смСщаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ tbClients. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ Ρƒ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… имССтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ событиС — AfterScroll. ΠœΡ‹ ΠΏΡ€ΠΎΡΡ‚ΠΎ Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ этому ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ GetPhoneCount. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события OnCreate:

procedure TfmClients. FormCreate (Sender: TObject);

begin.

inherited;

with dmMain do begin.

tbClients.Active:=True;

tbPhones.Active:=True;

tbClients.AfterScroll:=GetPhoneCount;

end;

GetPhoneCount (nil);

end;

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹ GetPhoneCount ΠΎΡ‡Π΅Π½ΡŒ прост :

procedure TfmClients. GetPhoneCount (DataSet: TDataSet);

begin.

pnPhones. Caption: = 'Π’Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²: '+IntToStr (dmMain. tbPhones. RecordCount);

end;

ΠŸΡƒΠ½ΠΊΡ‚Ρ‹ мСню ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события OnActivate. Π­Ρ‚ΠΎ событиС «ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚», ΠΊΠΎΠ³Π΄Π° данная Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ фокус Π²Π²ΠΎΠ΄Π°:

procedure TfmClients. FormActivate (Sender: TObject);

begin.

inherited;

with fmMain do begin.

mnAdd.Enabled:=True;

mnEdit.Enabled:=True;

mnDelete.Enabled:=True;

btAdd.Enabled:=True;

btEdit.Enabled:=True;

btDelete.Enabled:=True;

end;

Когда Ρ„ΠΎΡ€ΠΌΠ° тСряСт фокус Π²Π²ΠΎΠ΄Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π­Ρ‚ΠΎ рСализуСтся Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ события OnDeativate. Код этого ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΊΠΎΠ΄Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° OnActivate, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свойству Enabled присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False.

И ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Π΅ΠΌ, это Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΈ дСйствия Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΡΠ΅Π±Ρ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† Π‘Π”, строки ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, ΠΈ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ события OnClose:

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

begin.

inherited;

FormDeactivate (Self);

with dmMain do begin.

tbClients.Active:=False;

tbPhones.Active:=False;

tbClients.AfterScroll:=nil;

end;

fmClients:=nil;

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌ всС описанныС Π²Ρ‹ΡˆΠ΅ дСйствия для ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ Π΄Π²ΡƒΡ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ„ΠΎΡ€ΠΌ.

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ дСйствия, описанныС Π²Ρ‹ΡˆΠ΅, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ с Π‘Π”, спроСктированной ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 3.4.3.

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