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

Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β»

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

Π­Ρ‚ΠΎ событиС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ установкС значСния True Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ Filtered. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этого способа ΠΈΠΌΠ΅Π΅Ρ‚ большой плюс, ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΎΠΉ минус. Плюс Π² Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ, сгСнСрировав это событиС, программист ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТныС условия Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. ΠœΠΈΠ½ΡƒΡ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° осущСствляСтся ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ всСх записСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Если Ρ‚Π°Π±Π»ΠΈΡ†Π° содСрТит ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ записСй, процСсс… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ MS Access;

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ клиСнтского прилоТСния Π² ΡΡ€Π΅Π΄Π΅ Delphi;

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚скому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ;

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² ΡΡ€Π΅Π΄Π΅ Delphi;

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…;

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΡ‹;

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ поиска Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π”;

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ записСй Π² Π‘Π”;

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Access.

1. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² Access, Ρ„Π°ΠΉΠ»Ρƒ присвоим имя «ok"(ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΡƒ «Π‘Π°Π·Π° ΠΎΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²», Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ сохранСно ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Delphi);

Π’ ΡΠ°ΠΌΠΎΠΌ Access, создадим 4 Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹: «Adres», «Doljnost», «LichData», «Telefones».

Начнём с Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «Adres», для этого Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅/Π’Π°Π±Π»ΠΈΡ†Π° (Рис.30).

Рис.30.

Рис. 30.

2. БохраняСм Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΏΠΎΠ΄ Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, для этого ΠΆΠΌΡ‘ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ «ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ"(Рис.31);

Рис.31.

Рис. 31.

И ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Π²ΠΎΠ΄ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎΠ΅ имя ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ «ΠΎΠΊ"(Рис.32).

Рис.32.

Рис. 32.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ (Рис.33).

Рис.33.

Рис. 33.

Аналогично создаём, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Рис.34).

Рис.34.

Рис. 34.

3. Π”Π°Π»Π΅Π΅ заполняСм Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠΎΠ»Π΅ «ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€"(Рис.35).

Рис.35.

Рис. 35.

Π’ ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΠΈ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† (Рис.36) ;

Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля ΠΈ ΠΈΡ… Ρ‚ΠΈΠΏ:

Adres (Рис.37).

Рис.37.

Рис. 37.

Doljnost (Рис.38).

Рис.38.

Рис. 38.

LichData (Рис.39).

Рис.39.

Рис. 39.

Telefones (Рис.40).

Рис.40.

Рис. 40.

ΠŸΡƒΠ½ΠΊΡ‚ 2 (Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ клиСнтского прилоТСния Π² Delphi).

ЗапускаСм Delphi Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ создаётся автоматичСски.

1. БохраняСм Π΅Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΡƒ «Π‘Π°Π·Π° ΠΎΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²», для этого Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ File/Save All ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ (Рис. 41,Рис.42).

Рис.41.

Рис. 41.

Рис.42.

Рис. 42.

2. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Ρ€ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ (Π²ΠΊΠ»Π°Π΄ΠΊΠ° Standard/Panel)(Рис. 43, Рис.44).

Рис.43.

Рис. 43.

Рис.44.

Рис. 44.

3. Бвойству Align Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ присвоим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ alTop (вСсь Π²Π΅Ρ€Ρ…). Бвойству Align Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ присвоим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ alBottom.(Рис. 45,Рис.46).

Рис.45.

Рис. 45.

Рис. 46.

4. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Splitter, Π²ΠΊΠ»Π°Π΄ΠΊΠ° (Additional/Splitter) (Рис.47).

Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Рис.47.

Рис. 47.

ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΠΌ Π΅Π³ΠΎ свойству Align Ρ‚Π°ΠΊΠΆΠ΅ alBottom, послС Ρ‡Π΅Π³ΠΎ ΠΎΠ½ ΠΏΡ€ΠΈΠΆΠΌΠ΅Ρ‚ся ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.(Рис.48).

Рис.48.

Рис. 48.

Splitter — это Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ панСлями, с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΡŒΡŽ смоТСт ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ниТнюю панСль, мСняя Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹.

6. Бвойству Align срСднСй ΠΏΠ°Π½Π΅Π»ΠΈ присвоим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ alClient, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° заняла всС ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ мСсто Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅. (Рис.49).

7. ΠžΡ‡ΠΈΡΡ‚ΠΈΠΌ свойство Caption всСх Ρ‚Ρ€Π΅Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ.(Рис. 50, Рис.51).

Рис. 50.

Рис. 51.

8. На Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ панСль помСстим Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° RadioButton Π²ΠΊΠ»Π°Π΄ΠΊΠ° (Standard/Radio Button).(Рис. 52, Рис.53).

Рис. 52.

Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Рис.53.

Рис. 53.

9. Π’ ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π²Π°Ρ… Caption напишСм, соотвСтствСнно, «ΠΠ΄Ρ€Π΅Ρ», «Π’Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹» ΠΈ «Π”ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ». (Рис.54).

Рис.54.

Рис. 54.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π½ΠΈΠΆΠ½ΡŽΡŽ, ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΡƒΡŽ сСтку DBGrid Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

10. Бвойству Checked ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ присвойтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π΅.(Рис.55).

Рис.55.

Рис. 55.

11. Π Π°Π·Π΄Π΅Π» с ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Слями Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Bevel, Π²ΠΊΠ»Π°Π΄ΠΊΠ° (Additional/Bevel) (Рис.56).

Рис.56.

Рис. 56.

