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

UptoLike

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

ɬɟɤɫɬ (ɷɬɨɬ ɪɟɠɢɦ ɞɟɣɫɬɜɭɟɬ ɩɨ ɭɦɨɥɱɚɧɢɸ); ɟɫɥɢ ɠɟ ɧɭɠɧɨ, ɱɬɨɛɵ ɬɟɤɫɬ
ɛɵɥ ɜɫɬɚɜɥɟɧ ɩɟɪɟɞ ɜɵɞɟɥɟɧɧɵɦ ɮɪɚɝɦɟɧɬɨɦ, ɚ ɧɟ ɜɦɟɫɬɨ ɧɟɝɨ, ɫɥɟɞɭɟɬ
ɭɫɬɚɧɨɜɢɬɶ ɷɬɨ ɫɜɨɣɫɬɜɨ ɪɚɜɧɵɦ False:
App.Options.ReplaceSelection := False;
ɋɢɦɜɨɥ ɤɨɧɰɚ ɚɛɡɚɰɚ ɩɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɨɛɴɟɤɬɚ Selection ɦɨɠɟɬ
ɛɵɬɶ ɜɫɬɚɜɥɟɧ ɫ ɩɨɦɨɳɶɸ ɫɥɟɞɭɸɳɟɝɨ ɮɪɚɝɦɟɧɬɚ ɤɨɞɚ:
Sel.TypeParagraph;
Ʉ ɨɛɴɟɤɬɭ Selection, ɬɚɤ ɠɟ ɤɚɤ ɢ ɤ ɨɛɴɟɤɬɭ Range, ɦɨɠɧɨ ɩɪɢɦɟɧɢɬɶ
ɦɟɬɨɞɵ InsertBefore ɢ InsertAfter. ȼ ɷɬɨɦ ɫɥɭɱɚɟ, ɜ ɨɬɥɢɱɢɟ ɨɬ ɩɪɟɞɵɞɭɳɟ-
ɝɨ, ɜɫɬɚɜɥɹɟɦɵɣ ɬɟɤɫɬ ɫɬɚɧɟɬ ɱɚɫɬɶɸ ɜɵɞɟɥɟɧɧɨɝɨ ɮɪɚɝɦɟɧɬɚ ɬɟɤɫɬɚ.
ɋ ɩɨɦɨɳɶɸ ɨɛɴɟɤɬɚ Selection, ɢɫɩɨɥɶɡɭɹ ɟɝɨ ɫɜɨɣɫɬɜɨ Font ɢ ɫɜɨɣɫɬ-
ɜɚ ɨɛɴɟɤɬɚ Font, ɬɚɤɢɟ ɤɚɤ Bold, Italic, Size, …, ɦɨɠɧɨ ɨɬɮɨɪɦɚɬɢɪɨɜɚɬɶ
ɬɟɤɫɬ. ɇɚɩɪɢɦɟɪ, ɬɚɤɢɦ ɨɛɪɚɡɨɦ ɦɨɠɧɨ ɜɫɬɚɜɢɬɶ ɫɬɪɨɤɭ, ɜɵɞɟɥɟɧɧɭɸ
ɠɢɪɧɵɦ ɲɪɢɮɬɨɦ:
Sel.Font.Bold := True;
Sel.TypeText(‘ɗɬɨ ɬɟɤɫɬ, ɤɨɬɨɪɵɣ ɦɵ ɜɵɞɟɥɢɦ ɠɢɪɧɵɦ ɲɪɢɮɬɨɦ.’);
Sel.Font.Bold := False;
Sel.TypeParagraph;
Ⱦɥɹ ɧɚɥɨɠɟɧɢɹ ɧɚ ɜɫɬɚɜɥɹɟɦɵɣ ɬɟɤɫɬ ɨɩɪɟɞɟɥɟɧɧɨɝɨ ɡɚɪɚɧɟɟ ɫɬɢɥɹ
ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɫɜɨɣɫɬɜɨ Style ɷɬɨɝɨ ɠɟ ɨɛɴɟɤɬɚ, ɧɚɩɪɢɦɟɪ:
Sel.Style := ‘Heading 1’;
Sel.TypeText(‘ɗɬɨ ɬɟɤɫɬ, ɤɨɬɨɪɵɣ ɫɬɚɧɟɬ ɡɚɝɨɥɨɜɤɨɦ’);
Sel.TypeParagraph;
ɇɟɪɟɞɤɨ ɞɨɤɭɦɟɧɬɵ Word ɫɨɞɟɪɠɚɬ ɞɚɧɧɵɟ ɞɪɭɝɢɯ ɩɪɢɥɨɠɟɧɢɣ.
ɉɪɨɫɬɟɣɲɢɣ ɫɩɨɫɨɛ ɜɫɬɚɜɢɬɶ ɬɚɤɢɟ ɞɚɧɧɵɟ ɜ ɞɨɤɭɦɟɧɬɢɫɩɨɥɶɡɨɜɚɬɶ
ɦɟɬɨɞ Paste ɨɛɴɟɤɬɚ Range:
Var
Rng: Variant;
..
.
Rng := App.Selection.Range;
Rng.Collapse(wdCollapseEnd);
Rng.Paste;
ȿɫɬɟɫɬɜɟɧɧɨ, ɜ ɷɬɨɦ ɫɥɭɱɚɟ ɜ ɛɭɮɟɪɟ ɨɛɦɟɧɚ ɭɠɟ ɞɨɥɠɧɵ ɫɨɞɟɪɠɚɬɶ-
ɫɹ ɜɫɬɚɜɥɹɟɦɵɟ ɞɚɧɧɵɟ.
ȿɫɥɢ ɧɭɠɧɨ ɩɨɦɟɫɬɢɬɶ ɜ ɛɭɮɟɪ ɨɛɦɟɧɚ ɱɚɫɬɶ ɞɨɤɭɦɟɧɬɚ Word, ɷɬɨ
ɦɨɠɧɨ ɫɞɟɥɚɬɶ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ Copy ɨɛɴɟɤɬɚ Range:
Var
Rng: Variant;
...
63
Rng := App.Selection.Range;
Rng.Copy;
ɋɥɟɞɭɸɳɢɣ ɷɬɚɩɩɟɪɟɦɟɳɟɧɢɟ ɤɭɪɫɨɪɚ ɜ ɧɭɠɧɨɟ ɦɟɫɬɨ ɬɟɤɫɬɚ.
6.4.5. ɉɟɪɟɦɟɳɟɧɢɟ ɤɭɪɫɨɪɚ ɩɨ ɬɟɤɫɬɭ
ɂɫɩɨɥɶɡɭɹ ɦɟɬɨɞ Collapse, ɦɨɠɧɨ «ɫɠɚɬɶ» ɨɛɴɟɤɬ Range ɢɥɢ ɨɛɴɟɤɬ
Selection, ɫɨɤɪɚɬɢɜ ɟɝɨ ɪɚɡɦɟɪ ɞɨ ɧɭɥɹ ɫɢɦɜɨɥɨɜ:
Rng.Collapse(wdCollapseEnd);
ɉɚɪɚɦɟɬɪ ɷɬɨɝɨ ɦɟɬɨɞɚ ɭɤɚɡɵɜɚɟɬ, ɜ ɧɚɱɚɥɟ ɢɥɢ ɜ ɤɨɧɰɟ ɢɫɯɨɞɧɨɝɨ
ɮɪɚɝɦɟɧɬɚ ɨɤɚɠɟɬɫɹ ɧɨɜɵɣ ɨɛɴɟɤɬ Range ɢɥɢ Selection. ȿɫɥɢ ɢɫɩɨɥɶɡɭɟɬɫɹ
ɩɨɡɞɧɟɟ ɫɜɹɡɵɜɚɧɢɟ, ɬɨ ɧɭɠɧɨ ɨɩɪɟɞɟɥɢɬɶ ɜ ɩɪɢɥɨɠɟɧɢɢ ɫɨɨɬɜɟɬɫɬɜɭɸ-
ɳɢɟ ɤɨɧɫɬɚɧɬɵ:
const
wdCollapseStart = $00000001;//ɧɨɜɵɣ ɨɛɴɟɤɬ ɧɚɯɨɞɢɬɫɹ ɜ ɧɚɱɚɥɟ
ɮɪɚɝɦɟɧɬɚ
wdCollapseEnd = $00000000;//ɧɨɜɵɣ ɨɛɴɟɤɬ ɧɚɯɨɞɢɬɫɹ ɜ ɤɨɧɰɟ
ɮɪɚɝɦɟɧɬɚ
ɉɟɪɟɦɟɳɚɬɶ ɤɭɪɫɨɪ ɩɨ ɬɟɤɫɬɭ ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ Move ɨɛɴɟɤ-
ɬɨɜ Range ɢ Selection. ɗɬɨɬ ɦɟɬɨɞ ɢɦɟɟɬ ɞɜɚ ɩɚɪɚɦɟɬɪɚ. ɉɟɪɜɵɣ ɭɤɚɡɵɜɚɟɬ
ɧɚ ɬɨ, ɜ ɤɚɤɢɯ ɟɞɢɧɢɰɚɯ ɢɡɦɟɪɹɟɬɫɹ ɩɟɪɟɦɟɳɟɧɢɟɜ ɫɢɦɜɨɥɚɯ (ɩɨ ɭɦɨɥ-
ɱɚɧɢɸ), ɫɥɨɜɚɯ, ɩɪɟɞɥɨɠɟɧɢɹɯ, ɚɛɡɚɰɚɯ ɢ ɞɪ. ȼɬɨɪɨɣ ɩɚɪɚɦɟɬɪ ɭɤɚɡɵɜɚɟɬ,
ɧɚ ɫɤɨɥɶɤɨ ɟɞɢɧɢɰ ɩɪɢ ɷɬɨɦ ɧɭɠɧɨ ɩɟɪɟɦɟɫɬɢɬɶɫɹ (ɷɬɨ ɱɢɫɥɨ ɦɨɠɟɬ ɛɵɬɶ
ɢ ɨɬɪɢɰɚɬɟɥɶɧɵɦ; ɩɨ ɭɦɨɥɱɚɧɢɸ ɨɧɨ ɪɚɜɧɨ 1). ɇɚɩɪɢɦɟɪ, ɫɥɟɞɭɸɳɢɣ
ɮɪɚɝɦɟɧɬ ɤɨɞɚ:
Rng.Move;
ɩɪɢɜɟɞɟɬ ɤ ɩɟɪɟɦɟɳɟɧɢɸ ɤɭɪɫɨɪɚ ɧɚ ɨɞɢɧ ɫɢɦɜɨɥ ɜɩɟɪɟɞ, ɚ
Rng.Move(wdParagraph,3);
ɩɪɢɜɟɞɟɬ ɤ ɩɟɪɟɦɟɳɟɧɢɸ ɤɭɪɫɨɪɚ ɧɚ ɬɪɢ ɚɛɡɚɰɚ ɜɩɟɪɟɞ. Ɉɬɦɟɬɢɦ, ɱɬɨ
ɷɬɨɬ ɦɟɬɨɞ ɢɫɩɨɥɶɡɭɟɬ ɫɥɟɞɭɸɳɢɟ ɤɨɧɫɬɚɧɬɵ:
const //ȿɞɢɧɢɰɟɣ ɩɟɪɟɦɟɳɟɧɢɹ ɹɜɥɹɟɬɫɹ:
wdCharacter = $00000001; //ɫɢɦɜɨɥ
wdWord = $00000002; //
ɫɥɨɜɨ
wdSentence = $00000003; //ɩɪɟɞɥɨɠɟɧɢɟ
wdParagraph = $00000004; //ɚɛɡɚɰ
wdStory = $00000006; //ɱɚɫɬɶ ɞɨɤɭɦɟɧɬɚ (ɧɚɩɪ., ɤɨɥɨɧɬɢɬɭɥ, ɨɝɥɚɜ-
ɥɟɧɢɟ ɢ ɞɪ.)
wdSection = $00000008; //ɪɚɡɞɟɥ
wdColumn = $00000009; //ɤɨɥɨɧɤɚ ɬɚɛɥɢɰɵ
wdRow = $0000000A; //ɫɬɪɨɤɚ ɬɚɛɥɢɰɵ
wdCell = $0000000C; //ɹɱɟɣɤɚ ɬɚɛɥɢɰɵ
wdTable = $0000000F; //ɬɚɛɥɢɰɚ
64
����� (���� ����� ��������� �� ���������); ���� �� �����, ����� �����            Rng := App.Selection.Range;
��� �������� ����� ���������� ����������, � �� ������ ����, �������              Rng.Copy;
���������� ��� �������� ������ False:                                           ��������� ���� – ����������� ������� � ������ ����� ������.
    App.Options.ReplaceSelection := False;
                                                                                            6.4.5. ����������� ������� �� ������
    ������ ����� ������ ��� ������������� ������� Selection �����
���� �������� � ������� ���������� ��������� ����:                              ��������� ����� Collapse, ����� «�����» ������ Range ��� ������
    Sel.TypeParagraph;                                                      Selection, �������� ��� ������ �� ���� ��������:
                                                                                Rng.Collapse(wdCollapseEnd);
     � ������� Selection, ��� �� ��� � � ������� Range, ����� ���������         �������� ����� ������ ���������, � ������ ��� � ����� ���������
������ InsertBefore � InsertAfter. � ���� ������, � ������� �� ���������-   ��������� �������� ����� ������ Range ��� Selection. ���� ������������
��, ����������� ����� ������ ������ ����������� ��������� ������.           ������� ����������, �� ����� ���������� � ���������� ������������-
     � ������� ������� Selection, ��������� ��� �������� Font � ������-     ��� ���������:
�� ������� Font, ����� ��� Bold, Italic, Size, …, ����� ���������������         const
�����. ��������, ����� ������� ����� �������� ������, ����������                   wdCollapseStart = $00000001;//����� ������ ��������� � ������
������ �������:                                                             ���������
     Sel.Font.Bold := True;                                                        wdCollapseEnd = $00000000;//����� ������ ��������� � �����
     Sel.TypeText(‘��� �����, ������� �� ������� ������ �������.’);         ���������
     Sel.Font.Bold := False;                                                    ���������� ������ �� ������ ����� � ������� ������ Move �����-
     Sel.TypeParagraph;                                                     ��� Range � Selection. ���� ����� ����� ��� ���������. ������ ���������
                                                                            �� ��, � ����� �������� ���������� ����������� — � �������� (�� ����-
   ��� ��������� �� ����������� ����� ������������� ������� �����           �����), ������, ������������, ������� � ��. ������ �������� ���������,
