На этом шаге мы рассмотрим пример приложения, иллюстрирующего работу с ячейками таблицы.
Приведем небольшое приложение, позволяющее выполнять некоторые действия с таблицей на слайде.
Внешний вид приложения изображен на рисунке 1.
Рис.1. Пример работы приложения
Приложение позволяет создавать таблицу в заданным количеством строк и столбцов, удалять ее, а также выделять ячейку, объединять ячейки и разбивать ячейку на заданное число строк и столбцов.
Каждая операция оформлена в виде отдельной процедуры.
Текст приложения.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls, ExtDlgs, ComCtrls; type TForm1 = class(TForm) Button1: TButton; CheckBox1: TCheckBox; Button3: TButton; Button4: TButton; Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; UpDown1: TUpDown; UpDown2: TUpDown; Button2: TButton; Button5: TButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edit3: TEdit; UpDown3: TUpDown; Edit4: TEdit; UpDown4: TUpDown; Button6: TButton; Button7: TButton; Label6: TLabel; Label7: TLabel; Label8: TLabel; Edit5: TEdit; UpDown5: TUpDown; Edit6: TEdit; UpDown6: TUpDown; Button8: TButton; Label9: TLabel; Label10: TLabel; Label11: TLabel; Edit7: TEdit; UpDown7: TUpDown; Edit8: TEdit; UpDown8: TUpDown; Button9: TButton; Label12: TLabel; Label13: TLabel; Label14: TLabel; Edit9: TEdit; UpDown9: TUpDown; Edit10: TEdit; UpDown10: TUpDown; Label15: TLabel; Label16: TLabel; Label17: TLabel; Edit11: TEdit; UpDown11: TUpDown; Edit12: TEdit; UpDown12: TUpDown; Button10: TButton; procedure Button1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var W,T:Variant; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin W:=CreateOleObject('PowerPoint.Application'); end; procedure TForm1.CheckBox1Click(Sender: TObject); begin W.Visible:=CheckBox1.Checked; end; procedure TForm1.Button3Click(Sender: TObject); const ppLayoutBlank = 12; var V: Variant; begin W.Presentations.Add; // Добавить пустой слайд W.ActivePresentation.Slides.Add(1,ppLayoutBlank); end; procedure TForm1.Button4Click(Sender: TObject); begin W.Quit; Close; end; procedure TForm1.Button2Click(Sender: TObject); //Добавление таблицы var row,col:Integer; begin row:=StrToInt(Edit1.Text); col:=StrToInt(Edit2.Text); W.ActivePresentation.Slides.Item(1).Shapes .AddTable(row,col); end; procedure TForm1.Button5Click(Sender: TObject); // Удаление таблицы begin W.ActivePresentation.Slides.Item(1).Shapes.Item(1).Delete; end; procedure TForm1.Button6Click(Sender: TObject); // Удалить строку var row:Integer; begin row:=StrToInt(Edit3.Text); W.ActivePresentation.Slides.Item(1).Shapes.Item(1) .Table.Rows.Item(row).Delete; end; procedure TForm1.Button7Click(Sender: TObject); // Удалить столбец var col:Integer; begin col:=StrToInt(Edit4.Text); W.ActivePresentation.Slides.Item(1).Shapes.Item(1) .Table.Columns.Item(col).Delete; end; procedure TForm1.Button8Click(Sender: TObject); // Выбрать ячейку var row,col:Integer; begin row:=StrToInt(Edit5.Text); col:=StrToInt(Edit6.Text); W.ActivePresentation.Slides.Item(1).Shapes.Item(1) .Table.Cell(row,col).Select; T:=W.ActivePresentation.Slides.Item(1).Shapes.Item(1) .Table.Cell(row,col); end; procedure TForm1.Button9Click(Sender: TObject); // Объединить ячейки var row,col:Integer; begin row:=StrToInt(Edit7.Text); col:=StrToInt(Edit8.Text); W.ActivePresentation.Slides.Item(1).Shapes.Item(1) .Table.Cell(row,col).Merge(MergeTo:=T); end; procedure TForm1.Button10Click(Sender: TObject); // Разбить ячейку var row1,col1:Integer; row2,col2:Integer; begin // Разбиваемая ячейка row1:=StrToInt(Edit9.Text); col1:=StrToInt(Edit10.Text); // Количество строк и столбцов row2:=StrToInt(Edit11.Text); col2:=StrToInt(Edit12.Text); W.ActivePresentation.Slides.Item(1).Shapes.Item(1) .Table.Cell(row1,col1).Split(row2,col2); end; end.
Со следующего шага мы начнем знакомиться с потоками.