12. Π•Π³ΠΎ ΡˆΠΈΡ€ΠΈΠ½Ρƒ (свойство Width) сдСлаСм Ρ€Π°Π²Π½Ρ‹ΠΌ 2 пиксСлям, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ² Π΅Π³ΠΎ Π² Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ полосу.(Рис.57).

Рис.57.

Рис. 57.

13. Π‘Π΄Π΅Π»Π°Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π» поиска (Рис.61), помСстив Π² Π½Π΅Π³ΠΎ Label, Π²ΠΊΠ»Π°Π΄ΠΊΠ° Standard/label.(Рис.58), (с Ρ‚Скстом «Π€ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ»), Edit, Π²ΠΊΠ»Π°Π΄ΠΊΠ° Standart/Edit.(Рис.59);

А Ρ‚Π°ΠΊ ΠΆΠ΅ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Label (с Ρ‚Скстом «ΠŸΠΎΠΈΡΠΊ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ»), Edit для Π½Π΅Π³ΠΎ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠΠ°ΠΉΡ‚ΠΈ», Π²ΠΊΠ»Π°Π΄ΠΊΠ° Standard/(Рис.60);

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Bevel, с ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ Ρ‚Π°ΠΊ ΠΆΠ΅ 2(Рис.61).

Рис.58.

Рис. 58.

Рис. 59.

Рис. 60.

Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Рис.61.

Рис. 61.

14. Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ находятся Π΅Ρ‰Π΅ Ρ‚Ρ€ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Button. Одна ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для рСдактирования Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ записи, другая — для добавлСния Π½ΠΎΠ²ΠΎΠΉ, Ρ‚Ρ€Π΅Ρ‚ΡŒΡ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для удалСния (Рис.62).

Рис.62.

Рис. 62.

15. Вторая ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ ΠΏΠ°Π½Π΅Π»ΠΈ содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ DBGrid, Π²ΠΊΠ»Π°Π΄ΠΊΠ° (DataControls/ DBGrid)(Рис.63), свойствам Align ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… присвоим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ alClient.(Рис.64).

Рис. 63.

Рис. 64.

16. Бвойству Name Ρ„ΠΎΡ€ΠΌΡ‹ присвоим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fMain, свойство Caption Ρ„ΠΎΡ€ΠΌΡ‹ присвоим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²"(Рис. 65, Рис.66).

Рис. 65.

Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Рис.66.

Рис. 66.

17. ΠœΠΎΠ΄ΡƒΠ»ΡŒ сохраним ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Main. pas, Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ok (ΠΎΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ², Рис. 67,Рис.68).

Рис.67.

Рис. 67.

Рис.68.

Рис. 68.

ΠŸΡƒΠ½ΠΊΡ‚ 3 (ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π‘Π” ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚скому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ).

1. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… (FileNewData Module)(Рис.70).

Рис.69.

Рис. 69.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… — это Π½Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для размСщСния Π½Π° Π½Π΅ΠΌ Π½Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Рис.70).

Рис.70.

Рис. 70.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈ Π΄Π»Ρ хранСния Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±Ρ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ ΡΠΎΡ…раняСтся ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ *.pas.

Бвойству Name модуля Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΠΌ имя fDM, Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ сохраним ΠΊΠ°ΠΊ DM. pas (Рис. 71, Рис.72).

Рис.71.

Рис. 71.

Рис. 72.

2. ДобавляСм Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ADOConnection, Π²ΠΊΠ»Π°Π΄ΠΊΠ° (ADO/ADOConnection)(Рис.73).

Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Рис.73.

Рис. 73.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ обСспСчит связь Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ADO. Бвязь обСспСчиваСтся свойством ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ConnectionString. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ, Ρƒ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΊ ADOTable Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ это свойство, ΠΎΠ΄Π½Π°ΠΊΠΎ, имСя Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, придСтся Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π° ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ связь. ΠŸΡ€ΠΎΡ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ADOConnection ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для связи Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

3. Π©Π΅Π»ΠΊΠ½Π΅ΠΌ Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΏΠΎ ΡΠ²ΠΎΠΉΡΡ‚Π²Ρƒ ConnectionString ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ADOConnection (Рис.74).

Рис.74.

Рис. 74.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΊ ADO (Рис.75).

Рис.75.

Рис. 75.

НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Build. ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, содСрТащСС настройки ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Рис.76).

Для связи с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… MS Access Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ «Microsoft Jet 4.0 OLE DB Provider"(Рис.76).

НаТимаСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π”Π°Π»Π΅Π΅», Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ «ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅"(Рис.76).

Рис.76.

Рис. 76.

Π—Π΄Π΅ΡΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ввСсти Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… находится Ρ‚Π°ΠΌ ΠΆΠ΅, Π³Π΄Π΅ находится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя Ρ„Π°ΠΉΠ»Π° с Π‘Π”, Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ адрСса. Π’ ΡΡ‚ΠΎΠΌ случаС Π²Ρ‹ ΡΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚ским ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊ Π½Π΅ΠΉ ΠΏΡƒΡ‚ΡŒ (Рис.77).

Рис.77.

Рис. 77.

4. Установим свойство LoginPrompt ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ADOConnection Π² False (Рис.78).

Рис.78.

Рис. 78.

Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ запрос Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ имя ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Π½Π°ΠΌ это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, наша Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· пароля.

5. Бвойство Connected ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄ΠΈΡ‚Π΅ Π² True (Рис.79).

Рис.79.

Рис. 79.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ.

6. УстановитС Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ADOTable, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈΠ· Π½Π°ΡˆΠ΅ΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (ADO/ADoTable)(Рис.80).

Рис.80.

Рис. 80.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ADOTable ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для создания Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ всС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ADOTable (удСрТивая ΠΊΠ»Π°Π²ΠΈΡˆΡƒ), ΠΈ Π² ΠΈΡ… свойствС Connection Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ связь ADOConnection1(Рис.81).

