Разработка компонентов в DELPHI. Вощинская Г.Э. - 11 стр.

UptoLike

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

property Width;
// ɇɨɜɨɟ ɫɨɛɵɬɢɟ
property OnNewEvent : TEventType read FOnNewEvent
write FOnNewEvent;
// Ɉɩɭɛɥɢɤɨɜɚɧɢɟ ɭɧɚɫɥɟɞɨɜɚɧɧɨɝɨ ɫɨɛɵɬɢɹ
property OnClick;
end;
Ⱦɚɥɟɟ ɧɟɨɛɯɨɞɢɦɨ ɧɚɩɢɫɚɬɶ ɤɨɞ ɪɟɚɥɢɡɚɰɢɢ ɧɨɜɵɯ ɦɟɬɨɞɨɜ. ȼɫɥɟ-
ɞɭɸɳɢɯ ɪɚɡɞɟɥɚɯ ɫɯɟɦɚ ɤɨɦɩɨɧɟɧɬɚ ɪɚɫɫɦɚɬɪɢɜɚɟɬɫɹ ɛɨɥɟɟ ɩɨɞɪɨɛɧɨ.
2.2. ɋɨɡɞɚɧɢɟ ɫɜɨɣɫɬɜ ɤɨɦɩɨɧɟɧɬɚ
ɋɜɨɣɫɬɜɚ ɩɪɟɞɫɬɚɜɥɹɸɬ ɫɨɛɨɣ ɫɚɦɵɣ ɜɚɠɧɵɣ ɚɫɩɟɤɬ ɥɸɛɨɝɨ ɤɨɦɩɨ-
ɧɟɧɬɚ ɢ ɨɩɪɟɞɟɥɹɸɬ ɝɥɚɜɧɵɣ ɢɧɬɟɪɮɟɣɫ, ɫ ɩɨɦɨɳɶɸ ɤɨɬɨɪɨɝɨ ɩɨɥɶɡɨɜɚ-
ɬɟɥɶ ɦɚɧɢɩɭɥɢɪɭɟɬ ɤɨɦɩɨɧɟɧɬɨɦ ɢ ɧɚɫɬɪɚɢɜɚɟɬ ɟɝɨ ɩɟɪɟɞ ɜɵɩɨɥɧɟɧɢɟɦ
ɩɪɢɥɨɠɟɧɢɹ.
ɋɜɨɣɫɬɜɚ ɢɫɩɨɥɶɡɭɸɬɫɹ ɞɥɹ ɬɨɝɨ, ɱɬɨɛɵ ɫɤɪɵɬɶ ɨɬ ɩɨɥɶɡɨɜɚɬɟɥɹ ɞɟ-
ɬɚɥɢ ɪɟɚɥɢɡɚɰɢɢ ɢ ɱɬɨɛɵ ɫɨɡɞɚɬɶ ɷɮɮɟɤɬ ɞɟɣɫɬɜɢɹ ɩɪɢ ɢɡɦɟɧɟɧɢɢ ɡɧɚɱɟ-
ɧɢɹ. ɇɚɩɪɢɦɟɪ, ɢɡɦɟɧɟɧɢɟ ɫɜɨɣɫɬɜɚ Height ɤɨɦɩɨɧɟɧɬɚ TPanel ɧɟ
ɬɨɥɶɤɨ ɢɡɦɟɧɹɟɬ ɡɧɚɱɟɧɢɟ Height, ɧɨ ɢ ɩɪɢɜɨɞɢɬ ɤ ɬɨɦɭ, ɱɬɨ ɤɨɦɩɨɧɟɧɬ
ɩɟɪɟɪɢɫɨɜɵɜɚɟɬ ɫɟɛɹ. ɉɟɪɟɪɢɫɨɜɤɚ ɤɨɦɩɨɧɟɧɬɚ ɹɜɥɹɟɬɫɹ ɬɢɩɢɱɧɵɦ ɷɮɮɟɤ-
ɬɨɦ ɞɟɣɫɬɜɢɹ.
ȼ ɩɪɨɫɬɟɣɲɟɦ ɫɥɭɱɚɟ ɫɜɨɣɫɬɜɨ ɨɩɪɟɞɟɥɹɟɬɫɹ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ:
property <ɢɦɹ ɫɜɨɣɫɬɜɚ>: <ɬɢɩ ɫɜɨɣɫɬɜɚ> [read <ɦɟɬɨɞ ɱɬɟɧɢɹ
ɫɜɨɣɫɬɜɚ>] [write <ɦɟɬɨɞ ɡɚɩɢɫɢ ɫɜɨɣɫɬɜɚ>].
ɉɪɢɦɟɪ. Ⱦɨɫɬɭɩ ɤ ɩɨɥɸ FField ɬɢɩɚ integer ɪɟɚɥɢɡɭɟɬɫɹ ɱɟɪɟɡ
ɫɜɨɣɫɬɜɨ PField ɬɢɩɚ string. ɉɪɟɨɛɪɚɡɨɜɚɧɢɟ ɬɢɩɨɜ ɩɪɨɢɫɯɨɞɢɬ ɩɪɢ
ɜɵɡɨɜɟ ɦɟɬɨɞɨɜ ɱɬɟɧɢɹ/ɡɚɩɢɫɢ:
interface
type
11
            property Width;
            // ɇɨɜɨɟ ɫɨɛɵɬɢɟ
            property   OnNewEvent    :   TEventType   read    FOnNewEvent
                                         write FOnNewEvent;
            // Ɉɩɭɛɥɢɤɨɜɚɧɢɟ ɭɧɚɫɥɟɞɨɜɚɧɧɨɝɨ ɫɨɛɵɬɢɹ
            property OnClick;
         end;
     Ⱦɚɥɟɟ ɧɟɨɛɯɨɞɢɦɨ ɧɚɩɢɫɚɬɶ ɤɨɞ ɪɟɚɥɢɡɚɰɢɢ ɧɨɜɵɯ ɦɟɬɨɞɨɜ. ȼ ɫɥɟ-
