ВУЗ:
Составители:
New Enumeration – ɞɨɛɚɜɥɹɟɬ ɩɟɪɟɱɢɫɥɟɧɢɟ. ɉɟɪɟɱɢɫɥɟɧɢɟ
(enumeration) ɜ ɛɢɛɥɢɨɬɟɤɟ ɬɢɩɨɜ ɚɧɚɥɨɝɢɱɧɨ ɩɟɪɟɱɢɫɥɢɦɨɦɭ ɬɢɩɭ ɜ
Delphi: ɨɛɴɹɜɥɹɟɬ ɧɚɛɨɪ ɰɟɥɵɯ ɢɞɟɧɬɢɮɢɤɚɬɨɪɨɜ;
New Alias – ɫɨɡɞɚɟɬ ɩɫɟɜɞɨɧɢɦ. ɉɫɟɜɞɨɧɢɦ (alias) ɢɫɩɨɥɶɡɭɟɬɫɹ ɜ
ɛɢɛɥɢɨɬɟɤɟ ɬɢɩɨɜ ɞɥɹ ɫɩɟɰɢɮɢɤɚɰɢɢ ɬɢɩɚ, ɤɨɬɨɪɵɣ ɠɟɥɚɬɟɥɶɧɨ ɜɤɥɸɱɢɬɶ
ɜ ɫɨɫɬɚɜ ɡɚɩɢɫɢ ɢɥɢ ɨɛɴɟɞɢɧɟɧɢɹ (union);
New Record – ɡɚɞɚɟɬ ɫɬɪɭɤɬɭɪɭ ɡɚɩɢɫɢ;
New Union – ɡɚɞɚɟɬ ɬɢɩ ɨɛɴɟɞɢɧɟɧɢɹ. Ɉɛɴɟɞɢɧɟɧɢɟ (union) – ɷɬɨ ɷɤ-
ɜɢɜɚɥɟɧɬ ɦɚɫɫɢɜɚ ɜɚɪɢɚɧɬɧɨɝɨ ɬɢɩɚ (array of variant);
New Module – ɨɩɪɟɞɟɥɹɟɬ ɧɨɜɵɣ ɦɨɞɭɥɶ. Ɇɨɞɭɥɶ ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ
ɧɚɛɨɪ ɦɟɬɨɞɨɜ ɢ ɤɨɧɫɬɚɧɬ;
New Method – ɞɨɛɚɜɥɹɟɬ ɧɨɜɵɣ ɦɟɬɨɞ ɜ ɢɧɬɟɪɮɟɣɫ. ȿɫɥɢ ɜ ɫɩɢɫɤɟ
ɨɛɴɟɤɬɨɜ ɜɵɞɟɥɢɬɶ ɢɧɬɟɪɮɟɣɫ, ɬɨ ɷɬɚ ɤɧɨɩɤɚ ɫɬɚɧɨɜɢɬɫɹ ɚɤɬɢɜɧɨɣ;
New Property – ɞɨɛɚɜɥɹɟɬ ɧɨɜɨɟ ɫɜɨɣɫɬɜɨ ɜ ɢɧɬɟɪɮɟɣɫ. Ɍɚɤ ɠɟ, ɤɚɤ ɢ
ɜ ɨɛɵɱɧɵɣ ɤɥɚɫɫ Delphi, ɜ ɢɧɬɟɪɮɟɣɫ ɦɨɠɧɨ ɞɨɛɚɜɢɬɶ ɫɜɨɣɫɬɜɨ, ɤɨɬɨɪɨɟ
ɛɭɞɟɬ ɬɨɥɶɤɨ ɞɥɹ ɡɚɩɢɫɢ (read-only), ɬɨɥɶɤɨ ɞɥɹ ɱɬɟɧɢɹ (write-only) ɢɥɢ
ɞɥɹ ɱɬɟɧɢɹ ɢ ɡɚɩɢɫɢ (read-write) ɨɞɧɨɜɪɟɦɟɧɧɨ;
Refresh Implementation – ɩɪɢ ɧɚɠɚɬɢɢ ɧɚ ɷɬɭ ɤɧɨɩɤɭ ɨɛɧɨɜɥɹɟɬɫɹ
ɩɪɨɝɪɚɦɦɧɵɣ ɤɨɞ ɩɪɢɥɨɠɟɧɢɹ ɫɨɨɬɜɟɬɫɬɜɟɧɧɨ ɞɚɧɧɵɦ ɜ ɪɟɞɚɤɬɨɪɟ Type
Library Editor;
Register Type Library – ɩɨɫɥɟ ɳɟɥɱɤɚ ɧɚ ɷɬɨɣ ɤɧɨɩɤɟ Delphi ɡɚɩɭɫɬɢɬ
ɩɪɨɰɟɫɫ ɤɨɦɩɢɥɹɰɢɢ ɫɨɡɞɚɜɚɟɦɨɝɨ COM-ɫɟɪɜɟɪɚ ɢ ɡɚɪɟɝɢɫɬɪɢɪɭɟɬ ɟɝɨ ɜ
ɫɢɫɬɟɦɧɨɦ ɪɟɟɫɬɪɟ Windows;
Export to IDL – ɫ ɩɨɦɨɳɶɸ ɷɬɨɣ ɤɧɨɩɤɢ ɦɨɠɧɨ ɫɮɨɪɦɢɪɨɜɚɬɶ ɩɪɨ-
ɝɪɚɦɦɧɵɣ ɤɨɞ ɜ ɮɨɪɦɚɬɟ MIDL ɢɥɢ CORBA.
3.3. ɂɫɩɨɥɶɡɨɜɚɧɢɟ ɛɢɛɥɢɨɬɟɤɢ ɬɢɩɨɜ ɩɪɢ
ɪɚɡɪɚɛɨɬɤɟ ɤɨɦɩɨɧɟɧɬɨɜ
Ʉɚɤ ɭɠɟ ɛɵɥɨ ɫɤɚɡɚɧɨ, ɞɥɹ ɩɨɞɤɥɸɱɟɧɢɹ ɛɢɛɥɢɨɬɟɤɢ ɬɢɩɨɜ ɤ ɫɨɡɞɚ-
ɜɚɟɦɨɦɭ COM-ɫɟɪɜɟɪɭ ɧɭɠɧɨ ɜ ɦɚɫɬɟɪɟ COM Object Wizard (ɪɢɫ. 2.2) ɜɵ-
ɛɪɚɬɶ ɮɥɚɠɨɤ Include Type Library. Ɍɚɤɠɟ ɦɨɠɧɨ ɩɨɞɤɥɸɱɢɬɶ ɛɢɛɥɢɨɬɟɤɭ
ɬɢɩɨɜ ɜɪɭɱɧɭɸ, ɞɨɛɚɜɢɜ ɟɟ ɜ ɩɪɨɟɤɬ ɜ ɜɢɞɟ ɪɟɫɭɪɫɚ:
{$R MyTypeLib.tlb}
ɉɪɢɦɟɱɚɧɢɟ 3.1.
ɂɧɨɝɞɚ ɧɟɨɛɯɨɞɢɦɨ, ɱɬɨɛɵ ɧɟɫɤɨɥɶɤɨ COM-
ɫɟɪɜɟɪɨɜ ɢɦɟɥɢ ɨɞɢɧɚɤɨɜɵɣ ɢɧɬɟɪɮɟɣɫ ɢ ɛɵɥɢ ɭɫɬɚɧɨɜɥɟɧɵ ɧɚ ɨɞɢɧ ɤɨɦ-
ɩɶɸɬɟɪ ɨɞɧɨɜɪɟɦɟɧɧɨ. Ⱦɥɹ ɷɬɢɯ ɰɟɥɟɣ ɛɢɛɥɢɨɬɟɤɚ ɬɢɩɨɜ ɪɟɝɢɫɬɪɢɪɭɟɬ-
ɫɹ ɜ ɫɢɫɬɟɦɟ ɨɬɞɟɥɶɧɨ ɨɬ COM-ɫɟɪɜɟɪɨɜ.
Ʉɨɝɞɚ ɢɫɩɨɥɶɡɭɟɬɫɹ ɛɢɛɥɢɨɬɟɤɚ ɬɢɩɨɜ, ɫɨɡɞɚɜɚɟɦɵɣ ɤɨɦɩɨɧɟɧɬ ɧɚ-
ɫɥɟɞɭɟɬɫɹ ɧɟ ɨɬ TComObject, ɚɨɬ TTypedComObject. ɂ ɜɦɟɫɬɨ ɝɟɧɟɪɚɬɨɪɚ
ɤɨɦɩɨɧɟɧɬɨɜ TComObjectFactory ɢɫɩɨɥɶɡɭɟɬɫɹ TTypedComObjectFactory.
35
TTypedComObject ɢ TTypedComObjectFactory ɩɪɟɞɧɚɡɧɚɱɟɧɵ ɞɥɹ ɪɚɛɨɬɵ
ɫ ɛɢɛɥɢɨɬɟɤɨɣ ɬɢɩɨɜ ɢ ɚɧɚɥɨɝɢɱɧɵ ɤɥɚɫɫɚɦ TComObject ɢ
TɋomObjectFactory.
Ⱦɥɹ ɪɟɚɥɢɡɚɰɢɢ COM-ɫɟɪɜɟɪɚ ɜ ɫɪɟɞɟ Delphi ɪɟɞɚɤɬɨɪ Type Library
Editor ɝɟɧɟɪɢɪɭɟɬ ɩɪɨɝɪɚɦɦɧɵɣ ɦɨɞɭɥɶ ɧɚ ɹɡɵɤɟ Object Pascal, ɧɟɩɨɫɪɟɞ-
ɫɬɜɟɧɧɨ ɫɜɹɡɚɧɧɵɣ ɫ ɛɢɛɥɢɨɬɟɤɨɣ ɬɢɩɨɜ. ȿɫɥɢ ɜ ɪɟɞɚɤɬɨɪɟ Type Library
Editor ɧɚɠɚɬɶ ɧɚ ɤɧɨɩɤɭ Refresh Implementation, ɬɨ ɞɚɧɧɵɟ ɷɬɨɝɨ ɦɨɞɭɥɹ
ɨɛɧɨɜɹɬɫɹ ɫɨɨɬɜɟɬɫɬɜɟɧɧɨ ɞɚɧɧɵɦ ɜ ɛɢɛɥɢɨɬɟɤɟ (tlb).
3.4. ɉɪɢɦɟɪ ɪɚɡɪɚɛɨɬɤɢ ɜɫɬɪɨɟɧɧɨɝɨ COM-ɫɟɪɜɟɪɚ
ɫ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɛɢɛɥɢɨɬɟɤɢ ɬɢɩɨɜ
ȼɨ ɜɬɨɪɨɣ ɝɥɚɜɟ ɛɵɥ ɪɚɡɨɛɪɚɧ ɩɪɢɦɟɪ ɪɚɡɪɚɛɨɬɤɢ COM-ɫɟɪɜɟɪɚ. Ɋɟɚ-
ɥɢɡɭɟɦ ɷɬɨɬ ɩɪɢɦɟɪ ɫ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɛɢɛɥɢɨɬɟɤɢ ɬɢɩɨɜ.
1. ɋɨɡɞɚɞɢɦ ɜɫɬɪɨɟɧɧɵɣ COM-ɫɟɪɜɟɪ, ɜɵɛɪɚɜ ɜ ɞɢɚɥɨɝɨɜɨɦ ɨɤɧɟ
New Items (ɪɢɫ. 2.1) ɷɥɟɦɟɧɬ ActiveX Library, ɢ ɫɨɯɪɚɧɢɦ ɟɝɨ ɩɨɞ ɢɦɟ-
ɧɟɦ Convert.dpr.
2. ɋɨɡɞɚɞɢɦ ɧɨɜɵɣ Ʉɨɦɩɨɧɟɧɬ, ɜɵɛɪɚɜ ɷɥɟɦɟɧɬ COM Object. ȼ Ɇɚɫɬɟɪɟ
COM Object Wizard (ɪɢɫ. 2.2) ɩɨɫɬɚɜɢɦ ɮɥɚɠɨɤ Include Type Library ɢ
ɭɛɟɪɟɦ Mark interface Oleautomation (ɬ. ɤ. ɷɬɨ ɛɭɞɟɬ ɪɚɫɫɦɨɬɪɟɧɨ ɜ ɝɥ. V).
ȼ ɩɨɥɟ Class Name ɧɚɩɢɲɟɦ ObjConvert.
3. Ʉɨɝɞɚ ɛɭɞɟɬ ɧɚɠɚɬɚ ɤɧɨɩɤɚ ɈɄ, ɚɜɬɨɦɚɬɢɱɟɫɤɢ ɨɬɤɪɨɟɬɫɹ ɨɤɧɨ ɪɟɞɚɤ-
ɬɨɪɚ Type Library Editor. ȼ ɩɨɥɟ ɫɩɢɫɤɚ ɨɛɴɟɤɬɨɜ ɛɭɞɭɬ ɞɜɚ ɷɥɟɦɟɧɬɚ:
ObjConvert ɢ IObjConvert. ȿɫɥɢ ɢɧɬɟɪɮɟɣɫɚ IObjConvert ɧɟɬ, ɬɨ ɫɨɡ-
ɞɚɣɬɟ ɟɝɨ ɫ ɩɨɦɨɳɶɸ ɩɚɧɟɥɢ ɢɧɫɬɪɭɦɟɧɬɨɜ ɪɟɞɚɤɬɨɪɚ.
4. ɍ ɢɧɬɟɪɮɟɣɫɚ IObjConvert ɫɨɡɞɚɞɢɦ ɧɨɜɵɣ ɦɟɬɨɞ ɢ ɧɚɡɨɜɟɦ ɟɝɨ Bin. ɇɚ
ɡɚɤɥɚɞɤɟ Parameters ɜ ɫɬɪɨɤɟ Return Type ɭɫɬɚɧɨɜɢɦ ɜɨɡɜɪɚɳɚɟɦɵɣ ɬɢɩ
WordBool. ȼ ɬɚɛɥɢɰɟ ɞɨɛɚɜɢɦ ɧɨɜɵɣ ɩɚɪɚɦɟɬɪ, ɧɚɠɚɜ ɧɚ ɤɧɨɩɤɭ Add, ɢ
ɜ ɩɨɥɟ Name ɭɤɚɠɟɦ ɢɦɹ N, ɚ ɜ ɩɨɥɟ Type – Word. Ⱥɧɚɥɨɝɢɱɧɨ ɞɨɛɚɜɢɦ
ɩɚɪɚɦɟɬɪ Str, ɧɚɠɚɜ ɧɚ ɤɧɨɩɤɭ Add ɢ ɜɵɛɪɚɜ ɜ ɩɨɥɟ Modifier ɡɧɚɱɟɧɢɟ
out ɢ Retval,
ɜ ɩɨɥɟ Name – Str, ɚ ɜ ɩɨɥɟ Type – WideString.
5. Ⱥɧɚɥɨɝɢɱɧɨ ɩɭɧɤɬɭ 5 ɡɚɞɚɸɬɫɹ ɦɟɬɨɞɵ Oct ɢ Hex.
6. ɇɚɠɚɜ ɧɚ ɤɧɨɩɤɭ Refresh Implementation, ɨɛɧɨɜɢɦ ɪɟɚɥɢɡɚɰɢɸ ɤɨɞɚ.
7. Ʉɨɝɞɚ ɜɟɪɧɟɦɫɹ ɜ ɪɟɞɚɤɬɨɪ Delphi, ɦɨɞɭɥɶ ObjConvertUnit ɛɭɞɟɬ ɫɨ-
ɞɟɪɠɚɬɶ ɫɥɟɞɭɸɳɢɣ ɬɟɤɫɬ:
unit ObjConvertUnit;
interface
uses
Windows, ActiveX, ComObj, Convert_TLB;
36
New Enumeration – ��������� ������������. ������������ TTypedComObject � TTypedComObjectFactory ������������� ��� ������ (enumeration) � ���������� ����� ���������� ������������� ���� � � ����������� ����� � ���������� ������� TComObject � Delphi: ��������� ����� ����� ���������������; T�omObjectFactory. New Alias – ������� ���������. ��������� (alias) ������������ � ��� ���������� COM-������� � ����� Delphi �������� Type Library ���������� ����� ��� ������������ ����, ������� ���������� �������� Editor ���������� ����������� ������ �� ����� Object Pascal, ��������- � ������ ������ ��� ����������� (union); ������� ��������� � ����������� �����. ���� � ��������� Type Library New Record – ������ ��������� ������; Editor ������ �� ������ Refresh Implementation, �� ������ ����� ������ New Union – ������ ��� �����������. ����������� (union) – ��� ��- ��������� �������������� ������ � ���������� (tlb). �������� ������� ����������� ���� (array of variant); New Module – ���������� ����� ������. ������ ������������ ����� 3.4. ������ ���������� ����������� COM-������� ����� ������� � ��������; � �������������� ���������� ����� New Method – ��������� ����� ����� � ���������. ���� � ������ �������� �������� ���������, �� ��� ������ ���������� ��������; �� ������ ����� ��� �������� ������ ���������� COM-�������. ���- New Property – ��������� ����� �������� � ���������. ��� ��, ��� � ������ ���� ������ � �������������� ���������� �����. � ������� ����� Delphi, � ��������� ����� �������� ��������, ������� 1. �������� ���������� COM-������, ������ � ���������� ���� ����� ������ ��� ������ (read-only), ������ ��� ������ (write-only) ��� New Items (���. 2.1) ������� ActiveX Library, � �������� ��� ��� ���- ��� ������ � ������ (read-write) ������������; ��� Convert.dpr. Refresh Implementation – ��� ������� �� ��� ������ ����������� 2. �������� ����� ���������, ������ ������� COM Object. � ������� ����������� ��� ���������� �������������� ������ � ��������� Type COM Object Wizard (���. 2.2) �������� ������ Include Type Library � Library Editor; ������ Mark interface Oleautomation (�. �. ��� ����� ����������� � ��. V). Register Type Library – ����� ������ �� ���� ������ Delphi �������� � ���� Class Name ������� ObjConvert. ������� ���������� ������������ COM-������� � �������������� ��� � 3. ����� ����� ������ ������ ��, ������������� ��������� ���� �����- ��������� ������� Windows; ���� Type Library Editor. � ���� ������ �������� ����� ��� ��������: Export to IDL – � ������� ���� ������ ����� ������������ ���- ObjConvert � IObjConvert. ���� ���������� IObjConvert ���, �� ���- �������� ��� � ������� MIDL ��� CORBA. ����� ��� � ������� ������ ������������ ���������. 4. � ���������� IObjConvert �������� ����� ����� � ������� ��� Bin. �� 3.3. ������������� ���������� ����� ��� �������� Parameters � ������ Return Type ��������� ������������ ��� ���������� ����������� WordBool. � ������� ������� ����� ��������, ����� �� ������ Add, � � ���� Name ������ ��� N, � � ���� Type – Word. ���������� ������� ��� ��� ���� �������, ��� ����������� ���������� ����� � �����- �������� Str, ����� �� ������ Add � ������ � ���� Modifier �������� ������� COM-������� ����� � ������� COM Object Wizard (���. 2.2) ��- out � Retval, � ���� Name – Str, � � ���� Type – WideString. ����� ������ Include Type Library. ����� ����� ���������� ���������� 5. ���������� ������ 5 �������� ������ Oct � Hex. ����� �������, ������� �� � ������ � ���� �������: 6. ����� �� ������ Refresh Implementation, ������� ���������� ����. {$R MyTypeLib.tlb} 7. ����� �������� � �������� Delphi, ������ ObjConvertUnit ����� ��- ������� ��������� �����: ���������� 3.1. ������ ����������, ����� ��������� COM- �������� ����� ���������� ��������� � ���� ����������� �� ���� ���- unit ObjConvertUnit; ������ ������������. ��� ���� ����� ���������� ����� ������������- �� � ������� �������� �� COM-��������. interface ����� ������������ ���������� �����, ����������� ��������� ��- uses ��������� �� �� TComObject, � �� TTypedComObject. � ������ ���������� Windows, ActiveX, ComObj, Convert_TLB; ����������� TComObjectFactory ������������ TTypedComObjectFactory. 35 36
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »