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

UptoLike

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

ɜɟ ɤɨɬɨɪɵɯ ɨɧɚ ɞɨɥɠɧɚ ɛɵɬɶ ɩɨɫɬɪɨɟɧɚ. Ⱦɚɧɧɵɟ ɞɥɹ ɫɟɪɢɢ ɨɛɵɱɧɨ ɧɚɯɨ-
ɞɢɬɫɹ ɜ ɨɛɴɟɤɬɟ Range, ɫɨɞɟɪɠɚɳɟɦ ɫɬɪɨɤɭ ɢɥɢ ɫɬɨɥɛɟɰ ɞɚɧɧɵɯ, ɚ ɞɨɛɚɜ-
ɥɟɧɢɟ ɫɟɪɢɢ ɤ ɞɢɚɝɪɚɦɦɟ ɩɪɨɢɡɜɨɞɢɬɫɹ ɩɭɬɟɦ ɞɨɛɚɜɥɟɧɢɹ ɱɥɟɧɚ ɤ ɤɨɥɥɟɤ-
ɰɢɢ SeriesCollection, ɧɚɩɪɢɦɟɪ:
App.WorkBooks[1].Sheets.Add(,,1,xlWBATChart);
App.WorkBooks[1].Sheets[1].ChartType := xl3DPie;
Rng:=App.WorkBooks[1].WorkSheets[2].Range[‘B1:B5’];
App.WorkBooks[1].Sheets[1].SeriesCollection.Add(Rng);
ȼ ɞɚɧɧɨɦ ɩɪɢɦɟɪɟ ɤ ɞɢɚɝɪɚɦɦɟ, ɫɨɡɞɚɧɧɨɣ ɧɚ ɨɬɞɟɥɶɧɨɦ ɥɢɫɬɟ, ɫɩɟ-
ɰɢɚɥɶɧɨ ɩɪɟɞɧɚɡɧɚɱɟɧɧɨɦ ɞɥɹ ɞɢɚɝɪɚɦɦ, ɞɨɛɚɜɥɹɟɬɫɹ ɨɞɧɚ ɫɟɪɢɹ ɧɚ ɨɫɧɨ-
ɜɟ ɞɢɚɩɚɡɨɧɚ ɹɱɟɟɤ ɞɪɭɝɨɝɨ ɥɢɫɬɚ.
ȼɨɡɦɨɠɧɨɫɬɢ ɚɜɬɨɦɚɬɢɡɚɰɢɢ Microsoft Excel ɢ Word ɞɚɥɟɤɨ ɧɟ ɢɫ-
ɱɟɪɩɵɜɚɸɬɫɹ ɩɪɢɜɟɞɟɧɧɵɦɢ ɩɪɢɦɟɪɚɦɢ. ɋɜɟɞɟɧɢɹ ɨ ɧɢɯ ɦɨɠɧɨ ɜɫɟɝɞɚ
ɧɚɣɬɢ ɜ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɦ ɫɩɪɚɜɨɱɧɨɦ ɮɚɣɥɟ.
6.6. ɉɪɢɦɟɪ ɷɤɫɩɨɪɬɚ ɞɚɧɧɵɯ ɜ Word
ȼ ɤɚɱɟɫɬɜɟ ɩɪɢɦɟɪɚ ɪɚɫɫɦɨɬɪɢɦ ɡɚɞɚɱɭ ɮɨɪɦɢɪɨɜɚɧɢɹ ɨɬɱɟɬɚ ɞɚɧɧɵɯ
ɢɡ ɡɚɞɚɧɧɨɣ ɛɚɡɵ ɞɚɧɧɵɯ ɜ Microsoft Word: ɧɟɨɛɯɨɞɢɦɨ ɫɮɨɪɦɢɪɨɜɚɬɶ
ɫɥɨɠɧɵɣ ɞɨɤɭɦɟɧɬ ɫ ɤɨɥɨɧɬɢɬɭɥɚɦɢ, ɬɚɛɥɢɰɚɦɢ ɢ ɡɚɝɨɥɨɜɤɚɦɢ. Ɍɚɤɠɟ
ɞɨɤɭɦɟɧɬ ɞɨɥɠɟɧ ɢɦɟɬɶ ɬɢɬɭɥɶɧɭɸ ɫɬɪɚɧɢɰɭ, ɧɚ ɤɨɬɨɪɨɣ ɩɢɲɟɬɫɹ ɫɨɨɬ-
ɜɟɬɫɬɜɭɸɳɢɣ ɬɟɤɫɬ, ɫɨ ɜɬɨɪɨɣ ɫɬɪɚɧɢɰɵ ɧɚɱɢɧɚɟɬɫɹ ɜɟɪɯɧɢɣ ɤɨɥɨɧɬɢɬɭɥ,
ɝɞɟ ɡɚɞɚɟɬɫɹ ɡɚɝɨɥɨɜɨɤ. Ⱦɥɹ ɩɨɞɤɥɸɱɟɧɢɹ ɤ ɛɚɡɟ ɞɚɧɧɵɯ ɛɭɞɭɬ ɢɫɩɨɥɶɡɨ-
ɜɚɬɶɫɹ ɫɬɚɧɞɚɪɬɧɵɟ ɤɨɦɩɨɧɟɧɬɵ Delphi, ɧɚɩɪɢɦɟɪ, TADODataset.
ɋɭɳɟɫɬɜɭɟɬ ɞɜɚ ɫɩɨɫɨɛɚ ɪɟɲɟɧɢɹ ɩɨɫɬɚɜɥɟɧɧɨɣ ɡɚɞɚɱɢ:
1. Ȼɟɡ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɲɚɛɥɨɧɚ: ɫɨɡɞɚɟɬɫɹ ɧɨɜɵɣ ɞɨɤɭɦɟɧɬ, ɝɞɟ ɫɨɡ-
ɞɚɸɬɫɹ ɤɨɥɨɧɬɢɬɭɥɵ ɧɚɞɩɢɫɢ ɢ ɬ.ɞ. ɗɬɨɬ ɦɟɬɨɞ ɞɨɫɬɚɬɨɱɧɨ ɫɥɨɠɟɧ, ɬɚɤ
ɤɚɤ ɧɟɨɛɯɨɞɢɦɨ ɭɱɢɬɵɜɚɬɶ ɬɨ, ɱɬɨ ɧɚ ɪɚɡɧɵɯ ɤɨɦɩɶɸɬɟɪɚɯ ɦɨɝɭɬ ɢɡɧɚ-
ɱɚɥɶɧɨ ɫɬɨɹɬɶ ɪɚɡɧɵɟ ɧɚɫɬɪɨɣɤɢ ɫɬɪɚɧɢɰɵ, ɲɪɢɮɬɨɜ, ɚɛɡɚɰɟɜ.
2. ɋ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɲɚɛɥɨɧɚ: ɡɚɪɚɧɟɟ ɫɨɡɞɚɟɬɫɹ ɞɨɤɭɦɟɧɬ, ɤɨɬɨɪɵɣ
ɢɫɩɨɥɶɡɭɟɬɫɹ ɤɚɤ ɲɚɛɥɨɧ. ɇɚɩɪɢɦɟɪ, ɜ ɲɚɛɥɨɧ ɜ ɧɭɠɧɨɦ ɦɟɫɬɟ ɜ ɰɟɧɬɪɟ
ɩɟɪɜɨɣ ɫɬɪɚɧɢɰɵ ɫɬɚɜɢɬɫɹ ɨɛɴɟɤɬ ɬɢɩɚ ɧɚɞɩɢɫɶ, ɜ ɤɨɬɨɪɨɣ ɜɵɫɬɚɜɥɹɟɬɫɹ
ɧɭɠɧɵɣ ɲɪɢɮɬ ɢ ɜɵɪɚɜɧɢɜɚɧɢɟ. ȼ ɤɨɧɰɟ ɩɟɪɜɨɣ ɫɬɪɚɧɢɰɵ ɞɟɥɚɟɬɫɹ ɪɚɡ-
ɪɵɜ ɪɚɡɞɟɥɚ. ɇɚ ɜɬɨɪɨɣ ɫɬɪɚɧɢɰɟ ɜ ɜɟɪɯɧɢɣ ɤɨɥɨɧɬɢɬɭɥ ɬɨɠɟ ɜɫɬɚɜɥɹɟɬɫɹ
ɨɛɴɟɤɬ ɬɢɩɚ ɧɚɞɩɢɫɶ. ȼ ɧɟɝɨ ɛɭɞɟɬ ɜɫɬɚɜɥɹɬɶɫɹ ɧɚɡɜɚɧɢɟ ɞɨɤɭɦɟɧɬɚ.
Ⱦɚɥɟɟ ɡɚɩɢɫɵɜɚɟɬɫɹ ɦɚɤɪɨɫ, ɜ ɤɨɬɨɪɨɦ ɜɵɩɨɥɧɹɸɬɫɹ ɞɟɣɫɬɜɢɹ, ɤɨɬɨ-
ɪɵɟ ɧɟɨɛɯɨɞɢɦɨ ɪɟɚɥɢɡɨɜɚɬɶ ɜ Delphi:
1) ɜ ɨɛɴɟɤɬ ɬɢɩɚ ɧɚɞɩɢɫɶ ɧɚ ɩɟɪɜɨɣ ɫɬɪɚɧɢɰɟ ɜɧɟɫɬɢ ɬɟɤɫɬ;
2) ɩɟɪɟɣɬɢ ɜ ɤɨɧɟɰ ɞɨɤɭɦɟɧɬɚ;
3) ɩɟɪɟɣɬɢ ɜ ɜɟɪɯɧɢɣ ɤɨɥɨɧɬɢɬɭɥ;
4) ɜ ɨɛɴɟɤɬ ɬɢɩɚ ɧɚɞɩɢɫɶ ɜ ɤɨɥɨɧɬɢɬɭɥɟ ɜɧɟɫɬɢ ɬɟɤɫɬ;
5) ɜɟɪɧɭɬɶɫɹ ɧɚ ɜɬɨɪɭɸ ɫɬɪɚɧɢɰɭ.
73
74
ȼ ɪɟɡɭɥɶɬɚɬɟ ɩɨɥɭɱɚɟɬɫɹ ɫɥɟɞɭɸɳɢɣ ɦɚɤɪɨɫ:
Sub Ɇɚɤɪɨɫ1()
ActiveDocument.Shapes("Text Box 8").Select
Selection.TypeText Text:="ɬɟɤɫɬ ɧɚ ɬɢɬɭɥɶɧɨɣ"
Selection.EndKey Unit:=wdStory
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or _
ActiveWindow.ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPage-
Header
Selection.HeaderFooter.Shapes("Text Box 5").Select
Selection.TypeText Text:="Ɍɟɤɫɬ ɜ ɤɨɥɨɧɬɢɬɭɥɟ"
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub
ȿɫɥɢ ɩɪɟɨɛɪɚɡɨɜɚɬɶ ɜ ɤɨɞ Delphi, ɬɨ ɩɨɥɭɱɢɦ:
//ɜɵɛɢɪɚɟɬɫɹ ɩɟɪɜɚɹ ɧɚɞɩɢɫɶ
Vr := 'Text Box 8';
Word.ActiveDocument.Shapes.Item(vr).Select;
//ɩɢɲɟɬɫɹ ɬɟɤɫɬ
Word.Selection.TypeText('ɬɟɤɫɬ ɧɚ ɬɢɬɭɥɶɧɨɣ');
//ɩɟɪɟɯɨɞ ɜ ɤɨɧɟɰ ɞɨɤɭɦɟɧɬɚ
Vr := wdStory;
Word.Selection.EndKey(Vr);
//ɨɩɟɪɚɬɨɪɵ if ɡɞɟɫɶ ɧɟ ɧɭɠɧɵ
//ɩɟɪɟɯɨɞ ɜ ɜɟɪɯɧɢɣ ɤɨɥɨɧɬɢɬɭɥ
Word.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrent-
PageHeader;
Vr := 'Text Box 5';
Word.Selection.HeaderFooter.Shapes.Item(Vr).Select;
Word.Selection.TypeText('ɬɟɤɫɬ ɜ ɤɨɥɨɧɬɢɬɭɥɟ');
Word.ActiveWindow.ActivePane.View.SeekView := wdSeekMainDocu-
ment;
�� ������� ��� ������ ���� ���������. ������ ��� ����� ������ ����-
����� � ������� Range, ���������� ������ ��� ������� ������, � �����-       � ���������� ���������� ��������� ������:
����� ����� � ��������� ������������ ����� ���������� ����� � ������-
��� SeriesCollection, ��������:                                             Sub ������1()
    App.WorkBooks[1].Sheets.Add(,,1,xlWBATChart);                              ActiveDocument.Shapes("Text Box 8").Select
    App.WorkBooks[1].Sheets[1].ChartType := xl3DPie;                           Selection.TypeText Text:="����� �� ���������"
    Rng:=App.WorkBooks[1].WorkSheets[2].Range[‘B1:B5’];                        Selection.EndKey Unit:=wdStory
    App.WorkBooks[1].Sheets[1].SeriesCollection.Add(Rng);                      If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
                                                                                  ActiveWindow.Panes(2).Close
    � ������ ������� � ���������, ��������� �� ��������� �����, ���-           End If