Рис.81.

Рис. 81.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, всС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ADOTable ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ADOTable. ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ свойство Name Π² TLichData, Π° Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ TableName Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π³Π»Π°Π²Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π±Π°Π·Ρ‹ — LichData (Рис.82).

Рис.82.

Рис. 82.

Π‘ΡƒΠΊΠ²Π° «Π’» Π² Π½Π°Ρ‡Π°Π»Π΅ названия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Π½Π°ΠΌ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°Π±Π»ΠΈΡ†Π°.

7. Рядом с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ установитС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ DataSource, Π²ΠΊΠ»Π°Π΄ΠΊΠ° (Data Access/ DataSource)(Рис.83).

Рис.83.

Рис. 83.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DataSource ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ связи с Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Бвойство Name ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DataSource ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ Π² DSLichData (DS — DataSource). Π’ ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ DataSet Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ TLichData (Рис.84).

Рис.84.

Рис. 84.

Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π°, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ DataSource ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ:

ADOTable: TDoljnost, TTelephones, TAdres.

DataSource: DSDoljnost, DSTelephones, DSAdres.

8. Бвойство Active Ρ‚Π°Π±Π»ΠΈΡ† ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄ΠΈΡ‚Π΅ Π² True, ΠΎΡ‚ΠΊΡ€Ρ‹Π² ΠΈΡ… (Рис.85).

Рис.85.

Рис. 85.

9. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ FileUse Unit ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊ Π½Π΅ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Data Module (DM) (Рис.86).

Рис.86.

Рис. 86.

10. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… DBGrid Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ DataSource Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ содСрТимоС этих Ρ‚Π°Π±Π»ΠΈΡ† (Рис.87).

Рис.87.

Рис. 87.

ΠŸΡƒΠ½ΠΊΡ‚ 4 (Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² Delphi).

1. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΠ±Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DBGrid ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π² True ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π²Π° ReadOnly — Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (Рис.88).

Рис.88.

Рис. 88.

Π’Π°Π±Π»ΠΈΡ†Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ связаны ΠΈ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΠ» Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

ΠœΡ‹ Π΄Π»Ρ этого сдСлаСм ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, Π° DBGrid Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для просмотра.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ связь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. Π­Ρ‚ΠΎ трСбуСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ сСткС Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠ°, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ сСткС, Π½ΠΎ ΠΈ Π΄Π»Ρ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΡΠΌΠΎΠ³Π»ΠΈ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ связанныС Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠΊΠ½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

2. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ. ΠŸΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ ΡΡ‚ΠΎΠΌΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Add all fields (Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС поля). Π’ ΠΎΠΊΠ½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎΠ»Π΅ΠΉ появились всС поля Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Рис. 89, Рис. 90, Рис.91).

Рис.89.

Рис. 89.

Рис. 90.

Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».
Рис.91.

Рис. 91.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля, для добавлСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ удалСния ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ. Если Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΠΎΠ»Π΅ΠΉ Π½Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ поля, Ρ‚ΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ DBGrid Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ всС поля Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если ΠΆΠ΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅, Ρ‚ΠΎ ΡΠ΅Ρ‚ΠΊΠ° DBGrid Π΅Π³ΠΎ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚. Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ это ΠΏΠΎΠ»Π΅ ΠΈΠ»ΠΈ Π½Π΅Ρ‚, ΠΈ Ρ‚. ΠΏ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΎΠ²Ρ‹Π΅ поля, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ вычисляСмыС ΠΈΠ»ΠΈ просматриваСмыС (lookup).

ПолС «ΠšΠ»ΡŽΡ‡» Ρƒ Π½Π°Ρ Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π΅Π³ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’Ρ‹Π΄Π΅Π»ΠΈΠΌ Π΅Π³ΠΎ, ΠΈ Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ Visible установитС False (Рис.92).

Рис.92.

Рис. 92.

3. Π’Π΅ΠΏΠ΅Ρ€ΡŒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ. Π—Π΄Π΅ΡΡŒ Ρƒ Π½Π°Ρ Π΅ΡΡ‚ΡŒ Π΄Π²Π° логичСских поля — «Π‘Π΅ΠΌ_ПолоТ» ΠΈ «Π’оСннообязанный». Π§Ρ‚ΠΎΠ±Ρ‹ True ΠΈ False Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Π½Π° ΡΠΊΡ€Π°Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, свойству DisplayValues ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ присвойтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «Π–Π΅Π½Π°Ρ‚;Π₯олост», Π° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ — «Π”Π°;НСт"(Рис.93).

Рис.93.

Рис. 93.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ здСсь ΠΈΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ True, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ — False. Π­Ρ‚ΠΈ значСния Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с Π·Π°ΠΏΡΡ‚ΠΎΠΉ, ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ добавляСм всС поля Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π£ Π½ΠΈΡ… Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΠ»Π΅ «Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ» — этому полю автоматичСски Π±ΡƒΠ΄Π΅Ρ‚ присвоСно Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ число, ΠΊΠ°ΠΊ Ρƒ ΠΏΠΎΠ»Ρ ΠšΠ»ΡŽΡ‡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ записи. ЛогичСских ΠΏΠΎΠ»Π΅ΠΉ Ρƒ Π½ΠΈΡ… Π½Π΅Ρ‚.