����� ������������ �������� Style ����� �� �������, ��������:               �� ������� ������ ��� ���� ����� ������������� (��� ����� ����� ����
   Sel.Style := ‘Heading 1’;                                                � �������������; �� ��������� ��� ����� 1). ��������, ���������
   Sel.TypeText(‘��� �����, ������� ������ ����������’);                    �������� ����:
   Sel.TypeParagraph;                                                           Rng.Move;
    ������� ��������� Word �������� ������ ������ ����������.
���������� ������ �������� ����� ������ � �������� – ������������           �������� � ����������� ������� �� ���� ������ ������, �
����� Paste ������� Range:                                                      Rng.Move(wdParagraph,3);
    Var
        Rng: Variant;                                                       �������� � ����������� ������� �� ��� ������ ������. �������, ���
    ...                                                                     ���� ����� ���������� ��������� ���������:
        Rng := App.Selection.Range;                                              const      //�������� ����������� ��������:
        Rng.Collapse(wdCollapseEnd);                                               wdCharacter = $00000001; //������
        Rng.Paste;                                                                 wdWord = $00000002; //�����
                                                                                   wdSentence = $00000003; //�����������
     �����������, � ���� ������ � ������ ������ ��� ������ ���������-              wdParagraph = $00000004; //�����
�� ����������� ������.                                                             wdStory = $00000006; //����� ��������� (����., ����������, �����-
     ���� ����� ��������� � ����� ������ ����� ��������� Word, ���          ����� � ��.)
����� ������� � ������� ������ Copy ������� Range:                                 wdSection = $00000008; //������
     Var                                                                           wdColumn = $00000009; //������� �������
        Rng: Variant;                                                              wdRow = $0000000A; //������ �������
     ...                                                                           wdCell = $0000000C; //������ �������
                                                                                   wdTable = $0000000F; //�������
                                   63                                                                          64