Основы COM-технологий. Артемов М.А. и др. - 33 стр.

UptoLike

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

ɇɟɪɟɞɤɨ ɞɥɹ ɩɟɪɟɦɟɳɟɧɢɹ ɩɨ ɬɟɤɫɬɭ ɢɫɩɨɥɶɡɭɸɬɫɹ ɡɚɤɥɚɞɤɢ. ɋɨɡɞɚɬɶ
ɡɚɤɥɚɞɤɭ ɜ ɬɟɤɭɳɟɣ ɩɨɡɢɰɢɢ ɤɭɪɫɨɪɚ ɦɨɠɧɨ ɩɭɬɟɦ ɞɨɛɚɜɥɟɧɢɹ ɱɥɟɧɚ ɤɨɥ-
ɥɟɤɰɢɢ Bookmarks ɨɛɴɟɤɬɚ Document c ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ Add, ɭɤɚɡɚɜ ɢɦɹ
ɡɚɤɥɚɞɤɢ ɜ ɤɚɱɟɫɬɜɟ ɩɚɪɚɦɟɬɪɚ, ɧɚɩɪɢɦɟɪ:
App.ActiveDocument.Bookmarks.Add(‘MyBookmark’);
ɉɪɨɜɟɪɢɬɶ ɫɭɳɟɫɬɜɨɜɚɧɢɟ ɡɚɤɥɚɞɤɢ ɜ ɞɨɤɭɦɟɧɬɟ ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ
ɦɟɬɨɞɚ Exists, ɚ ɩɟɪɟɦɟɫɬɢɬɶɫɹ ɧɚ ɧɟɟɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ Goto ɨɛɴɟɤɬɨɜ
Document, Range ɢɥɢ Selection:
Rng := App.ActiveDocument.Goto(wdGoToBookmark, wdGoToNext,
,‘MyBookmark’);
Rng.InsertAfter(‘Ɍɟɤɫɬ, ɜɫɬɚɜɥɟɧɧɵɣ ɩɨɫɥɟ ɡɚɤɥɚɞɤɢ’);
Ɂɧɚɱɟɧɢɹ ɤɨɧɫɬɚɧɬ ɞɥɹ ɷɬɨɝɨ ɩɪɢɦɟɪɚ ɬɚɤɨɜɵ:
const
wdGoToBookmark = $FFFFFFFF; //ɩɟɪɟɣɬɢ ɤ ɡɚɤɥɚɞɤɟ
wdGoToNext = $00000002; //ɢɫɤɚɬɶ ɫɥɟɞɭɸɳɢɣ ɨɛɴɟɤɬ ɜ ɬɟɤɫɬɟ
Ɉɬɦɟɬɢɦ, ɱɬɨ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ Goto ɦɨɠɧɨ ɩɟɪɟɦɟɳɚɬɶɫɹ ɧɟ ɬɨɥɶ-
ɤɨ ɧɚ ɭɤɚɡɚɧɧɭɸ ɡɚɤɥɚɞɤɭ, ɧɨ ɢ ɧɚ ɞɪɭɝɢɟ ɨɛɴɟɤɬɵ (ɪɢɫɭɧɤɢ, ɝɪɚɦɦɚɬɢɱɟ-
ɫɤɢɟ ɨɲɢɛɤɢ ɢ ɞɪ.), ɢ ɧɚɩɪɚɜɥɟɧɢɟ ɩɟɪɟɦɟɳɟɧɢɹ ɬɨɠɟ ɦɨɠɟɬ ɛɵɬɶ ɪɚɡ-
ɥɢɱɧɵɦ. ɉɨɷɬɨɦɭ ɫɩɢɫɨɤ ɤɨɧɫɬɚɧɬ, ɤɨɬɨɪɵɟ ɦɨɝɭɬ ɛɵɬɶ ɢɫɩɨɥɶɡɨɜɚɧɵ ɜ
ɤɚɱɟɫɬɜɟ ɩɚɪɚɦɟɬɪɨɜ ɞɚɧɧɨɝɨ ɦɟɬɨɞɚ, ɞɨɜɨɥɶɧɨ ɜɟɥɢɤ.
6.4.6. ɋɨɡɞɚɧɢɟ ɬɚɛɥɢɰ
ɋɨɡɞɚɜɚɬɶ ɬɚɛɥɢɰɵ ɦɨɠɧɨ ɞɜɭɦɹ ɫɩɨɫɨɛɚɦɢ. ɉɟɪɜɵɣ ɡɚɤɥɸɱɚɟɬɫɹ ɜ
ɜɵɡɨɜɟ ɦɟɬɨɞɚ Add ɤɨɥɥɟɤɰɢɢ Tables ɨɛɴɟɤɬɚ Document ɢ ɩɨɫɥɟɞɨɜɚɬɟɥɶ-
ɧɨɦ ɡɚɩɨɥɧɟɧɢɢ ɹɱɟɟɤ ɞɚɧɧɵɦɢ. ɗɬɨɬ ɫɩɨɫɨɛ ɩɪɢ ɩɨɡɞɧɟɦ ɫɜɹɡɵɜɚɧɢɢ ɪɚ-
ɛɨɬɚɟɬ ɞɨɜɨɥɶɧɨ ɦɟɞɥɟɧɧɨ.
ȼɬɨɪɨɣ ɫɩɨɫɨɛ, ɧɚɦɧɨɝɨ ɛɨɥɟɟ «ɛɵɫɬɪɵɣ», ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɫɨɡɞɚɧɢɢ
ɬɟɤɫɬɚ ɢɡ ɧɟɫɤɨɥɶɤɢɯ ɫɬɪɨɤ, ɫɨɞɟɪɠɚɳɢɯ ɩɨɞɫɬɪɨɤɢ ɫ ɪɚɡɞɟɥɢɬɟɥɹɦɢ (ɜ
ɤɚɱɟɫɬɜɟ ɪɚɡɞɟɥɢɬɟɥɹ ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɥɸɛɨɣ ɢɥɢ ɩɨɱɬɢ ɥɸɛɨɣ ɫɢɦ
-
ɜɨɥ, ɧɭɠɧɨ ɬɨɥɶɤɨ, ɱɬɨɛɵ ɨɧ ɡɚɜɟɞɨɦɨ ɧɟ ɜɫɬɪɟɱɚɥɫɹ ɜ ɞɚɧɧɵɯ, ɤɨɬɨɪɵɟ
ɛɭɞɭɬ ɩɨɦɟɳɟɧɵ ɜ ɛɭɞɭɳɭɸ ɬɚɛɥɢɰɭ), ɢ ɩɨɫɥɟɞɭɸɳɟɣ ɤɨɧɜɟɪɬɚɰɢɢ ɬɚɤɨ-
ɝɨ ɬɟɤɫɬɚ ɜ ɬɚɛɥɢɰɭ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ ConvertToTable ɨɛɴɟɤɬɚ Range.
ɇɢɠɟ ɩɪɢɜɟɞɟɧ ɩɪɢɦɟɪ ɫɨɡɞɚɧɢɹ ɬɚɛɥɢɰɵ ɢɡ ɬɪɟɯ ɫɬɪɨɤ ɢ ɬɪɟɯ ɫɬɨɥɛɰɨɜ
ɷɬɢɦ ɫɩɨɫɨɛɨɦ (ɜ ɤɚɱɟcɬɜɟ ɪɚɡɞɟɥɢɬɟɥɹ, ɹɜɥɹɸɳɟɝɨɫɹ ɩɟɪɜɵɦ ɩɚɪɚɦɟɬɪɨɦ
ɦɟɬɨɞɚ ConvertToTable, ɢɫɩɨɥɶɡɭɟɬɫɹ ɡɚɩɹɬɚɹ):
Var
Rng: Variant;
...
Rng := App.Selection.Range;
Rng.Collapse(wdCollapseEnd);
Rng.InsertAfter(‘1, 2, 3’);
Rng.InsertParagraphAfter;
65
Rng.InsertAfter(‘4,5,6’);
Rng.InsertParagraphAfter;
Rng.InsertAfter(‘7,8,9’);
Rng.InsertParagraphAfter;
Rng.ConvertToTable(‘,’);
ȼɧɟɲɧɢɣ ɜɢɞ ɬɚɛɥɢɰɵ ɦɨɠɧɨ ɢɡɦɟɧɢɬɶ ɫ ɩɨɦɨɳɶɸ ɫɜɨɣɫɬɜɚ Format,
ɚ ɬɚɤɠɟ ɫ ɩɨɦɨɳɶɸ ɫɜɨɣɫɬɜ ɤɨɥɥɟɤɰɢɢ Columns, ɩɪɟɞɫɬɚɜɥɹɸɳɟɣ ɤɨɥɨɧ-
ɤɢ ɬɚɛɥɢɰɵ, ɢ ɤɨɥɥɟɤɰɢɢ Rows, ɩɪɟɞɫɬɚɜɥɹɸɳɟɣ ɫɬɪɨɤɢ ɬɚɛɥɢɰɵ ɨɛɴɟɤɬɚ
Table.
6.4.7. Ɉɛɪɚɳɟɧɢɟ ɤ ɫɜɨɣɫɬɜɚɦ ɞɨɤɭɦɟɧɬɚ
ɋɜɨɣɫɬɜɚ ɞɨɤɭɦɟɧɬɚ ɦɨɠɧɨ ɩɨɥɭɱɢɬɶ ɫ ɩɨɦɨɳɶɸ ɤɨɥɥɟɤɰɢɢ
BuiltInDocumentProperties ɨɛɴɟɤɬɚ Document, ɧɚɩɪɢɦɟɪ:
Memo1.Lines.Add(‘ɇɚɡɜɚɧɢɟ -
‘+App.ActiveDocument.BuiltInDocumentProperties [wdPropertyTitle].Value);
Memo1.Lines.Add(‘Ⱥɜɬɨɪ -
‘+App.ActiveDocument.BuiltInDocumentProperties [wdPropertyAu-
thor].Value);
Memo1.Lines.Add(‘ɒɚɛɥɨɧ -
‘+App.ActiveDocument.BuiltInDocumentProperties [wdPropertyTem-
plate].Value);
ȼ ɞɚɧɧɨɦ ɪɚɡɞɟɥɟ ɩɪɢɜɟɞɟɧɵ ɨɫɧɨɜɧɵɟ ɨɩɟɪɚɰɢɢ, ɤɨɬɨɪɵɟ ɧɚɢɛɨɥɟɟ
ɱɚɫɬɨ ɩɪɢɦɟɧɹɸɬɫɹ ɩɪɢ ɚɜɬɨɦɚɬɢɡɚɰɢɢ Microsoft Word. ȿɫɬɟɫɬɜɟɧɧɨ, ɜɨɡ-
ɦɨɠɧɨɫɬɢ ɚɜɬɨɦɚɬɢɡɚɰɢɢ Word ɞɚɥɟɤɨ ɧɟ ɢɫɱɟɪɩɵɜɚɸɬɫɹ ɩɪɢɜɟɞɟɧɧɵɦɢ
ɩɪɢɦɟɪɚɦɢ, ɨɞɧɚɤɨ, ɪɭɤɨɜɨɞɫɬɜɭɹɫɶ ɨɫɧɨɜɧɵɦɢ ɩɪɢɧɰɢɩɚɦɢ ɫɨɡɞɚɧɢɹ
ɤɨɧɬɪɨɥɥɟɪɨɜ Word, ɢɡɥɨɠɟɧɧɵɦɢ ɜ ɞɚɧɧɨɣ ɝɥɚɜɟ, ɢ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɣ
ɫɩɪɚɜɨɱɧɨɣ ɢɧɮɨɪɦɚɰɢɟɣ [Ɉɲɢɛɤɚ! ɂɫɬɨɱɧɢɤ ɫɫɵɥɤɢ ɧɟ ɧɚɣɞɟɧ.],
ɦɨɠɧɨ ɢɦɢ ɜɨɫɩɨɥɶɡɨɜɚɬɶɫɹ ɫɚɦɨɫɬɨɹɬɟɥɶɧɨ.
6.5. Ⱥɜɬɨɦɚɬɢɡɚɰɢɹ Microsoft Excel
ȼ ɞɚɧɧɨɦ ɪɚɡɞɟɥɟ ɪɚɫɫɦɚɬɪɢɜɚɸɬɫɹ ɧɚɢɛɨɥɟɟ ɱɚɫɬɨ ɜɫɬɪɟɱɚɸɳɢɟɫɹ
ɡɚɞɚɱɢ, ɫɜɹɡɚɧɧɵɟ ɫ ɚɜɬɨɦɚɬɢɡɚɰɢɟɣ Microsoft Excel. ɇɨ ɩɟɪɟɞ ɷɬɢɦ ɪɚɫ-
ɫɦɨɬɪɢɦ, ɤɚɤɨɜɵ ɩɪɨɝɪɚɦɦɧɵɟ ɢɞɟɧɬɢɮɢɤɚɬɨɪɵ ɨɫɧɨɜɧɵɯ ɨɛɴɟɤɬɨɜ
Microsoft Excel ɢ ɱɬɨ ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɟɝɨ ɨɛɴɟɤɬɧɚɹ ɦɨɞɟɥɶ.
6.5.1. ɉɪɨɝɪɚɦɦɧɵɟ ɢɞɟɧɬɢɮɢɤɚɬɨɪɵ ɢ ɨɛɴɟɤɬɧɚɹ ɦɨɞɟɥɶ
Microsoft Excel
ɋɭɳɟɫɬɜɭɟɬ ɬɪɢ ɬɢɩɚ ɨɛɴɟɤɬɨɜ Excel, ɤɨɬɨɪɵɟ ɦɨɝɭɬ ɛɵɬɶ ɫɨɡɞɚɧɵ
ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɫ ɩɨɦɨɳɶɸ ɩɪɢɥɨɠɟɧɢɹ-ɤɨɧɬɪɨɥɥɟɪɚ. ɗɬɢ ɨɛɴɟɤɬɵ ɢ
ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɟ ɢɦ ɩɪɨɝɪɚɦɦɧɵɟ ɢɞɟɧɬɢɮɢɤɚɬɨɪɵ ɩɟɪɟɱɢɫɥɟɧɵ ɧɢɠɟ.
66
    ������� ��� ����������� �� ������ ������������ ��������. �������           Rng.InsertAfter(‘4,5,6’);
