Введение в технологию программирования. Ч.1. Среда объектно-ориентированного программирования Delphi. Коржов Е.Н - 57 стр.

UptoLike

Составители: 

57
– OnKeyDown ɢ OnKeyUp ɜɨɡɧɢɤɚɸɬ ɩɪɢ ɧɚɠɚɬɢɢ ɢ ɨɬɩɭɫɤɚɧɢɢ ɥɸ-
ɛɨɣ ɤɥɚɜɢɲɢ ɤɥɚɜɢɚɬɭɪɵ;
– OnKeyPress ɬɨɥɶɤɨ ɩɪɢ ɧɚɠɚɬɢɢ ɚɥɮɚɜɢɬɧɨ-ɰɢɮɪɨɜɵɯ ɤɥɚɜɢɲ.
ɉɚɪɚɦɟɬɪ Shift, ɤɚɤ ɢ ɜ ɨɛɪɚɛɨɬɱɢɤɚɯ ɫɨɛɵɬɢɣ ɨɬ ɦɵɲɢ, ɫɨɞɟɪɠɢɬ
ɭɬɨɱɧɹɸɳɢɟ ɩɪɢɡɧɚɤɢ. ɉɚɪɚɦɟɬɪ Key ɫɨɞɟɪɠɢɬ ɤɨɞ ɤɥɚɜɢɲɢ.
ɂɧɬɟɪɮɟɣɫ Drag & Drop ɨɩɪɟɞɟɥɹɟɬɫɹ ɞɜɭɦɹ ɫɜɨɣɫɬɜɚɦɢ ɢ ɬɪɟɦɹ ɫɨ-
ɛɵɬɢɹɦɢ, ɞɨɫɬɭɩɧɵɦɢ ɤɚɠɞɨɦɭ ɜɢɞɢɦɨɦɭ ɤɨɦɩɨɧɟɧɬɭ:
– DragMode ɨɩɪɟɞɟɥɹɟɬ, ɤɚɤ ɛɭɞɟɬ ɜɵɩɨɥɧɹɬɶɫɹ ɜɟɫɶ ɤɨɦɩɥɟɤɫ ɞɟɣɫɬ-
ɜɢɣ, ɫɜɹɡɚɧɧɵɯ ɫ Drag & Drop (dmManual, dmAutomatic);
– DragCursor ɨɩɪɟɞɟɥɹɟɬ ɜɢɞ ɭɤɚɡɚɬɟɥɹ ɦɵɲɢ;
– OnDragOver ɜɨɡɧɢɤɚɟɬ ɜ ɦɨɦɟɧɬ ɩɟɪɟɦɟɳɟɧɢɹ ɭɤɚɡɚɬɟɥɹ ɦɵɲɢ «ɫ
ɝɪɭɡɨɦ» ɧɚɞ ɤɨɦɩɨɧɟɧɬɨɦ (ɩɚɪɚɦɟɬɪ Senderɤɨɦɩɨɧɟɧɬ, ɤɨɬɨɪɵɣ ɜɨɡɛɭ-
ɞɢɥ ɫɨɛɵɬɢɟ; Sourceɤɨɦɩɨɧɟɧɬ-ɨɬɩɪɚɜɢɬɟɥɶ «ɝɪɭɡɚ»; X, Y – ɬɟɤɭɳɢɟ ɤɨ-
ɨɪɞɢɧɚɬɵ ɭɤɚɡɚɬɟɥɹ ɦɵɲɢ; State ɫɨɫɬɨɹɧɢɟ ɭɤɚɡɚɬɟɥɹ; Acceptɝɨɬɨɜɧɨɫɬɶ
ɤɨɦɩɨɧɟɧɬɚ ɩɪɢɧɹɬɶ ɞɚɧɧɵɟ);
– OnDragDrop ɨɡɧɚɱɚɟɬ, ɱɬɨ ɩɨɥɶɡɨɜɚɬɟɥɶ «ɛɪɨɫɢɥ» ɞɚɧɧɵɟ ɧɚ ɤɨɦ-
ɩɨɧɟɧɬ;
– OnEndDrag ɜɨɡɧɢɤɚɟɬ ɩɪɢ ɡɚɜɟɪɲɟɧɢɢ ɩɟɪɟɬɚɫɤɢɜɚɧɢɹ (Sender
ɨɬɩɪɚɜɢɬɟɥɶ ɞɚɧɧɵɯ; Targer ɩɨɥɭɱɚɬɟɥɶ ɞɚɧɧɵɯ ɢɥɢ Nil).
1.1. ɉɨɞɝɨɬɨɜɢɬɟɥɶɧɵɟ ɞɟɣɫɬɜɢɹ
1. ɋɨɡɞɚɣɬɟ ɩɨɞɤɚɬɚɥɨɝ Lab6 ɜ ɫɜɨɟɦ ɤɚɬɚɥɨɝɟ.
2. ɇɚɱɧɢɬɟ ɪɚɡɪɚɛɨɬɤɭ ɧɨɜɨɝɨ ɩɪɨɟɤɬɚ. Ɋɚɡɪɚɛɨɬɚɣɬɟ ɮɨɪɦɭ, ɢɦɟɸ-
ɳɭɸ ɬɚɤɭɸ ɠɟ ɤɨɧɫɬɪɭɤɰɢɸ, ɤɚɤ ɧɚ ɪɢɫ. 3.4.3.
3. ɇɚ ɮɨɪɦɟ ɪɚɫɩɨɥɨɠɟɧɵ: ɞɜɟ ɦɟɬɤɢ Label1 ɢ Label2, ɞɜɚ ɨɞɧɨ-
ɫɬɪɨɱɧɵɯ ɪɟɞɚɤɬɨɪɚ Edit1 ɢ Edit2, ɞɜɟ ɩɚɧɟɥɢ Panel1 ɢ Panel2; ɨɞɢɧ ɤɨɦ-
ɩɨɧɟɧɬ TStatusBar ɫ ɢɦɟɧɟɦ StatusBar1.
1.2. Ʉɨɦɩɨɧɟɧɬ TStatusBar
1. Ʉɨɦɩɨɧɟɧɬ TStatusBar (ɜɤɥɚɞɤɚ Win32) ɩɪɟɞɧɚɡɧɚɱɟɧ ɞɥɹ ɫɨɡɞɚɧɢɹ
ɩɚɧɟɥɟɣ ɫɨɫɬɨɹɧɢɹ, ɤɨɬɨɪɵɟ ɨɛɵɱɧɨ ɪɚɫɩɨɥɚɝɚɸɬɫɹ ɜ ɧɢɠɧɟɣ ɱɚɫɬɢ ɨɫɧɨɜ-
ɧɨɣ ɮɨɪɦɵ. Ʉɨɦɩɨɧɟɧɬ ɦɨɠɟɬ ɢɦɟɬɶ ɧɟɫɤɨɥɶɤɨ ɫɟɤɰɢɣ. Ʉɨɥɢɱɟɫɬɜɨ ɫɟɤ-
ɰɢɣ, ɚ ɬɚɤ ɠɟ ɫɬɢɥɶ ɤɚɠɞɨɣ ɩɚɧɟɥɢ ɡɚɞɚɸɬɫɹ ɫ ɩɨɦɨɳɶɸ ɫɩɟɰɢɚɥɶɧɨɝɨ ɪɟ-
ɞɚɤɬɨɪɚ, ɤɨɬɨɪɵɣ ɜɵɡɵɜɚɟɬɫɹ ɫɜɨɣɫɬɜɨɦ Panels. ɗɬɨ ɫɜɨɣɫɬɜɨ ɫɨɞɟɪɠɢɬ
ɨɛɴɟɤɬɵ-ɩɚɧɟɥɢ. ɋɜɨɣɫɬɜɨ TStatusPanels.Items[Index: Integer] ɨɬɤɪɵɜɚɟɬ
ɞɨɫɬɭɩ ɤ ɩɚɧɟɥɢ ɩɨ ɟɟ ɢɧɞɟɤɫɭ. ɋ ɩɨɦɨɳɶɸ ɫɜɨɣɫɬɜ Width ɢ Height ɢɡɦɟ-
ɧɢɬɟ ɞɥɢɧɭ ɢ ɜɵɫɨɬɭ ɤɚɠɞɨɣ ɫɟɤɰɢɢ
.
     – OnKeyDown ɢ OnKeyUp ɜɨɡɧɢɤɚɸɬ ɩɪɢ ɧɚɠɚɬɢɢ ɢ ɨɬɩɭɫɤɚɧɢɢ ɥɸ-
ɛɨɣ ɤɥɚɜɢɲɢ ɤɥɚɜɢɚɬɭɪɵ;
     – OnKeyPress – ɬɨɥɶɤɨ ɩɪɢ ɧɚɠɚɬɢɢ ɚɥɮɚɜɢɬɧɨ-ɰɢɮɪɨɜɵɯ ɤɥɚɜɢɲ.
     ɉɚɪɚɦɟɬɪ Shift, ɤɚɤ ɢ ɜ ɨɛɪɚɛɨɬɱɢɤɚɯ ɫɨɛɵɬɢɣ ɨɬ ɦɵɲɢ, ɫɨɞɟɪɠɢɬ
ɭɬɨɱɧɹɸɳɢɟ ɩɪɢɡɧɚɤɢ. ɉɚɪɚɦɟɬɪ Key ɫɨɞɟɪɠɢɬ ɤɨɞ ɤɥɚɜɢɲɢ.
     ɂɧɬɟɪɮɟɣɫ Drag & Drop ɨɩɪɟɞɟɥɹɟɬɫɹ ɞɜɭɦɹ ɫɜɨɣɫɬɜɚɦɢ ɢ ɬɪɟɦɹ ɫɨ-
ɛɵɬɢɹɦɢ, ɞɨɫɬɭɩɧɵɦɢ ɤɚɠɞɨɦɭ ɜɢɞɢɦɨɦɭ ɤɨɦɩɨɧɟɧɬɭ:
     – DragMode ɨɩɪɟɞɟɥɹɟɬ, ɤɚɤ ɛɭɞɟɬ ɜɵɩɨɥɧɹɬɶɫɹ ɜɟɫɶ ɤɨɦɩɥɟɤɫ ɞɟɣɫɬ-
ɜɢɣ, ɫɜɹɡɚɧɧɵɯ ɫ Drag & Drop (dmManual, dmAutomatic);
     – DragCursor ɨɩɪɟɞɟɥɹɟɬ ɜɢɞ ɭɤɚɡɚɬɟɥɹ ɦɵɲɢ;
     – OnDragOver ɜɨɡɧɢɤɚɟɬ ɜ ɦɨɦɟɧɬ ɩɟɪɟɦɟɳɟɧɢɹ ɭɤɚɡɚɬɟɥɹ ɦɵɲɢ «ɫ
ɝɪɭɡɨɦ» ɧɚɞ ɤɨɦɩɨɧɟɧɬɨɦ (ɩɚɪɚɦɟɬɪ Sender – ɤɨɦɩɨɧɟɧɬ, ɤɨɬɨɪɵɣ ɜɨɡɛɭ-
ɞɢɥ ɫɨɛɵɬɢɟ; Source – ɤɨɦɩɨɧɟɧɬ-ɨɬɩɪɚɜɢɬɟɥɶ «ɝɪɭɡɚ»; X, Y – ɬɟɤɭɳɢɟ ɤɨ-
ɨɪɞɢɧɚɬɵ ɭɤɚɡɚɬɟɥɹ ɦɵɲɢ; State ɫɨɫɬɨɹɧɢɟ ɭɤɚɡɚɬɟɥɹ; Accept – ɝɨɬɨɜɧɨɫɬɶ
ɤɨɦɩɨɧɟɧɬɚ ɩɪɢɧɹɬɶ ɞɚɧɧɵɟ);
     – OnDragDrop ɨɡɧɚɱɚɟɬ, ɱɬɨ ɩɨɥɶɡɨɜɚɬɟɥɶ «ɛɪɨɫɢɥ» ɞɚɧɧɵɟ ɧɚ ɤɨɦ-
ɩɨɧɟɧɬ;
     – OnEndDrag ɜɨɡɧɢɤɚɟɬ ɩɪɢ ɡɚɜɟɪɲɟɧɢɢ ɩɟɪɟɬɚɫɤɢɜɚɧɢɹ (Sender –
ɨɬɩɪɚɜɢɬɟɥɶ ɞɚɧɧɵɯ; Targer – ɩɨɥɭɱɚɬɟɥɶ ɞɚɧɧɵɯ ɢɥɢ Nil).
     1.1. ɉɨɞɝɨɬɨɜɢɬɟɥɶɧɵɟ ɞɟɣɫɬɜɢɹ
     1. ɋɨɡɞɚɣɬɟ ɩɨɞɤɚɬɚɥɨɝ Lab6 ɜ ɫɜɨɟɦ ɤɚɬɚɥɨɝɟ.
     2. ɇɚɱɧɢɬɟ ɪɚɡɪɚɛɨɬɤɭ ɧɨɜɨɝɨ ɩɪɨɟɤɬɚ. Ɋɚɡɪɚɛɨɬɚɣɬɟ ɮɨɪɦɭ, ɢɦɟɸ-
ɳɭɸ ɬɚɤɭɸ ɠɟ ɤɨɧɫɬɪɭɤɰɢɸ, ɤɚɤ ɧɚ ɪɢɫ. 3.4.3.
     3. ɇɚ ɮɨɪɦɟ ɪɚɫɩɨɥɨɠɟɧɵ: ɞɜɟ ɦɟɬɤɢ Label1 ɢ Label2, ɞɜɚ ɨɞɧɨ-
ɫɬɪɨɱɧɵɯ ɪɟɞɚɤɬɨɪɚ Edit1 ɢ Edit2, ɞɜɟ ɩɚɧɟɥɢ Panel1 ɢ Panel2; ɨɞɢɧ ɤɨɦ-
ɩɨɧɟɧɬ TStatusBar ɫ ɢɦɟɧɟɦ StatusBar1.
     1.2. Ʉɨɦɩɨɧɟɧɬ TStatusBar
     1. Ʉɨɦɩɨɧɟɧɬ TStatusBar (ɜɤɥɚɞɤɚ Win32) ɩɪɟɞɧɚɡɧɚɱɟɧ ɞɥɹ ɫɨɡɞɚɧɢɹ
ɩɚɧɟɥɟɣ ɫɨɫɬɨɹɧɢɹ, ɤɨɬɨɪɵɟ ɨɛɵɱɧɨ ɪɚɫɩɨɥɚɝɚɸɬɫɹ ɜ ɧɢɠɧɟɣ ɱɚɫɬɢ ɨɫɧɨɜ-
ɧɨɣ ɮɨɪɦɵ. Ʉɨɦɩɨɧɟɧɬ ɦɨɠɟɬ ɢɦɟɬɶ ɧɟɫɤɨɥɶɤɨ ɫɟɤɰɢɣ. Ʉɨɥɢɱɟɫɬɜɨ ɫɟɤ-
ɰɢɣ, ɚ ɬɚɤ ɠɟ ɫɬɢɥɶ ɤɚɠɞɨɣ ɩɚɧɟɥɢ ɡɚɞɚɸɬɫɹ ɫ ɩɨɦɨɳɶɸ ɫɩɟɰɢɚɥɶɧɨɝɨ ɪɟ-
ɞɚɤɬɨɪɚ, ɤɨɬɨɪɵɣ ɜɵɡɵɜɚɟɬɫɹ ɫɜɨɣɫɬɜɨɦ Panels. ɗɬɨ ɫɜɨɣɫɬɜɨ ɫɨɞɟɪɠɢɬ
ɨɛɴɟɤɬɵ-ɩɚɧɟɥɢ. ɋɜɨɣɫɬɜɨ TStatusPanels.Items[Index: Integer] ɨɬɤɪɵɜɚɟɬ
ɞɨɫɬɭɩ ɤ ɩɚɧɟɥɢ ɩɨ ɟɟ ɢɧɞɟɤɫɭ. ɋ ɩɨɦɨɳɶɸ ɫɜɨɣɫɬɜ Width ɢ Height ɢɡɦɟ-
ɧɢɬɟ ɞɥɢɧɭ ɢ ɜɵɫɨɬɭ ɤɚɠɞɨɣ ɫɟɤɰɢɢ.



                                  57