������� ��������������� ��� ��������, ����������� ���� ����� �� ����-          If ActiveWindow.ActivePane.View.Type = wdNormalView Or _
�� ��������� ����� ������� �����.                                           ActiveWindow.ActivePane.View.Type = wdOutlineView Then
    ����������� ������������� Microsoft Excel � Word ������ �� ��-                ActiveWindow.ActivePane.View.Type = wdPrintView
����������� ������������ ���������. �������� � ��� ����� ������                End If
����� � ��������������� ���������� �����.                                      ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPage-
                                                                        Header
             6.6. ������ �������� ������ � Word                                Selection.HeaderFooter.Shapes("Text Box 5").Select
                                                                               Selection.TypeText Text:="����� � �����������"
     � �������� ������� ���������� ������ ������������ ������ ������           ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
�� �������� ���� ������ � Microsoft Word: ���������� ������������           End Sub
������� �������� � �������������, ��������� � �����������. �����
�������� ������ ����� ��������� ��������, �� ������� ������� ����-
����������� �����, �� ������ �������� ���������� ������� ����������,        ���� ������������� � ��� Delphi, �� �������:
��� �������� ���������. ��� ����������� � ���� ������ ����� ��������-
������ ����������� ���������� Delphi, ��������, TADODataset.                //���������� ������ �������
     ���������� ��� ������� ������� ������������ ������:                    Vr := 'Text Box 8';
     1. ��� ������������� �������: ��������� ����� ��������, ��� ���-       Word.ActiveDocument.Shapes.Item(vr).Select;