�������� � ������� ������� ������� ����� ����� ���������� ����� ���-           Rng.InsertParagraphAfter;
������ Bookmarks ������� Document c ������� ������ Add, ������ ���             Rng.InsertAfter(‘7,8,9’);
�������� � �������� ���������, ��������:                                       Rng.InsertParagraphAfter;
    App.ActiveDocument.Bookmarks.Add(‘MyBookmark’);                            Rng.ConvertToTable(‘,’);
    ��������� ������������� �������� � ��������� ����� � �������
������ Exists, � ������������� �� ��� – � ������� ������ Goto ��������        ������� ��� ������� ����� �������� � ������� �������� Format,
Document, Range ��� Selection:                                           � ����� � ������� ������� ��������� Columns, �������������� �����-
    Rng := App.ActiveDocument.Goto(wdGoToBookmark, wdGoToNext,           �� �������, � ��������� Rows, �������������� ������ ������� �������
,‘MyBookmark’);                                                          Table.
    Rng.InsertAfter(‘�����, ����������� ����� ��������’);                               6.4.7. ��������� � ��������� ���������
    �������� �������� ��� ����� ������� ������:
    const                                                                     �������� ��������� ����� �������� � ������� ���������
    wdGoToBookmark = $FFFFFFFF; //������� � ��������                     BuiltInDocumentProperties ������� Document, ��������:
    wdGoToNext = $00000002; //������ ��������� ������ � ������                Memo1.Lines.Add(‘�������� -
                                                                         ‘+App.ActiveDocument.BuiltInDocumentProperties [wdPropertyTitle].Value);
    �������, ��� � ������� ������ Goto ����� ������������ �� ����-            Memo1.Lines.Add(‘����� -
�� �� ��������� ��������, �� � �� ������ ������� (�������, ����������-   ‘+App.ActiveDocument.BuiltInDocumentProperties [wdPropertyAu-
���� ������ � ��.), � ����������� ����������� ���� ����� ���� ���-       thor].Value);
������. ������� ������ ��������, ������� ����� ���� ������������ �            Memo1.Lines.Add(‘������ -
�������� ���������� ������� ������, �������� �����.                      ‘+App.ActiveDocument.BuiltInDocumentProperties [wdPropertyTem-
                                                                         plate].Value);
                       6.4.6. �������� ������
                                                                             � ������ ������� ��������� �������� ��������, ������� ��������
     ��������� ������� ����� ����� ���������. ������ ����������� �       ����� ����������� ��� ������������� Microsoft Word. �����������, ���-
������ ������ Add ��������� Tables ������� Document � �������������-     �������� ������������� Word ������ �� ������������� ������������
��� ���������� ����� �������. ���� ������ ��� ������� ���������� ��-     ���������, ������, �������������� ��������� ���������� ��������
������ �������� ��������.                                                ������������ Word, ����������� � ������ �����, � ���������������
     ������ ������, ������� ����� «�������», ����������� � ��������      ���������� ����������� [������! �������� ������ �� ������.],
������ �� ���������� �����, ���������� ��������� � ������������� (�      ����� ��� ��������������� ��������������.
�������� ����������� ����� ������������ ����� ��� ����� ����� ���-
���, ����� ������, ����� �� �������� �� ���������� � ������, �������                    6.5. ������������� Microsoft Excel
����� �������� � ������� �������), � ����������� ����������� ����-
�� ������ � ������� � ������� ������ ConvertToTable ������� Range.           � ������ ������� ��������������� �������� ����� �������������
���� �������� ������ �������� ������� �� ���� ����� � ���� ��������      ������, ��������� � �������������� Microsoft Excel. �� ����� ���� ���-
���� �������� (� ����c��� �����������, ����������� ������ ����������     �������, ������ ����������� �������������� �������� ��������
������ ConvertToTable, ������������ �������):                            Microsoft Excel � ��� ������������ ����� ��� ��������� ������.
     Var
        Rng: Variant;                                                          6.5.1. ����������� �������������� � ��������� ������
     ...                                                                                           Microsoft Excel
        Rng := App.Selection.Range;
        Rng.Collapse(wdCollapseEnd);                                         ���������� ��� ���� �������� Excel, ������� ����� ���� �������
        Rng.InsertAfter(‘1, 2, 3’);                                      ��������������� � ������� ����������-�����������. ��� ������� �
        Rng.InsertParagraphAfter;                                        ��������������� �� ����������� �������������� ����������� ����.
                                  65                                                                        66