ɞɭɸɳɢɯ ɪɚɡɞɟɥɚɯ ɫɯɟɦɚ ɤɨɦɩɨɧɟɧɬɚ ɪɚɫɫɦɚɬɪɢɜɚɟɬɫɹ ɛɨɥɟɟ ɩɨɞɪɨɛɧɨ.


                  2.2. ɋɨɡɞɚɧɢɟ ɫɜɨɣɫɬɜ ɤɨɦɩɨɧɟɧɬɚ

     ɋɜɨɣɫɬɜɚ ɩɪɟɞɫɬɚɜɥɹɸɬ ɫɨɛɨɣ ɫɚɦɵɣ ɜɚɠɧɵɣ ɚɫɩɟɤɬ ɥɸɛɨɝɨ ɤɨɦɩɨ-
ɧɟɧɬɚ ɢ ɨɩɪɟɞɟɥɹɸɬ ɝɥɚɜɧɵɣ ɢɧɬɟɪɮɟɣɫ, ɫ ɩɨɦɨɳɶɸ ɤɨɬɨɪɨɝɨ ɩɨɥɶɡɨɜɚ-
ɬɟɥɶ ɦɚɧɢɩɭɥɢɪɭɟɬ ɤɨɦɩɨɧɟɧɬɨɦ ɢ ɧɚɫɬɪɚɢɜɚɟɬ ɟɝɨ ɩɟɪɟɞ ɜɵɩɨɥɧɟɧɢɟɦ
ɩɪɢɥɨɠɟɧɢɹ.
     ɋɜɨɣɫɬɜɚ ɢɫɩɨɥɶɡɭɸɬɫɹ ɞɥɹ ɬɨɝɨ, ɱɬɨɛɵ ɫɤɪɵɬɶ ɨɬ ɩɨɥɶɡɨɜɚɬɟɥɹ ɞɟ-
ɬɚɥɢ ɪɟɚɥɢɡɚɰɢɢ ɢ ɱɬɨɛɵ ɫɨɡɞɚɬɶ ɷɮɮɟɤɬ ɞɟɣɫɬɜɢɹ ɩɪɢ ɢɡɦɟɧɟɧɢɢ ɡɧɚɱɟ-
ɧɢɹ. ɇɚɩɪɢɦɟɪ, ɢɡɦɟɧɟɧɢɟ ɫɜɨɣɫɬɜɚ Height ɤɨɦɩɨɧɟɧɬɚ TPanel ɧɟ
ɬɨɥɶɤɨ ɢɡɦɟɧɹɟɬ ɡɧɚɱɟɧɢɟ Height, ɧɨ ɢ ɩɪɢɜɨɞɢɬ ɤ ɬɨɦɭ, ɱɬɨ ɤɨɦɩɨɧɟɧɬ
ɩɟɪɟɪɢɫɨɜɵɜɚɟɬ ɫɟɛɹ. ɉɟɪɟɪɢɫɨɜɤɚ ɤɨɦɩɨɧɟɧɬɚ ɹɜɥɹɟɬɫɹ ɬɢɩɢɱɧɵɦ ɷɮɮɟɤ-
ɬɨɦ ɞɟɣɫɬɜɢɹ.
     ȼ ɩɪɨɫɬɟɣɲɟɦ ɫɥɭɱɚɟ ɫɜɨɣɫɬɜɨ ɨɩɪɟɞɟɥɹɟɬɫɹ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ:
property <ɢɦɹ ɫɜɨɣɫɬɜɚ>: <ɬɢɩ ɫɜɨɣɫɬɜɚ>           [read <ɦɟɬɨɞ ɱɬɟɧɢɹ
ɫɜɨɣɫɬɜɚ>] [write <ɦɟɬɨɞ ɡɚɩɢɫɢ ɫɜɨɣɫɬɜɚ>].

     ɉɪɢɦɟɪ. Ⱦɨɫɬɭɩ ɤ ɩɨɥɸ FField ɬɢɩɚ integer ɪɟɚɥɢɡɭɟɬɫɹ ɱɟɪɟɡ
ɫɜɨɣɫɬɜɨ PField ɬɢɩɚ string. ɉɪɟɨɛɪɚɡɨɜɚɧɢɟ ɬɢɩɨɜ ɩɪɨɢɫɯɨɞɢɬ ɩɪɢ
ɜɵɡɨɜɟ ɦɟɬɨɞɨɜ ɱɬɟɧɢɹ/ɡɚɩɢɫɢ:
interface
  type

                                    11