ВУЗ:
Составители:
<ɢɦɹ ɤɨɦɩɨɧɟɧɬɚ>=class(<ɢɦɹ ɨɛɴɟɤɬɚ-ɪɨɞɢɬɟɥɹ>
{,<ɢɧɬɟɪɮɟɣɫ})
private
<……………………………>
protected
<ɦɟɬɨɞɵ ɢɧɬɟɪɮɟɣɫɨɜ>
<……………………………>
public
<……………………………>
end;
Ⱦɥɹ ɛɵɫɬɪɨɝɨ ɩɨɫɬɪɨɟɧɢɹ COM-ɩɪɢɥɨɠɟɧɢɣ ɪɚɡɪɚɛɨɬɱɢɤɢ Delphi
ɩɨɦɟɫɬɢɥɢ ɜ ɦɨɞɭɥɶ ComObj ɤɥɚɫɫɵ, ɜ ɤɨɬɨɪɵɯ ɪɟɚɥɢɡɨɜɚɧɵ ɜɫɟ ɫɬɚɧ-
ɞɚɪɬɧɵɟ ɬɪɟɛɨɜɚɧɢɹ ɞɥɹ COM. Ɍɚɤ, ɧɚɩɪɢɦɟɪ, ɟɫɬɶ ɤɥɚɫɫ TComObject, ɜ
ɤɨɬɨɪɨɦ ɪɟɚɥɢɡɨɜɚɧɵ ɜɫɟ ɦɟɬɨɞɵ ɢɧɬɟɪɮɟɣɫɚ IUnknown.
ɉɪɢɦɟɱɚɧɢɟ 2.4. ɉɪɢ ɪɟɚɥɢɡɚɰɢɢ COM-ɩɪɢɥɨɠɟɧɢɣ ɜɫɟɝɞɚ ɩɨɥɶɡɭɣ-
ɬɟɫɶ ɲɚɛɥɨɧɚɦɢ, ɩɪɟɞɥɨɠɟɧɧɵɦɢ ɜ ɡɚɤɥɚɞɤɟ ActiveX ɞɢɚɥɨɝɨɜɨɝɨ ɨɤɧɚ
New Items (ɪɢɫ. 2.1). Ⱦɥɹ ɤɚɠɞɨɝɨ ɬɢɩɚ ɡɚɞɚɱ, ɨɫɧɨɜɚɧɧɵɯ ɧɚ COM, ɜ Del-
phi ɪɟɚɥɢɡɨɜɚɧɵ ɫɜɨɢ ɤɥɚɫɫɵ, ɩɪɢɦɟɧɟɧɢɟ ɤɨɬɨɪɵɯ ɫɭɳɟɫɬɜɟɧɧɨ ɨɛɥɟɝɱɚ-
ɟɬ ɪɚɛɨɬɭ ɢ ɝɚɪɚɧɬɢɪɭɟɬ ɤɨɪɪɟɤɬɧɨɫɬɶ ɪɚɛɨɬɵ ɜɚɲɟɝɨ ɩɪɨɟɤɬɚ.
ɂɧɬɟɪɮɟɣɫɵ, ɩɨɞɞɟɪɠɢɜɚɟɦɵɟ ɤɨɦɩɨɧɟɧɬɨɦ, ɨɩɢɫɵɜɚɸɬɫɹ ɱɟɪɟɡ ɡɚ-
ɩɹɬɭɸ ɜ ɪɚɡɞɟɥɟ ɨɩɢɫɚɧɢɹ ɤɥɚɫɫɚ-ɩɪɟɞɤɚ, ɚ ɦɟɬɨɞɵ ɢɧɬɟɪɮɟɣɫɚ ɨɛɵɱɧɨ
ɨɩɢɫɵɜɚɸɬɫɹ ɜ ɪɚɡɞɟɥɟ ɨɩɢɫɚɧɢɹ protected.
ɉɪɢɦɟɱɚɧɢɟ 2.5.
ȿɫɥɢ ɧɭɠɧɨ ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɬɶ ɤɚɤɢɟ-ɥɢɛɨ ɞɚɧɧɵɟ
ɜɨ ɜɪɟɦɹ ɫɨɡɞɚɧɢɹ ɤɨɦɩɨɧɟɧɬɚ, ɬɨ ɞɥɹ ɷɬɢɯ ɰɟɥɟɣ ɢɫɩɨɥɶɡɭɣɬɟ ɦɟɬɨɞ Ini-
tialize, ɤɨɬɨɪɵɣ ɜɵɡɵɜɚɟɬɫɹ ɩɨɫɥɟ ɪɚɛɨɬɵ ɤɨɧɫɬɪɭɤɬɨɪɚ.
2.4. Ɋɚɡɪɟɲɟɧɢɟ ɧɟɨɞɧɨɡɧɚɱɧɨɫɬɢ ɦɟɬɨɞɨɜ
Ʉɚɤ ɭɠɟ ɛɵɥɨ ɧɟɨɞɧɨɤɪɚɬɧɨ ɫɤɚɡɚɧɨ, ɤɨɦɩɨɧɟɧɬ ɦɨɠɟɬ ɩɨɞɞɟɪɠɢ-
ɜɚɬɶ ɧɟɫɤɨɥɶɤɨ ɢɧɬɟɪɮɟɣɫɨɜ. ȿɫɥɢ ɦɟɬɨɞɵ ɪɚɡɧɵɯ ɢɧɬɟɪɮɟɣɫɨɜ ɫ ɨɞɢɧɚ-
ɤɨɜɵɦɢ ɢɦɟɧɚɦɢ ɜɵɩɨɥɧɹɸɬ ɨɞɢɧɚɤɨɜɵɟ ɮɭɧɤɰɢɢ, ɩɪɨɛɥɟɦ ɧɟ ɜɨɡɧɢɤɚɟɬ,
ɚ ɤɨɝɞɚ ɬɪɟɛɭɟɬɫɹ, ɱɬɨɛɵ ɨɧɢ ɜɵɩɨɥɧɹɥɢ ɪɚɡɧɵɟ ɮɭɧɤɰɢɢ, ɢɫɩɨɥɶɡɭɟɬɫɹ
ɫɩɟɰɢɚɥɶɧɚɹ ɮɨɪɦɚ ɜɵɪɚɠɟɧɢɹ ɞɥɹ ɪɚɡɪɟɲɟɧɢɹ ɦɟɬɨɞɨɜ, ɩɪɢɦɟɪ ɪɟɚɥɢ-
ɡɚɰɢɢ ɤɨɬɨɪɵɯ ɩɪɢɜɟɞɟɧ ɜ ɫɥɟɞɭɸɳɟɦ ɩɪɢɦɟɪɟ:
IInterface1=interface
procedure DoIt; stdcall;
end;
19
IInterface2=interface
procedure DoIt; stdcall;
end;
TMyObject=class(TComObject, IInterface1, IInteface2)
procedure IInterface1.DoIt=DoIt1;
procedure IInterface2.DoIt=DoIt2;
procedure DoIt1; stdcall;
procedure DoIt2; stdcall;
end;
Ʉɥɚɫɫ TMyObject ɨɬɨɛɪɚɠɚɟɬ ɦɟɬɨɞ IInterface1.DoIt ɧɚ DoIt1, ɚ ɦɟɬɨɞ
IInterface2.DoIt – ɧɚ DoIt2.
2.5. Ⱦɟɥɟɝɢɪɨɜɚɧɢɟ ɢɧɬɟɪɮɟɣɫɚ
ɉɭɫɬɶ ɢɦɟɟɬɫɹ ɯɨɪɨɲɨ ɩɪɨɞɭɦɚɧɧɵɣ ɤɥɚɫɫ TObject1, ɜ ɤɨɬɨɪɨɦ ɪɟɚ-
ɥɢɡɨɜɚɧ ɢɧɬɟɪɮɟɣɫ IInterfase1. Ɍɪɟɛɭɟɬɫɹ ɫɨɡɞɚɬɶ ɤɥɚɫɫ TCombinedObject,
ɜ ɤɨɬɨɪɨɦ ɛɭɞɭɬ ɪɟɚɥɢɡɨɜɚɧɵ ɞɜɚ ɢɧɬɟɪɮɟɣɫɚ IInterfase1 ɢ IInterfase2. Ⱦɥɹ
ɷɬɢɯ ɰɟɥɟɣ ɜ ɫɪɟɞɟ Delphi ɪɚɡɪɚɛɨɬɚɧ ɦɟɬɨɞ ɞɟɥɟɝɢɪɨɜɚɧɢɹ ɢɧɬɟɪɮɟɣɫɚ,
ɨɫɧɨɜɚɧɧɵɣ ɧɚ ɬɨɦ, ɱɬɨ ɤɥɚɫɫ-ɩɪɟɟɦɧɢɤ ɫɨɞɟɪɠɢɬ ɭɤɚɡɚɬɟɥɶ ɧɚ ɞɪɭɝɨɣ
ɤɥɚɫɫ, ɜ ɤɨɬɨɪɨɦ ɭɠɟ ɪɟɚɥɢɡɨɜɚɧɨ ɩɨɜɟɞɟɧɢɟ ɨɞɧɨɝɨ ɢɥɢ ɛɨɥɟɟ ɢɧɬɟɪɮɟɣ-
ɫɨɜ. Ʉɚɤ ɦɨɠɧɨ ɨɫɭɳɟɫɬɜɢɬɶ ɞɟɥɟɝɢɪɨɜɚɧɢɟ, ɩɨɤɚɡɚɧɨ ɜ ɫɥɟɞɭɸɳɟɦ ɩɪɢ-
ɦɟɪɟ:
unit Unit1;
uses ComObj;
type
IInterface1=interface
procedure DoIt1;
end;
IInterface2=interface
procedure DoIt2;
end;
TObject1=class(TComObject, IInterface1)
protected
procedure DoIt1;
end;
TCombinedObject=class(TComObject, IInterface1, IInterface2)
private
20
<��� ����������>=class(<��� �������-��������> IInterface2=interface {,<���������}) procedure DoIt; stdcall; private end; <……………………………> TMyObject=class(TComObject, IInterface1, IInteface2) protected procedure IInterface1.DoIt=DoIt1; procedure IInterface2.DoIt=DoIt2; <������ �����������> <……………………………> procedure DoIt1; stdcall; procedure DoIt2; stdcall; public end; <……………………………> ����� TMyObject ���������� ����� IInterface1.DoIt �� DoIt1, � ����� end; IInterface2.DoIt – �� DoIt2. ��� �������� ���������� COM-���������� ������������ Delphi ��������� � ������ ComObj ������, � ������� ����������� ��� ����- 2.5. ������������� ���������� ������� ���������� ��� COM. ���, ��������, ���� ����� TComObject, � ������� ����������� ��� ������ ���������� IUnknown. ����� ������� ������ ����������� ����� TObject1, � ������� ���- ������� ��������� IInterfase1. ��������� ������� ����� TCombinedObject, ���������� 2.4. ��� ���������� COM-���������� ������ �������- � ������� ����� ����������� ��� ���������� IInterfase1 � IInterfase2. ��� ���� ���������, ������������� � �������� ActiveX ����������� ���� ���� ����� � ����� Delphi ���������� ����� ������������� ����������, New Items (���. 2.1). ��� ������� ���� �����, ���������� �� COM, � Del- ���������� �� ���, ��� �����-�������� �������� ��������� �� ������ phi ����������� ���� ������, ���������� ������� ����������� �������- �����, � ������� ��� ����������� ��������� ������ ��� ����� ��������- �� ������ � ����������� ������������ ������ ������ �������. ���. ��� ����� ����������� �������������, �������� � ��������� ���- ����������, �������������� �����������, ����������� ����� ��- ����: ����� � ������� �������� ������-������, � ������ ���������� ������ unit Unit1; ����������� � ������� �������� protected. uses ComObj; ���������� 2.5. ���� ����� ���������������� �����-���� ������ �� ����� �������� ����������, �� ��� ���� ����� ����������� ����� Ini- type tialize, ������� ���������� ����� ������ ������������. IInterface1=interface procedure DoIt1; end; 2.4. ���������� ��������������� ������� IInterface2=interface ��� ��� ���� ������������ �������, ��������� ����� ��������- procedure DoIt2; ���� ��������� �����������. ���� ������ ������ ����������� � �����- end; ������ ������� ��������� ���������� �������, ������� �� ���������, � ����� ���������, ����� ��� ��������� ������ �������, ������������ TObject1=class(TComObject, IInterface1) ����������� ����� ��������� ��� ���������� �������, ������ �����- protected ����� ������� �������� � ��������� �������: procedure DoIt1; end; IInterface1=interface procedure DoIt; stdcall; TCombinedObject=class(TComObject, IInterface1, IInterface2) end; private 19 20
Страницы
- « первая
- ‹ предыдущая
- …
- 8
- 9
- 10
- 11
- 12
- …
- следующая ›
- последняя »