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

UptoLike

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

Ɇɟɬɨɞ Close ɢɦɟɟɬ ɧɟɫɤɨɥɶɤɨ ɧɟɨɛɹɡɚɬɟɥɶɧɵɯ (ɜ ɫɥɭɱɚɟ ɩɨɡɞɧɟɝɨ ɫɜɹ-
ɡɵɜɚɧɢɹ) ɩɚɪɚɦɟɬɪɨɜ, ɜɥɢɹɸɳɢɯ ɧɚ ɩɪɚɜɢɥɚ ɫɨɯɪɚɧɟɧɢɹ ɞɨɤɭɦɟɧɬɚ.
ɉɟɪɜɵɣ ɢɡ ɧɢɯ ɜɥɢɹɟɬ ɧɚ ɬɨ, ɫɨɯɪɚɧɹɸɬɫɹ ɥɢ ɜɧɟɫɟɧɧɵɟ ɜ ɞɨɤɭɦɟɧɬ ɢɡɦɟ-
ɧɟɧɢɹ, ɢ ɩɪɢɧɢɦɚɟɬ ɬɪɢ ɜɨɡɦɨɠɧɵɯ ɡɧɚɱɟɧɢɹ (ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɟ ɤɨɧɫɬɚɧ-
ɬɵ ɪɟɤɨɦɟɧɞɭɟɬɫɹ ɨɩɢɫɚɬɶ ɜ ɩɪɢɥɨɠɟɧɢɢ). Ɍɪɟɬɢɣ ɩɚɪɚɦɟɬɪ ɩɪɢɧɢɦɚɟɬ
ɡɧɚɱɟɧɢɹ True ɢɥɢ False ɢ ɜɥɢɹɟɬ ɧɚ ɬɨ, ɩɟɪɟɫɵɥɚɬɶ ɥɢ ɞɨɤɭɦɟɧɬ ɫɥɟɞɭɸ-
ɳɟɦɭ ɩɨɥɶɡɨɜɚɬɟɥɸ ɩɨ ɷɥɟɤɬɪɨɧɧɨɣ ɩɨɱɬɟ. ȿɫɥɢ ɷɬɚ ɮɭɧɤɰɢɨɧɚɥɶɧɨɫɬɶ ɧɟ
ɩɪɢɦɟɧɹɟɬɫɹ, ɦɨɠɧɨ ɩɪɨɢɝɧɨɪɢɪɨɜɚɬɶ ɷɬɨɬ ɩɚɪɚɦɟɬɪ. Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɩɪɢ
ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɷɬɢɯ ɩɚɪɚɦɟɬɪɨɜ ɡɚɤɪɵɬɶ ɞɨɤɭɦɟɧɬ ɦɨɠɧɨ, ɧɚɩɪɢɦɟɪ, ɬɚɤ:
App.ActiveDocument.Close(wdSaveChanges, wdPromptUser) ;
ɉɪɨɫɬɨ ɫɨɯɪɚɧɢɬɶ ɞɨɤɭɦɟɧɬ, ɧɟ ɡɚɤɪɵɜɚɹ ɟɝɨ, ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ ɦɟ-
ɬɨɞɚ Save:
App.ActiveDocument.Save;
ɗɬɨɬ ɦɟɬɨɞ ɬɚɤɠɟ ɢɦɟɟɬ ɧɟɫɤɨɥɶɤɨ ɧɟɨɛɹɡɚɬɟɥɶɧɵɯ (ɜ ɫɥɭɱɚɟ ɩɨɡɞɧɟ-
ɝɨ ɫɜɹɡɵɜɚɧɢɹ) ɩɚɪɚɦɟɬɪɨɜ, ɩɟɪɜɵɣ ɢɡ ɤɨɬɨɪɵɯ ɪɚɜɟɧ True, ɟɫɥɢ ɞɨɤɭɦɟɧɬ
ɫɨɯɪɚɧɹɟɬɫɹ ɚɜɬɨɦɚɬɢɱɟɫɤɢ, ɢ False, ɟɫɥɢ ɧɭɠɧɨ ɜɵɜɨɞɢɬɶ ɞɢɚɥɨɝɨɜɭɸ
ɩɚɧɟɥɶ ɞɥɹ ɩɨɥɭɱɟɧɢɹ ɩɨɞɬɜɟɪɠɞɟɧɢɹ ɩɨɥɶɡɨɜɚɬɟɥɹ ɨ ɫɨɯɪɚɧɟɧɢɢ ɢɡɦɟɧɟ-
ɧɢɣ (ɟɫɥɢ ɬɚɤɨɜɵɟ ɛɵɥɢ ɫɞɟɥɚɧɵ). ȼɬɨɪɨɣ ɩɚɪɚɦɟɬɪ ɜɥɢɹɟɬ ɧɚ ɮɨɪɦɚɬ ɫɨ-
ɯɪɚɧɹɟɦɨɝɨ ɞɨɤɭɦɟɧɬɚ, ɢ ɫɩɢɫɨɤ ɟɝɨ ɜɨɡɦɨɠɧɵɯ ɡɧɚɱɟɧɢɣ ɫɨɜɩɚɞɚɟɬ ɫɨ
ɫɩɢɫɤɨɦ ɡɧɚɱɟɧɢɣ ɜɬɨɪɨɝɨ ɩɚɪɚɦɟɬɪɚ ɦɟɬɨɞɚ Close.
ɇɚɩɨɦɢɧɚɟɦ, ɱɬɨ ɡɚɤɪɵɬɶ ɫɚɦ Word ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ Quit
ɨɛɴɟɤɬɚ Word.Application. ɗɬɨɬ ɦɟɬɨɞ ɢɦɟɟɬ ɜ ɨɛɳɟɦ ɫɥɭɱɚɟ ɬɪɢ ɩɚɪɚɦɟɬ-
ɪɚ, ɫɨɜɩɚɞɚɸɳɢɯ ɫ ɩɚɪɚɦɟɬɪɚɦɢ ɦɟɬɨɞɚ
Close ɨɛɴɟɤɬɚ Document.
ȼɵɜɨɞ ɞɨɤɭɦɟɧɬɚ ɧɚ ɭɫɬɪɨɣɫɬɜɨ ɩɟɱɚɬɢ ɦɨɠɧɨ ɨɫɭɳɟɫɬɜɢɬɶ ɫ ɩɨɦɨ-
ɳɶɸ ɦɟɬɨɞɚ PrintOut ɨɛɴɟɤɬɚ Document, ɧɚɩɪɢɦɟɪ:
App.ActiveDocument.PrintOut;
ȿɫɥɢ ɧɭɠɧɨ ɢɡɦɟɧɢɬɶ ɩɚɪɚɦɟɬɪɵ ɩɟɱɚɬɢ, ɫɥɟɞɭɟɬ ɭɤɚɡɚɬɶ ɡɧɚɱɟɧɢɹ
ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɯ ɩɚɪɚɦɟɬɪɨɜ ɦɟɬɨɞɚ PrintOut (ɜ ɫɥɭɱɚɟ Microsoft Word ɢɯ
ɨɤɨɥɨ ɞɜɚɞɰɚɬɢ).
6.4.4. ȼɫɬɚɜɤɚ ɬɟɤɫɬɚ ɢ ɨɛɴɟɤɬɨɜ ɜ ɞɨɤɭɦɟɧɬ ɢ ɮɨɪɦɚɬɢɪɨɜɚɧɢɟ ɬɟɤɫɬɚ
Ⱦɥɹ ɫɨɡɞɚɧɢɹ ɚɛɡɚɰɟɜ ɜ ɞɨɤɭɦɟɧɬɟ ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɤɨɥɥɟɤɰɢɸ
Paragraphs ɨɛɴɟɤɬɚ Document, ɩɪɟɞɫɬɚɜɥɹɸɳɭɸ ɧɚɛɨɪ ɚɛɡɚɰɟɜ ɞɚɧɧɨɝɨ
ɞɨɤɭɦɟɧɬɚ. Ⱦɨɛɚɜɢɬɶ ɧɨɜɵɣ ɚɛɡɚɰ ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ Add ɷɬɨɣ
ɤɨɥɥɟɤɰɢɢ:
App.ActiveDocument.Paragraphs.Add;
Ⱦɥɹ ɜɫɬɚɜɤɢ ɫɨɛɫɬɜɟɧɧɨ ɬɟɤɫɬɚ ɜ ɞɨɤɭɦɟɧɬ, ɬɟɦ ɧɟ ɦɟɧɟɟ, ɩɪɢɦɟɧɹɟɬ-
ɫɹ ɧɟ ɨɛɴɟɤɬ Paragraph, ɚ ɨɛɴɟɤɬ Range, ɩɪɟɞɫɬɚɜɥɹɸɳɢɣ ɥɸɛɭɸ ɧɟɩɪɟ-
ɪɵɜɧɭɸ ɱɚɫɬɶ ɞɨɤɭɦɟɧɬɚ (ɜ ɬɨɦ ɱɢɫɥɟ ɢ ɜɧɨɜɶ ɫɨɡɞɚɧɧɵɣ ɚɛɡɚɰ). ɗɬɨɬ
ɨɛɴɟɤɬ ɦɨɠɟɬ ɛɵɬɶ ɫɨɡɞɚɧ ɪɚɡɧɵɦɢ ɫɩɨɫɨɛɚɦɢ. ɇɚɩɪɢɦɟɪ, ɦɨɠɧɨ ɭɤɚɡɚɬɶ
61
62
ɧɚɱɚɥɶɧɵɣ ɢ ɤɨɧɟɱɧɵɣ ɫɢɦɜɨɥɵ ɞɢɚɩɚɡɨɧɚ (ɟɫɥɢ ɬɚɤɨɜɵɟ ɢɦɟɸɬɫɹ ɜ ɞɨ-
ɤɭɦɟɧɬɟ):
var
Rng : Variant;
...
Rng := App.ActiveDocument.Range(2,4);
//ɫɨ 2-ɝɨ ɩɨ 4-ɣ ɫɢɦɜɨɥɵ
ɢɥɢ ɭɤɚɡɚɬɶ ɧɨɦɟɪ ɚɛɡɚɰɚ (ɧɚɩɪɢɦɟɪ, ɬɨɥɶɤɨ ɱɬɨ ɫɨɡɞɚɧɧɨɝɨ):
Rng:= App.ActiveDocument.Paragraphs.Item(1).Range;
ɢɥɢ ɭɤɚɡɚɬɶ ɧɟɫɤɨɥɶɤɨ ɚɛɡɚɰɟɜ, ɫɥɟɞɭɸɳɢɯ ɩɨɞɪɹɞ:
Rng := App.ActiveDocument.Range
(App.ActiveDocument.Paragraphs.Item(3).Range.Start,
App.ActiveDocument.Paragraphs.Item(5).Range.End)
ȼɫɬɚɜɢɬɶ ɬɟɤɫɬ ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɨɜ ɨɛɴɟɤɬɚ Range InsertBefore
(ɩɟɪɟɞ ɞɢɚɩɚɡɨɧɨɦ) ɢɥɢ InsertAfter (ɩɨɫɥɟ ɞɢɚɩɚɡɨɧɚ), ɧɚɩɪɢɦɟɪ:
Rng.InsertAfter(‘ɗɬɨ ɜɫɬɚɜɥɹɟɦɵɣ ɬɟɤɫɬ’);
ɉɨɦɢɦɨ ɨɛɴɟɤɬɚ Range ɬɟɤɫɬ ɦɨɠɧɨ ɜɫɬɚɜɥɹɬɶ ɫ ɩɨɦɨɳɶɸ ɨɛɴɟɤɬɚ
Selection, ɹɜɥɹɸɳɟɝɨɫɹ ɫɜɨɣɫɬɜɨɦ ɨɛɴɟɤɬɚ Word.Application ɢ ɩɪɟɞɫɬɚɜ-
ɥɹɸɳɟɝɨ ɫɨɛɨɣ ɜɵɞɟɥɟɧɧɭɸ ɱɚɫɬɶ ɞɨɤɭɦɟɧɬɚ (ɷɬɨɬ ɨɛɴɟɤɬ ɫɨɡɞɚɟɬɫɹ, ɟɫɥɢ
ɩɨɥɶɡɨɜɚɬɟɥɶ ɜɵɞɟɥɹɟɬ ɱɚɫɬɶ ɞɨɤɭɦɟɧɬɚ ɫ ɩɨɦɨɳɶɸ ɦɵɲɢ, ɢ ɦɨɠɟɬ ɛɵɬɶ
ɬɚɤɠɟ ɫɨɡɞɚɧ ɫ ɩɨɦɨɳɶɸ ɩɪɢɥɨɠɟɧɢɹ-ɤɨɧɬɪɨɥɥɟɪɚ). ɋɚɦ ɨɛɴɟɤɬ Selection
ɦɨɠɧɨ ɫɨɡɞɚɬɶ, ɩɪɢɦɟɧɢɜ ɦɟɬɨɞ Select ɤ ɨɛɴɟɤɬɭ Range, ɧɚɩɪɢɦɟɪ:
var
Sel : Variant;
...
App.ActiveDocument.Paragraphs.Item(3).Range.Select;
ȼ ɩɪɢɜɟɞɟɧɧɨɦ ɜɵɲɟ ɩɪɢɦɟɪɟ ɜ ɬɟɤɭɳɟɦ ɞɨɤɭɦɟɧɬɟ ɜɵɞɟɥɹɟɬɫɹ ɬɪɟ-
ɬɢɣ ɚɛɡɚɰ.
ȿɫɥɢ ɦɵ ɯɨɬɢɦ ɜɫɬɚɜɢɬɶ ɫɬɪɨɤɭ ɬɟɤɫɬɚ ɜ ɞɨɤɭɦɟɧɬ ɥɢɛɨ ɜɦɟɫɬɨ ɜɵɞɟ-
ɥɟɧɧɨɝɨ ɮɪɚɝɦɟɧɬɚ ɬɟɤɫɬɚ, ɥɢɛɨ ɩɟɪɟɞ ɧɢɦ, ɷɬɨ ɦɨɠɧɨ ɫɞɟɥɚɬɶ ɫ ɩɨɦɨɳɶɸ
ɫɥɟɞɭɸɳɟɝɨ ɮɪɚɝɦɟɧɬɚ ɤɨɞɚ:
var
Sel : Variant;
...
Sel := App.Selection;
Sel.TypeText(‘ɗɬɨ ɬɟɤɫɬ, ɤɨɬɨɪɵɦ ɦɵ ɡɚɦɟɧɢɦ ɜɵɞɟɥɟɧɧɵɣ ɮɪɚɝ-
ɦɟɧɬ’);
Ɉɬɦɟɬɢɦ
, ɱɬɨ ɟɫɥɢ ɫɜɨɣɫɬɜɨ Options.ReplaceSelection ɨɛɴɟɤɬɚ
Word.Application ɪɚɜɧɨ True, ɜɵɞɟɥɟɧɧɵɣ ɬɟɤɫɬ ɛɭɞɟɬ ɡɚɦɟɧɟɧ ɧɚ ɧɨɜɵɣ
    ����� Close ����� ��������� �������������� (� ������ �������� ���-   ��������� � �������� ������� ��������� (���� ������� ������� � ��-
�������) ����������, �������� �� ������� ���������� ���������.           �������):
������ �� ��� ������ �� ��, ����������� �� ��������� � �������� ����-        var
�����, � ��������� ��� ��������� �������� (��������������� �������-             Rng : Variant;
�� ������������� ������� � ����������). ������ �������� ���������            ...
�������� True ��� False � ������ �� ��, ���������� �� �������� ������-          Rng := App.ActiveDocument.Range(2,4);
���� ������������ �� ����������� �����. ���� ��� ���������������� ��         //�� 2-�� �� 4-� �������
�����������, ����� ��������������� ���� ��������. ����� �������, ���
������������� ���� ���������� ������� �������� �����, ��������, ���:     ��� ������� ����� ������ (��������, ������ ��� ����������):
    App.ActiveDocument.Close(wdSaveChanges, wdPromptUser) ;                  Rng:= App.ActiveDocument.Paragraphs.Item(1).Range;
    ������ ��������� ��������, �� �������� ���, ����� � ������� ��-      ��� ������� ��������� �������, ��������� ������:
���� Save:                                                                   Rng := App.ActiveDocument.Range
    App.ActiveDocument.Save;                                             (App.ActiveDocument.Paragraphs.Item(3).Range.Start,
     ���� ����� ����� ����� ��������� �������������� (� ������ ������-   App.ActiveDocument.Paragraphs.Item(5).Range.End)
�� ����������) ����������, ������ �� ������� ����� True, ���� ��������       �������� ����� ����� � ������� ������� ������� Range InsertBefore
����������� �������������, � False, ���� ����� �������� ����������       (����� ����������) ��� InsertAfter (����� ���������), ��������:
������ ��� ��������� ������������� ������������ � ���������� ������-         Rng.InsertAfter(‘��� ����������� �����’);
��� (���� ������� ���� �������). ������ �������� ������ �� ������ ��-
���������� ���������, � ������ ��� ��������� �������� ��������� ��           ������ ������� Range ����� ����� ��������� � ������� �������
������� �������� ������� ��������� ������ Close.                         Selection, ����������� ��������� ������� Word.Application � ��������-
     ����������, ��� ������� ��� Word ����� � ������� ������ Quit        ������� ����� ���������� ����� ��������� (���� ������ ���������, ����
������� Word.Application. ���� ����� ����� � ����� ������ ��� �������-   ������������ �������� ����� ��������� � ������� ����, � ����� ����
��, ����������� � ����������� ������ Close ������� Document.             ����� ������ � ������� ����������-�����������). ��� ������ Selection
     ����� ��������� �� ���������� ������ ����� ����������� � ����-      ����� �������, �������� ����� Select � ������� Range, ��������:
��� ������ PrintOut ������� Document, ��������:                              var
     App.ActiveDocument.PrintOut;                                               Sel : Variant;
                                                                             ...
    ���� ����� �������� ��������� ������, ������� ������� ��������           App.ActiveDocument.Paragraphs.Item(3).Range.Select;
��������������� ���������� ������ PrintOut (� ������ Microsoft Word ��
����� ��������).                                                             � ����������� ���� ������� � ������� ��������� ���������� ���-
                                                                         ��� �����.
 6.4.4. ������� ������ � �������� � �������� � �������������� ������         ���� �� ����� �������� ������ ������ � �������� ���� ������ ����-
    ��� �������� ������� � ��������� ����� ������������ ���������        ������� ��������� ������, ���� ����� ���, ��� ����� ������� � �������
Paragraphs ������� Document, �������������� ����� ������� �������        ���������� ��������� ����:
���������. �������� ����� ����� ����� � ������� ������ Add ����              var
���������:                                                                      Sel : Variant;
    App.ActiveDocument.Paragraphs.Add;                                       ...
    ��� ������� ���������� ������ � ��������, ��� �� �����, ���������-          Sel := App.Selection;
�� �� ������ Paragraph, � ������ Range, �������������� ����� �����-             Sel.TypeText(‘��� �����, ������� �� ������� ���������� ����-
������ ����� ��������� (� ��� ����� � ����� ��������� �����). ����       ����’);
������ ����� ���� ������ ������� ���������. ��������, ����� �������         �������, ��� ���� �������� Options.ReplaceSelection �������
                                                                         Word.Application ����� True, ���������� ����� ����� ������� �� �����
                                  61                                                                        62