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

UptoLike

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

ȼ ɞɚɧɧɨɦ ɩɪɢɦɟɪɟ ɞɨɫɬɭɩ ɞɥɹ ɱɬɟɧɢɹ ɩɨɥɹ ɪɟɚɥɢɡɨɜɚɧ ɮɭɧɤɰɢɟɣ
GetField. ȿɫɥɢ ɫɩɟɰɢɚɥɶɧɵɣ ɦɟɬɨɞ ɱɬɟɧɢɹ/ɨɛɧɨɜɥɟɧɢɹ ɧɟ ɬɪɟɛɭɟɬɫɹ, ɬɨ
ɜɦɟɫɬɨ ɢɦɟɧɢ ɦɟɬɨɞɚ ɦɨɠɧɨ ɭɤɚɡɚɬɶ ɢɦɹ ɩɨɥɹ (ɧɨ ɬɨɥɶɤɨ ɜ ɫɥɭɱɚɟ, ɟɫɥɢ
ɬɢɩ ɫɜɨɣɫɬɜɚ ɫɨɜɩɚɞɚɟɬ ɫ ɬɢɩɨɦ ɩɨɥɹ).
ɇɚɩɪɢɦɟɪ,
property PField:string read FField write SetField;
ȿɫɥɢ ɫɜɨɣɫɬɜɨ ɞɨɫɬɭɩɧɨ ɬɨɥɶɤɨ ɞɥɹ ɱɬɟɧɢɹ ɢɥɢ ɞɥɹ ɡɚɩɢɫɢ, ɬɨ ɫɨɨɬ-
ɜɟɬɫɬɜɭɸɳɢɣ ɦɟɬɨɞ ɦɨɠɧɨ ɨɩɭɫɬɢɬɶ.
ɉɨɞɱɟɪɤɧɟɦ, ɱɬɨ ɩɪɢ ɨɛɪɚɳɟɧɢɢ ɤ ɫɜɨɣɫɬɜɭ ɦɟɬɨɞɵ ɱɬɟ-
ɧɢɹ/ɨɛɧɨɜɥɟɧɢɹ ɧɟ ɭɤɚɡɵɜɚɸɬɫɹ. Ⱦɥɹ ɩɨɥɶɡɨɜɚɬɟɥɹ ɨɛɪɚɳɟɧɢɟ ɤ ɫɜɨɣɫɬɜɭ
ɬɚɤɨɟ ɠɟ, ɤɚɤ ɤ ɩɨɥɸ, ɧɚɩɪɢɦɟɪ,
MyObj.PField:=’100’;
…;
s:=MyObj.PField;
ȼɵɡɨɜɵ ɧɟɨɛɯɨɞɢɦɵɯ ɦɟɬɨɞɨɜ ɜɫɬɪɚɢɜɚɸɬɫɹ ɤɨɦɩɢɥɹɬɨɪɨɦ
ɚɜɬɨɦɚɬɢɱ
ɟɫɤɢ.
ɋɜɨɣɫɬɜɨ ɦɨɠɟɬ ɛɵɬɶ ɜɟɤɬɨɪɧɵɦ, ɧɚɩɪɢɦɟɪ,
property Items[Index: integer]: real read
GetItems write SetItems;
ɩɪɢ ɷɬɨɦ ɦɟɬɨɞɵ ɱɬɟɧɢɹ ɢ ɨɛɧɨɜɥɟɧɢɹ ɢɦɟɸɬ ɜɢɞ
function GetItems (Index: integer): real;
procedure SetItems (Index: integer; NewValue: real);
Ⱦɥɹ ɩɪɨɝɪɚɦɦɢɫɬɚ ɬɚɤɨɟ ɫɜɨɣɫɬɜɨ ɜɵɝɥɹɞɢɬ ɤɚɤ ɦɚɫɫɢɜ, ɤ ɷɥɟɦɟɧɬɚɦ
ɤɨɬɨɪɨɝɨ ɦɨɠɧɨ ɨɛɪɚɳɚɬɶɫɹ ɨɛɵɱɧɵɦ ɨɛɪɚɡɨɦ (ɧɚɩɪɢɦɟɪ,
Items[i]:=1.5), ɯɨɬɹ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɟ ɟɦɭ ɩɨɥɟ ɜ ɞɟɣɫɬɜɢɬɟɥɶɧɨɫɬɢ
ɦɨɠɟɬ ɦɚɫɫɢɜɨɦ ɢ ɧɟ ɹɜɥɹɬɶɫɹ. Ɉɞɧɨɦɭ ɢɡ ɜɟɤɬɨɪɧɵɯ ɫɜɨɣɫɬɜ ɦɨɠɧɨ ɩɪɢ-
ɩɢɫɚɬɶ ɚɬɪɢɛɭɬ default, ɬɨɝɞɚ ɩɪɢ ɨɛɪɚɳɟɧɢɢ ɤ ɧɟɦɭ ɢɦɹ ɫɜɨɣɫɬɜɚ ɦɨɠ-
13
     ȼ ɞɚɧɧɨɦ ɩɪɢɦɟɪɟ ɞɨɫɬɭɩ ɞɥɹ ɱɬɟɧɢɹ ɩɨɥɹ ɪɟɚɥɢɡɨɜɚɧ ɮɭɧɤɰɢɟɣ
GetField. ȿɫɥɢ ɫɩɟɰɢɚɥɶɧɵɣ ɦɟɬɨɞ ɱɬɟɧɢɹ/ɨɛɧɨɜɥɟɧɢɹ ɧɟ ɬɪɟɛɭɟɬɫɹ, ɬɨ
ɜɦɟɫɬɨ ɢɦɟɧɢ ɦɟɬɨɞɚ ɦɨɠɧɨ ɭɤɚɡɚɬɶ ɢɦɹ ɩɨɥɹ (ɧɨ ɬɨɥɶɤɨ ɜ ɫɥɭɱɚɟ, ɟɫɥɢ
ɬɢɩ ɫɜɨɣɫɬɜɚ ɫɨɜɩɚɞɚɟɬ ɫ ɬɢɩɨɦ ɩɨɥɹ).
     ɇɚɩɪɢɦɟɪ,
      property PField:string read FField write SetField;

      ȿɫɥɢ ɫɜɨɣɫɬɜɨ ɞɨɫɬɭɩɧɨ ɬɨɥɶɤɨ ɞɥɹ ɱɬɟɧɢɹ ɢɥɢ ɞɥɹ ɡɚɩɢɫɢ, ɬɨ ɫɨɨɬ-
ɜɟɬɫɬɜɭɸɳɢɣ ɦɟɬɨɞ ɦɨɠɧɨ ɨɩɭɫɬɢɬɶ.
     ɉɨɞɱɟɪɤɧɟɦ,    ɱɬɨ   ɩɪɢ     ɨɛɪɚɳɟɧɢɢ     ɤ   ɫɜɨɣɫɬɜɭ   ɦɟɬɨɞɵ   ɱɬɟ-
ɧɢɹ/ɨɛɧɨɜɥɟɧɢɹ ɧɟ ɭɤɚɡɵɜɚɸɬɫɹ. Ⱦɥɹ ɩɨɥɶɡɨɜɚɬɟɥɹ ɨɛɪɚɳɟɧɢɟ ɤ ɫɜɨɣɫɬɜɭ
ɬɚɤɨɟ ɠɟ, ɤɚɤ ɤ ɩɨɥɸ, ɧɚɩɪɢɦɟɪ,
     MyObj.PField:=’100’;
     …;
     s:=MyObj.PField;

     ȼɵɡɨɜɵ      ɧɟɨɛɯɨɞɢɦɵɯ      ɦɟɬɨɞɨɜ     ɜɫɬɪɚɢɜɚɸɬɫɹ     ɤɨɦɩɢɥɹɬɨɪɨɦ
ɚɜɬɨɦɚɬɢɱɟɫɤɢ.
     ɋɜɨɣɫɬɜɨ ɦɨɠɟɬ ɛɵɬɶ ɜɟɤɬɨɪɧɵɦ, ɧɚɩɪɢɦɟɪ,
     property Items[Index: integer]: real            read
                                        GetItems write SetItems;
ɩɪɢ ɷɬɨɦ ɦɟɬɨɞɵ ɱɬɟɧɢɹ ɢ ɨɛɧɨɜɥɟɧɢɹ ɢɦɟɸɬ ɜɢɞ
     function GetItems (Index: integer): real;
     procedure SetItems (Index: integer; NewValue: real);

     Ⱦɥɹ ɩɪɨɝɪɚɦɦɢɫɬɚ ɬɚɤɨɟ ɫɜɨɣɫɬɜɨ ɜɵɝɥɹɞɢɬ ɤɚɤ ɦɚɫɫɢɜ, ɤ ɷɥɟɦɟɧɬɚɦ
ɤɨɬɨɪɨɝɨ    ɦɨɠɧɨ     ɨɛɪɚɳɚɬɶɫɹ         ɨɛɵɱɧɵɦ     ɨɛɪɚɡɨɦ     (ɧɚɩɪɢɦɟɪ,
Items[i]:=1.5), ɯɨɬɹ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɟ ɟɦɭ ɩɨɥɟ ɜ ɞɟɣɫɬɜɢɬɟɥɶɧɨɫɬɢ
ɦɨɠɟɬ ɦɚɫɫɢɜɨɦ ɢ ɧɟ ɹɜɥɹɬɶɫɹ. Ɉɞɧɨɦɭ ɢɡ ɜɟɤɬɨɪɧɵɯ ɫɜɨɣɫɬɜ ɦɨɠɧɨ ɩɪɢ-
ɩɢɫɚɬɶ ɚɬɪɢɛɭɬ default, ɬɨɝɞɚ ɩɪɢ ɨɛɪɚɳɟɧɢɢ ɤ ɧɟɦɭ ɢɦɹ ɫɜɨɣɫɬɜɚ ɦɨɠ-



                                    13