4. Однако для поля «Π’Π΅Π»Π΅Ρ„ΠΎΠ½» Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Telephones слСдуСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свойство EditMask. Π©Π΅Π»ΠΊΠ°Π΅ΠΌ ΠΏΠΎ Π½Π΅ΠΌΡƒ Π΄Π²Π°ΠΆΠ΄Ρ‹, ΠΎΡ‚ΠΊΡ€Ρ‹Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ маски, ΠΈ Π² ΠΏΠΎΠ»Π΅ Input Mask Π²Π²ΠΎΠ΄ΠΈΠΌ маску «#(###)-###-##-##». БохраняСм Π΅Π΅, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠžΠš (Рис.94).

Рис.94.

Рис. 94.

Для ΠΏΠΎΠ»Π΅ΠΉ Ρ‚ΠΈΠΏΠ° Π”Π°Ρ‚Π° Π² ΡΡ‚ΠΎΠΌ свойствС (Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ LichData Π΄Π²Π° Ρ‚Π°ΠΊΠΈΡ… поля) Π²Π²Π΅Π΄ΠΈΡ‚Π΅ маску «##.##.####».

5. Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ F12 ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π°. Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Diagram (Рис.95), ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π½Π΅Π΅ (Рис.96).

Рис.95.

Рис. 95.

Рис.96.

Рис. 96.

6. Для Π½Π°Ρ‡Π°Π»Π° Π² ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ наши Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Найдём ΠΈΡ… Π² ΠΎΠΊΠ½Π΅ Π΄Π΅Ρ€Π΅Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ObjectTreeView (Рис.97).

Рис.97.

Рис. 97.

Если ΠΎΠΊΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ, ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π΅Π³ΠΎ клавишами Shift+Alt+F11 Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ мСню ViewObject TreeView. Ухватимся Π² ΡΡ‚ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΌΡ‹ΡˆΡŒΡŽ Π·Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ LichData ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠΌ Π΅Π΅ Π² ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ. Π’Π°Π±Π»ΠΈΡ†Π° вмСстС с ΠΏΠΎΠ»ΡΠΌΠΈ отобразится Π² ΠΎΠΊΠ½Π΅ (Рис.98).

Рис.98.

Рис. 98.

Если Π±Ρ‹ Ρ€Π°Π½Π΅Π΅ ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ всС поля Π² ΠΎΠΊΠ½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎΠ»Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ADOTable, Ρ‚ΠΎ Π·Π΄Π΅ΡΡŒ ΠΌΡ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

7. Бвязи главная — подчинСнная Π΄Π΅Π»Π°ΡŽΡ‚ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Master/Detail Connector, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ (прСдпослСдняя, Рис.99).

Рис.99.

Рис. 99.

НаТимаСм Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π·Π°Ρ‚Π΅ΠΌ Π²Π΅Π΄Ρ‘ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ ΠΊ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ, удСрТивая Π΅Π΅, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ линию ΠΊ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Adres. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΎΡ‚пуститС ΠΊΠ½ΠΎΠΏΠΊΡƒ, появится ΠΎΠΊΠ½ΠΎ связСй (Рис.100).

Рис.100.

Рис. 100.

8. Π—Π΄Π΅ΡΡŒ Π² ΠΏΠΎΠ»Π΅ Detail Fields Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ связь, Π² Π½Π°ΡˆΠ΅ΠΌ случаС это ΠΏΠΎΠ»Π΅ «Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ». Π’ ΠΏΠΎΠ»Π΅ Master Fields Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ «ΠšΠ»ΡŽΡ‡». Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Add ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ OK. Бвязь установлСна (Рис.101).

Рис.101.

Рис. 101.

ΠŸΡ€ΠΈ установкС связСй Π³Π»Π°Π²Π½Ρ‹ΠΉ/ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ Π²Π°ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ вСсти линию с Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠΉ. Если Π±Ρ‹ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, Ρ‚ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ стала Π±Ρ‹ TAdres. Π’Π°ΠΊΡƒΡŽ ΠΆΠ΅ связь установитС ΠΈ Ρ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ.

ΠŸΡƒΠ½ΠΊΡ‚ 5 (Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…).

  • 1. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ (FileNewForm). Π•Π΅ ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ Name ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌ Π² fEditor, Π° ΠΏΡ€ΠΈ сохранСнии Ρ„ΠΎΡ€ΠΌΡ‹ Π΄Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ имя Editor.
  • 2. Командой FileUse Unit ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… DM. Установим Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Π½Π΅Π»ΠΈ GroupBox, Π²ΠΊΠ»Π°Π΄ΠΊΠ° (Standard/GroupBox), Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ свой GroupBox (Рис.102).
Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Β«ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²Β».

Рис. 102.

3. ЗаймСмся ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ. Π’ ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ Caption ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° GroupBox Π²ΠΏΠΈΡˆΠΈΡ‚Π΅ «Π›ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅», это Π½Π°Π·Π²Π°Π½ΠΈΠ΅ отразится Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ.

Π’Π°ΠΊ ΠΆΠ΅ подпишСм ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ GroupBox.

4. Π”Π°Π»Π΅Π΅ Π½Π°ΠΌ понадобятся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

Label.

Edit.

DBCheckBox1/Data Controls.

DBComboBox1/Data Controls.

Button.

На (Рис.103) ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° готовая Ρ„ΠΎΡ€ΠΌΠ° ΠΈ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π° Π½Π΅ΠΉ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ:

Рис.103.

Рис. 103.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ списки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² DBComboBox, Π½ΡƒΠΆΠ½ΠΎ Ρƒ Π½ΠΈΡ… Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ свойство Items, Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΠ² ΠΏΠΎ Π½Π΅ΠΌΡƒ 2 Ρ€Π°Π·Π°, откроСтся ΠΎΠΊΠ½ΠΎ, ΠΊΡƒΠ΄Π° ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ (Рис.104).

Рис.104.

Рис. 104.

