Создание простого документа. Свойства и методы объекта Selection

   
На этом шаге мы рассмотрим некоторые свойства и методы объекта Selection.

   
Рассмотрим некоторые свойства и методы этого объекта, в том числе принадлежащие ему объекты. В таблице 1
перечислены наиболее часто используемые свойства и методы объекта Selection, их типы и краткое описание.

Таблица 1. Свойства и методы объекта Selection

Свойства и методыТипОписание
TextСтрокаТекстовое содержимое
CharactersКоллекцияСимволы выделенного объекта, их количество
ConvertToTableМетодПреобразование выделенного текста в таблицу
CopyМетодКопирование текста в буфер обмена
PasteМетодВставка текста из буфера обмена
CopyAsPictureМетодКопирование выделенного текста (объекта) в буфер обмена с преобразованием его в графический объект в формате BMP
CutМетодВырезание выделенного фрагмента текста
Delete(a, b)МетодУдаление выделенного фрагмента текста (вызов без аргументов) или удаление фрагмента из b символов начиная с позиции а
FindОбъектПоиск, поиск и замена в документе
FontОбъектШрифт выделенного объекта
InRange(MyRange)МетодПроверка вхождения выделенного объекта в объект MyRange
InsertAfterМетодВставка текста после объекта Selection
InsertBeforeМетодВставка текста до объекта Selection
Move(Unit, Count)МетодПеремещение объекта Selection в документе (перемещение курсора)
SetRange(a, b)МетодВыделение текста между позициями а и b
StyleЧислоСтиль выделенного текста
TypeTextМетодВставка текста на место выделенного объекта или с позиции курсора
WordsКоллекцияСлова в выделенном объекте

   
Рассмотрим подробнее некоторые свойства объекта Selection.
   
При работе с текстом требуется уверенность в том, что это именно текст, чтобы не применять методы, свойственные
тексту, к другим объектам, и наоборот. Если применить к выделенному тексту методы, свойственные, например,
ячейкам таблицы, будет получена ошибка выполнения. Определить тип выделенного объекта позволяет свойство
Туре. Если Туре = wdSelectionNormal, это значит, что выделенный объект является текстом, при этом
свойство Text объекта Selection содержит выделенный текст.

   
Свойства Start и End определяют начальную и конечную позицию (в символах) выделенного
фрагмента текста. Если Selection.Start = Selection.End, то размер выделенного объекта равен нулю, т.е. ничего
не выделено. Но при этом объект Selection все равно существует. Если Selection.Start = Selection.End = 0,
это означает, что курсор находится в начале документа (при условии что наш документ содержит только текст).
Используя свойства Start и End, можно установить курсор в любую позицию документа. Если
Selection.Start <> Selection.End, то это означает, что выделен фрагмент текста между двумя позициями,
значения которых записаны в эти поля. Присваивая им различные значения, можно манипулировать размерами
выделенной области текста. Для примера откроем текст с помощью метода Open коллекции Documents и
установим значения полей Start и End. Вот фрагмент исходного текста программы.

procedure TForm1.Button5Click(Sender: TObject);
//Start и End
begin
  W.Selection.Start:=13;
  W.Selection.End:=20;
end;

   
Результат работы приложения изображен на рисунке 1:


Рис.1. Результат работы приложения

   
Вот полный текст приложения:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    CheckBox1: TCheckBox;
    OpenDialog1: TOpenDialog;
    Button4: TButton;
    Button2: TButton;
    Button3: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  W:Variant;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  W:=CreateOleObject('Word.Application');
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  W.Visible:=CheckBox1.Checked;
end;

procedure TForm1.Button4Click(Sender: TObject);
//Открытие документа
begin
  if OpenDialog1.Execute then
      W.Documents.Open(OpenDialog1.FileName);
end;

procedure TForm1.Button2Click(Sender: TObject);
//Выделение текста
begin
 W.ActiveDocument.Range(1,15).Select;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Чтение текста
var
  S: String;
begin
  S:=W.Selection.Text; 
  MessageBox (handle, pchar(S), 'Чтение текста из выделенного фрагмента!',0);
end;

procedure TForm1.Button5Click(Sender: TObject);
//Start и End
begin
  W.Selection.Start:=13;
  W.Selection.End:=20;
end;

end.

Текст этого приложения можно взять здесь (6,5 Кб).

   
Также нетрудно убедиться, что положение курсора будет изменяться при изменении свойств Start и End объекта
Selection. Если их значения установить в ноль, то курсор переместится в начало документа, и переместится в
конец документа, когда их значения будут равны количеству символов документа. Следующий фрагмент программного
кода показывает, как переместить курсор в начало и конец документа.

procedure TForm1.Button6Click(Sender: TObject);
//В начало документа
begin
  W.Selection.Start:=W.ActiveDocument.Characters.0;
end;

procedure TForm1.Button7Click(Sender: TObject);
//В конец документа
begin
  W.Selection.End := W.ActiveDocument.Characters.Count;
end;

   
Результат работы приложения изображен на рисунке 2:


Рис.2. Результат работы приложения

   
Полный текст приложения:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    CheckBox1: TCheckBox;
    OpenDialog1: TOpenDialog;
    Button4: TButton;
    Button2: TButton;
    Button3: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  W:Variant;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  W:=CreateOleObject('Word.Application');
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  W.Visible:=CheckBox1.Checked;
end;

procedure TForm1.Button4Click(Sender: TObject);
//Открытие документа
begin
  if OpenDialog1.Execute then
      W.Documents.Open(OpenDialog1.FileName);
end;

procedure TForm1.Button2Click(Sender: TObject);
//Выделение текста
begin
 W.ActiveDocument.Range(1,15).Select;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Чтение текста
var
  S: String;
begin
  S:=W.Selection.Text; 
  MessageBox (handle, pchar(S), 'Чтение текста из выделенного фрагмента!',0);
end;

procedure TForm1.Button5Click(Sender: TObject);
//Start и End
begin
  W.Selection.Start:=13;
  W.Selection.End:=20;
end;

procedure TForm1.Button6Click(Sender: TObject);
//В начало документа
begin
  W.Selection.Start:=W.ActiveDocument.Characters.0;
end;

procedure TForm1.Button7Click(Sender: TObject);
//В конец документа
begin
  W.Selection.End := W.ActiveDocument.Characters.Count;
end;

end.

Текст этого приложения можно взять здесь (6,8 Кб).

   
Манипуляции с полями Start и End - не единственный способ перемещения курсора или выделения объекта.

   
На следующем шаге мы рассмотрим метод Move объекта Selection.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий