ВУЗ:
Составители:
<ɢɦɹ ɤɨɦɩɨɧɟɧɬɚ>=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
- …
- следующая ›
- последняя »