Аналогично заполняСм ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ DBComboBox (Π’Π°Π±Π».1).

Π’Π°Π±Π». 1.

DBComboBox.

Π”Π°Π½Π½Ρ‹Π΅ Π² Π½Ρ‘ΠΌ.

Π”ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ пСрсонала Π—Π°ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ пСрсонала Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΎΡ‚Π΄Π΅Π»Π° ΠΊΠ°Π΄Ρ€ΠΎΠ² БпСциалист ΠΏΠΎ ΠΊΠ°Π΄Ρ€ΠΎΠ²ΠΎΠΌΡƒ ΡƒΡ‡Π΅Ρ‚Ρƒ АссистСнт спСциалиста ΠΏΠΎ ΠΊΠ°Π΄Ρ€ΠΎΠ²ΠΎΠΌΡƒ ΡƒΡ‡Π΅Ρ‚Ρƒ Π’Π΅Π΄ΡƒΡ‰ΠΈΠΉ спСцалист ΠΏΠΎ ΠΏΠΎΠ΄Π±ΠΎΡ€Ρƒ пСрсонала ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠΎ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»Ρƒ АссистСнт ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠΎ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»Ρƒ.

ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.

Π’Ρ‹ΡΡˆΠ΅Π΅ НСокончСнноС Π²Ρ‹ΡΡˆΠ΅Π΅ НСзакончСнноС Π²Ρ‹ΡΡˆΠ΅Π΅ Π‘Ρ€Π΅Π΄Π½Π½Π΅ Π‘Ρ€Π΅Π΄Π½Π΅-ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠœΠ°Π³ΠΈΡΡ‚Ρ€Π°Ρ‚ΡƒΡ€Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ Π”ΠΎΠΌΠ°ΡˆΠ½ΠΈΠΉ ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ.

Π‘Ρ‚Ρ€Π°Π½Π°.

Бписок Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ².

Π“ΠΎΡ€ΠΎΠ΄.

Бписок стран.

5. Π’Π΅ΠΏΠ΅Ρ€ΡŒ займСмся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² контроля. УдСрТивая Shift, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΡ€ΠΎΠΌΠ΅ Edit Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Π’ ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ DataSource Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ fDM. DSLichData, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ DBComboBox (Рис.105).

Рис.105.

Рис. 105.

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ DBEdit. Π’ Π΅Π³ΠΎ свойствС DataField Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅ «Π€Π°ΠΌΠΈΠ»ΠΈΡ», Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈ Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² DBComboBox (Рис.106).

Рис.106.

Рис. 106.

Π­Ρ‚ΠΎ свойство ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ полю Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ полям ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΊ ΡΠ²ΠΎΠ΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ полю. Π‘Π΅Ρ‚ΠΊΠ° DBGrid ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ fDM. DSTelephones ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ поля. Она ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ всС Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ поля Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

6. Π’ ΠΏΡ€Π°Π²ΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ части для удобства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ установим Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DBNavigator, Π²ΠΊΠ»Π°Π΄ΠΊΠ° (Data Controls/ DBNavigator).

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для пСрСмСщСния ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠ° рСдактирования записи, сохранСния ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ сдСланных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, добавлСния Π½ΠΎΠ²ΠΎΠΉ записи ΠΈΠ»ΠΈ удалСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ. Π’ Π΅Π³ΠΎ свойствС DataSource Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ fDM. DSLichData, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ (Рис.107).

Рис.107.

Рис. 107.

Нам Π½ΡƒΠΆΠ½Π° ΠΎΡ‚ ΡΡ‚ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ запись. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ раскройтС Π΅Π³ΠΎ свойство VisibleButtons ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π² False всС ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ nbFirst, nbPrior, nbNext ΠΈ nbLast (Рис.108).

Рис.108.

Рис. 108.

НаТатиС Π½Π° ΡΡ‚ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π²Ρ‹Π·ΠΎΠ²Ρƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ADOTable. Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄Π΅Π»Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

First — ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ запись Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹;

Prior — ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ запись;

Next — ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ запись;

Last — ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡŽΡŽ запись.

Когда Ρƒ DBNavigator останСтся всСго Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, эти ΠΊΠ½ΠΎΠΏΠΊΠΈ окаТутся вытянутыми. Π£ΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚Π΅ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ½ΠΎΠΏΠΊΠΈ приняли Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄.

ΠŸΡƒΠ½ΠΊΡ‚ 6 (Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΡ‹).

1. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² Π½Π°ΡˆΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… происходит ΠΏΠΎ ΠΏΠΎΠ»ΡŽ «ΠšΠ»ΡŽΡ‡». На Ρ„ΠΎΡ€ΠΌΠ΅ это ΠΏΠΎΠ»Π΅ отсутствуСт — Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ гСнСрируСтся автоматичСски. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²Π½Π΅ΡΠ»ΠΈ записи Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ GroupBox, ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ — для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ смогли ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ с Π²Π½Π΅ΡΠ΅Π½Π½Ρ‹ΠΌΠΈ записями.

Для сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΌΡ‹ ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ Post, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ GroupBox.

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ GroupBox, ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ onExit Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Events инспСктора ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Рис.109).

Рис.109.

Рис. 109.

2. Π­Ρ‚ΠΎ событиС происходит всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ GroupBox, Π»ΠΈΠ±ΠΎ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ, располоТСнным Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π°. Π’ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π²ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄:

{Π’Ρ‹ΡˆΠ»ΠΈ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ирования LichData}.

procedure TfEditor. GroupBox1Exit (Sender: TObject);

begin.

if fDM.TLichData.Modified then.

fDM.TLichData.Post;

end;

Π’Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли запись Π±Ρ‹Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ Π΅Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ событиС onExit для ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ GroupBox ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сохранитС измСнСния записСй Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….

3. Π”Π°Π»Π΅Π΅ сгСнСрируйтС событиС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ» Π² GroupBox с Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Рис110).

Рис.110.

Рис. 110.

Π­Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, вСдь ΠΎΠ΄ΠΈΠ½ сотрудник ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°. Код Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ:

if fDM.TTelephones.Modified then.

fDM.TTelephones.Post;

fDM.TTelephones.Append;

DBEdit14.SetFocus;

Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΌΡ‹ ΡΠΎΡ…раняСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ значСния, Ссли ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Append ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½ΠΎΠ²ΡƒΡŽ запись. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ фокус Π²Π²ΠΎΠ΄Π° Π½Π° DBEdit с Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹ΠΌΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ это самому. Π’ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ» (Рис.111) ΠΊΠΎΠ΄ простой:

Рис.111.

Рис. 111.

if fDM.TLichData.Modified then.

fDM.TLichData.Post;

if fDM.TDoljnost.Modified then.

fDM.TDoljnost.Post;

if fDM.TAdres.Modified then.

fDM.TAdres.Post;

if fDM.TTelephones.Modified then.

fDM.TTelephones.Post;

Close;

Для ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ сотрудника» (Рис.112) ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅:

Рис.112.

Рис. 112.

fDM.TLichData.Append;

fDM.TDoljnost.Append;

fDM.TAdres.Append;

fDM.TTelephones.Append;

DBEdit1.SetFocus;

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ запись Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ курсор Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ DBEdit, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ рСдактируСтся фамилия.

4. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. НачнСм с ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΠΎΠ²Ρ‹ΠΉ сотрудник» (Рис.113).

Рис. 113.

Рис. 113.

Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ запись Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, послС Ρ‡Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°:

fDM.TLichData.Append;

fDM.TDoljnost.Append;

fDM.TAdres.Append;

fDM.TTelephones.Append;

fEditor.ShowModal;

5. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ onClick для ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ» (Рис.114).

Рис.114.

Рис. 114.

Π’ΡƒΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ лишь ΠΎΠ΄Π½Π° строчка ΠΊΠΎΠ΄Π°: fEditor. ShowModal;

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ откроСтся ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ записи.

6. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Π΅ΠΉ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π·Π°ΠΏΠΈΡΠΈ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ сСткС DBGrid, Ρ‡Π΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ сСтку с Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ для Π½Π΅Π΅ событиС onDBLClick (Рис.115).

Рис.115.

Рис. 115.

Π’Π°ΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ строчку ΠΊΠΎΠ΄Π°.

7. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ. По Π½Π°ΡˆΠ΅ΠΌΡƒ замыслу, ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ сСткС DBGrid Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΉ — ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Adres. Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ° с Π½Π°Π΄ΠΏΠΈΡΡŒΡŽ «ΠΠ΄Ρ€Π΅Ρ». Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ захочСтся ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сотрудника, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‰Π΅Π»ΠΊΠ°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΈ ΡΡ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ DBGrid. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΡƒ с Π½Π°Π΄ΠΏΠΈΡΡŒΡŽ «ΠΠ΄Ρ€Π΅Ρ» ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ для Π½Π΅Π΅ событиС onClick, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ½Π΅Ρ‚ ΠΏΠΎ Π½Π΅ΠΉ (Рис.116).

Рис.116.

Рис. 116.

Π’ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ этого события Π²ΠΏΠΈΡˆΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

if RadioButton1. Checked then.

DBGrid2.DataSource := fDM. DSAdres;

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π»ΠΈ данная Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ°. Если Π΄Π°, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠ΅Π½ΡΠ΅ΠΌ связь Π½ΠΈΠΆΠ½Π΅ΠΉ сСтки DBGrid ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π΅Π΅ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Adres. Π’Π΅Π΄ΡŒ связь сСтки с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DataSource, Π° Ρƒ Π½Π°Ρ ΠΈΡ… Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ Ρ‚ΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ, Ρ‚ΠΎ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ DataSource, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΡƒΡŽ Π² ΡΠ΅Ρ‚ΠΊΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

Для события onClick Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ с Π½Π°Π΄ΠΏΠΈΡΡŒΡŽ «Π’Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹» ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ:

if RadioButton2. Checked then.

DBGrid2.DataSource := fDM. DSTelephones;

А Π΄Π»Ρ события onClick Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ с Π½Π°Π΄ΠΏΠΈΡΡŒΡŽ «Π”ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ», соотвСтствСнно, ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

if RadioButton3. Checked then.

DBGrid2.DataSource := fDM. DSDoljnost;

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Π½ΠΈΠΆΠ½Π΅ΠΉ сСткС ΠΌΡ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ Ρ‚ΠΎ ΠΎΠ΄Π½Ρƒ, Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ΠΈ Π²ΡΡΠΊΠΈΠΉ Ρ€Π°Π· Π² ΡΡ‚ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сотрудника.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ компиляция происходит ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅).

ΠŸΡƒΠ½ΠΊΡ‚ 7 (ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ поиска Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π”).

1. Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска Π² ΡΠ²ΠΎΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π» ΠΌΠ΅Ρ‚ΠΎΠ΄ Lookup.