������ ����������� ������� � �.�. ���� ����� ���������� ������, ���         //������� �����
��� ���������� ��������� ��, ��� �� ������ ����������� ����� ����-          Word.Selection.TypeText('����� �� ���������');
������ ������ ������ ��������� ��������, �������, �������.                  //������� � ����� ���������
     2. � �������������� �������: ������� ��������� ��������, �������       Vr := wdStory;
������������ ��� ������. ��������, � ������ � ������ ����� � ������         Word.Selection.EndKey(Vr);
������ �������� �������� ������ ���� �������, � ������� ������������        //��������� if ����� �� �����
������ ����� � ������������. � ����� ������ �������� �������� ���-          //������� � ������� ����������
��� �������. �� ������ �������� � ������� ���������� ���� �����������       Word.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrent-
������ ���� �������. � ���� ����� ����������� �������� ���������.       PageHeader;
     ����� ������������ ������, � ������� ����������� ��������, ����-       Vr := 'Text Box 5';
��� ���������� ����������� � Delphi:                                        Word.Selection.HeaderFooter.Shapes.Item(Vr).Select;
     1) � ������ ���� ������� �� ������ �������� ������ �����;              Word.Selection.TypeText('����� � �����������');
     2) ������� � ����� ���������;                                          Word.ActiveWindow.ActivePane.View.SeekView := wdSeekMainDocu-
     3) ������� � ������� ����������;                                   ment;
     4) � ������ ���� ������� � ����������� ������ �����;
     5) ��������� �� ������ ��������.

                                 73                                                                       74