ΠœΠ΅Ρ‚ΠΎΠ΄ Lookup, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Locate, Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ курсора Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. ВмСсто этого ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅Π΅ ΠΏΠΎΠ»Π΅ΠΉ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Locate, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ осущСствляСт поиск лишь Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ соотвСтствиС. Π’Π°ΠΊΠΎΠΉ способ поиска вострСбован Ρ€Π΅ΠΆΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Для поиска Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ с Π½Π°Π΄ΠΏΠΈΡΡŒΡŽ «ΠΠ°ΠΉΡ‚ΠΈ», располоТСнной Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΠΎΠ»Π΅ Edit1 ΠΊΠ°ΠΊΡƒΡŽ Ρ‚ΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠΠ°ΠΉΡ‚ΠΈ». Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡ€Π°Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ShowMessage (),(Рис.117).

Рис.117.

Рис. 117.

2. Π˜Ρ‚Π°ΠΊ, Π² ΠΎΠΊΠ½Π΅ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ «ΠΠ°ΠΉΡ‚ΠΈ», создавая событиС onClick, ΠΈ Π²ΠΏΠΈΡˆΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ листинг:

{Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ»ΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Найти}.

procedure TfName. Button1Click (Sender: TObject);

var.

myLookup: Variant; //для получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

s: String; //для ΠΎΡ‚Ρ‡Π΅Ρ‚Π°.

begin.

//ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Application.Title:='Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅';

myLookup := fDM.TLichData.Lookup ('Имя', Edit1. Text,'Ѐамилия;Имя;ΠžΡ‚Ρ‡Π΅ΡΡ‚Π²ΠΎ;ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅');

//провСряСм, Π½Π΅ Null Π»ΠΈ это:

if VarType (myLookup) = varNull then.

ShowMessage ('Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ с Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½!').

else.

if VarType (myLookup) = varEmpty then.

ShowMessage ('Π—Π°ΠΏΠΈΡΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°!').

//Ссли это массив, Ρ‚ΠΎ ΠΈΠ· Π΅Π³ΠΎ элСмСнтов собираСм.

//ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ строку:

else if VarIsArray (myLookup) then begin.

s := myLookup[0] + #13 + myLookup[1] + #13 +myLookup[2] + #13 + myLookup[3];

//ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π½Π° ΡΠΊΡ€Π°Π½:

Application.Title:='Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅';

ShowMessage (s);

end;//else if.

end;

ΠŸΡƒΠ½ΠΊΡ‚ 8 (ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ записСй Π² Π‘Π”).

1. Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Π½Π΅ Ρ€Π΅ΠΆΠ΅ Ρ‡Π΅ΠΌ поиск. Π Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ поискС Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ всС записи Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΏΡ€ΠΈ этом курсор Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΡΠΊΠΎΠΌΠΎΠΉ записи, Π»ΠΈΠ±ΠΎ ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ этой записи Π² Π²ΠΈΠ΄Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ условиям Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ записи становятся скрытыми. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‰Π΅.

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ свойства Filter ΠΈ ΡΠΎΠ±Ρ‹Ρ‚ия onFilterRecord. Рассмотрим основныС способы Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ записСй.

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ свойства Filter.

Бвойство Filter — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ способ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ записСй, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ String. Π’Π½Π°Ρ‡Π°Π»Π΅ программист Π·Π°Π΄Π°Π΅Ρ‚ условия Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π² ΡΡ‚ΠΎΠΌ свойствС, Π·Π°Ρ‚Π΅ΠΌ присваиваСт логичСскому свойству Filtered Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, послС Ρ‡Π΅Π³ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π°.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ это свойство, достаточно слоТных условий Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ условия Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ просты, Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ способ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌ.

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ события onFilterRecord.

Π­Ρ‚ΠΎ событиС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ установкС значСния True Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ Filtered. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этого способа ΠΈΠΌΠ΅Π΅Ρ‚ большой плюс, ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΎΠΉ минус. Плюс Π² Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ, сгСнСрировав это событиС, программист ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТныС условия Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. ΠœΠΈΠ½ΡƒΡ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° осущСствляСтся ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ всСх записСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Если Ρ‚Π°Π±Π»ΠΈΡ†Π° содСрТит ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ записСй, процСсс Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚ΡΠ½ΡƒΡ‚ΡŒΡΡ.

Рассмотрим этот способ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π‘Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π΄Π΅Ρ‚ Π±ΡƒΠΊΠ²Ρƒ «ΠŸ», Ρ‚ΠΎ ΠΎΡΡ‚анутся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° «ΠŸ». Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π΄Π΅Ρ‚ Π΅Ρ‰Π΅ Π±ΡƒΠΊΠ²Ρƒ «Π΅», Ρ‚ΠΎ ΠΎΡΡ‚анутся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° «ΠŸΠ΅», ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠŸΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ вводя Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ добСрСтся Π΄ΠΎ Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ„Π°ΠΌΠΈΠ»ΠΈΠΉ.

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π½Π΅ΠΌ Π½Π°ΠΌ потрСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ed, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² Π½Π΅Π΅ тСкст ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit3(Рис.118):

Рис.118.

Рис. 118.

ПишСм Π² Ρ€Π°Π·Π΄Π΅Π» public:

var.

fDM: TfDM;

ed: String; //тСкст ΠΈΠ· Edit1.

Π­Ρ‚ΠΎΠ³ΠΎ дСйствия ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Ссли Π±Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ADOTable, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ LichData, располагался Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π½Π°Ρ…одится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΈ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ onFilterRecord Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрировано Π² Π½Π΅ΠΌ. А Π² ΡΡ‚ΠΎΠΌ событии Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ находится Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Edit3. ИмСнно для этого ΠΈ Π½ΡƒΠΆΠ½Π° глобальная пСрСмСнная ed. Π”Π°Π»Π΅Π΅ выдСляСм TLichData, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ADOTable, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ LichData. На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Events (Бобытия) инспСктора ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ событиС onFilterRecord ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Π½Π΅ΠΌΡƒ, сгСнСрировав ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ (Рис.119).

Рис.119.

Рис. 119.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ листинг ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

{onFilterRecord Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹}.

procedure TfDM. TLichDataFilterRecord (DataSet: TDataSet;

var Accept: Boolean);

var.

s: String; //для значСния поля.

begin.

//ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π±ΡƒΠΊΠ² ΠΈΠ· ΠΏΠΎΠ»Ρ Ѐамилия,.

//сколько Π±ΡƒΠΊΠ² имССтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ed:

s := Copy (DataSet['Ѐамилия'], 1, Length (ed));

//Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

Accept := s = ed;

end;

Π—Π΄Π΅ΡΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ s ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π±ΡƒΠΊΠ² ΠΈΠ· ΠΏΠΎΠ»Ρ «Π€Π°ΠΌΠΈΠ»ΠΈΡ», сколько Π±ΡƒΠΊΠ² содСрТит Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit3 Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ (эти Π±ΡƒΠΊΠ²Ρ‹ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ed Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅). Если тСкст Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ s ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с Ρ‚Скстом ΠΈΠ· ΠΏΠΎΠ»Ρ Edit3, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Accept присваиваСтся True, ΠΈ Π·Π°ΠΏΠΈΡΡŒ принимаСтся. Π˜Π½Π°Ρ‡Π΅ запись ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π”Π°Π»Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² Π³Π»Π°Π²Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. НуТно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ вСсь тСкст ΠΈΠ· ΡΠΎΠ±Ρ‹Ρ‚ия onChange ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit3, ΠΈ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ (Рис.120):

Рис.120.

Рис. 120.

{ИзмСнСниС поиска ΠΏΠΎ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ}.

procedure TfMain. Edit1Change (Sender: TObject);

begin.

//Ссли Π² ΠΏΠΎΠ»Π΅ Edit1 Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄Π½Π° Π±ΡƒΠΊΠ²Π°,.

if Edit1. Text «then begin.

fDM.TLichData.Filtered := False; //ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€

fDM.ed := Edit1. Text; //ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π² fDM Π½ΠΎΠ²Ρ‹ΠΉ тСкст.

fDM.TLichData.Filtered := True; //Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€

end.

//Ссли Π±ΡƒΠΊΠ² Π½Π΅Ρ‚, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ:

else fDM.TLichData.Filtered := False;

end;

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π΄Π΅Ρ‚ Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π±ΡƒΠΊΠ²Ρƒ, срабатываСт событиС onChange ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit3. Если Π² Edit3 Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄Π½Π° Π±ΡƒΠΊΠ²Π°, Ρ‚ΠΎ ΠΌΡ‹ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ, отмСняя ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, Ссли ΠΎΠ½ Π±Ρ‹Π». Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ed, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, тСкст ΠΈΠ· Edit3. Π”Π°Π»Π΅Π΅ снова Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€. ΠŸΡ€ΠΈ этом срабатываСт событиС onFilterRecord нашСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΈ Π² ΡΡ‚ΠΎΠΌ событии сравниваСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ed ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ поля «Π€Π°ΠΌΠΈΠ»ΠΈΡ» (Рис. 121,Рис.122).

Рис.121.

Рис. 121.

Рис.122.

Рис. 122.

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

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» Π°Π½Π°Π»ΠΈΠ· возмоТности срСды Borland Delphi 7 для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Access) ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ клиСнтского прилоТСния, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… «ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²».

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Π»Π°Π²Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π±Ρ‹Π»ΠΈ рассмотрСны тСорСтичСскиС основы создания ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΡ€Π΅Π΄Π΅ Borland Delphi 7:

1. НазначСниС систСмы.

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

  • 2. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ Π΅Π³ΠΎ элСмСнты
  • 3. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ интСрфСйса

Окно ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ (Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² прилоТСния (Object Tree View).

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ инспСктор ΠŸΠ°Π»ΠΈΡ‚Ρ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Окно Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ прилоТСния (Π€ΠΎΡ€ΠΌΠ°) Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Кода ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π²Π° (Borland Delphi7).

Они располоТСны Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π°Ρ…: Standard, Win32, System.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π²Π° (для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π” Π² Delphi 7).

Они располоТСны Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π°Ρ…: Data Access, Data Controls, BDE, ADO (Delphi 7), InterBase.

Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

ADOconnection — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π‘Π”.

ADOTable — связываСтся с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ.

DataSource — ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ связка Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†, с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Delphi.

DBGrid — Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ вывСсти содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π‘Π” Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ.

AdoQvery — слуТит для опрСдСлСния SQL-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ нСскольким Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³Π»Π°Π²Π΅, Π±Ρ‹Π» описан процСсс проСктирования ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΡ€Π΅Π΄Π΅ Delphi 7.

Анализ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области Основная функция ΠΎΡ‚Π΄Π΅Π»Π° ΠΊΠ°Π΄Ρ€ΠΎΠ² Π½Π° ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠΈ — ΠΏΠΎΠ΄Π±ΠΎΡ€ пСрсонала ΠΈ ΠΏΠΎΡΡ‚оянная Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΌ Алгоритм создания прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… «ΠžΡ‚Π΄Π΅Π» ΠΊΠ°Π΄Ρ€ΠΎΠ²».

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Access.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ клиСнтского прилоТСния Π² Delphi.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π‘Π” ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚скому ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² Delphi.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΡ‹ ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ поиска Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π” ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ записСй Π² Π‘Π” ΠžΠ±ΠΎΠ±Ρ‰Π°Ρ Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»ΡŒ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ достигнута.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ систСмы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ сотрудников, нСбольшой Ρ„ΠΈΡ€ΠΌΡ‹.

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