Перелік використаних джерел
1. Фаронов В.В. Программирование баз данных в Delphi6: Учебный курс. – СПб: Питер, 2003. – 352 с.
2. Калиткин Н.Н. Численные методы. – М: Главная редакция физико-математической литературы изд-ва «Наука», 1978. – 512 с. (електронна версія)
3. Архангельский А.Я. Программирование в Delphi 6. – М.: БИНОМ, 2003. – 1120 с.
4. Фаронов В.В. Delphi 6: Учеб. курс. – М.: Издатель Молгачева С.В., 2003. – 672 с.
Лістинг програми PowerPoint++:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, comobj, StdCtrls, OleServer, PowerPointXP, Buttons, OleCtnrs;
type
TForm1 = class(TForm)
PowerPointApplication1: TPowerPointApplication;
PowerPointPresentation1: TPowerPointPresentation;
Button_EXIT: TButton;
Button_FIRST: TBitBtn;
Button_LAST: TBitBtn;
Button_NEXT: TBitBtn;
Button_PREV: TBitBtn;
Button_RUN: TBitBtn;
Button_CLOSE: TBitBtn;
Edit_Path: TEdit;
OpenDialog1: TOpenDialog;
Button_Way_to_File: TButton;
Button_NUMBER: TButton;
Edit_NUM: TEdit;
Label_NUM: TLabel;
procedure Button_RUNClick (Sender: TObject);
procedure Button_CLOSEClick (Sender: TObject);
procedure Button_EXITClick (Sender: TObject);
procedure Button_NEXTClick (Sender: TObject);
procedure Button_PREVClick (Sender: TObject);
procedure Button_FIRSTClick (Sender: TObject);
procedure Button_LASTClick (Sender: TObject);
procedure Button_Way_to_FileClick (Sender: TObject);
procedure Button_NUMBERClick (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
PowerPointApp: OLEVariant; // объект самой презентации
St1: string; // строка пути к файлу
Num, // Номер слайда, выбранного пользователем
K, // Номер текущего слайда
ALL: integer; // Общее количество слайдов
procedure Form_refresh1;
implementation
{$R *.dfm}
procedure Form_refresh1;
begin
// Если слайд первый
If (K=1) then
begin
Form1. Button_FIRST. Enabled:=false;
Form1. Button_PREV. Enabled:=false;
Form1. Button_NEXT. Enabled:=true;
Form1. Button_LAST. Enabled:=true;
end;
// Если слайд не первый и не последний (все остальные)
If ((K>1) and (K<=ALL-1)) then
begin
Form1. Button_FIRST. Enabled:=true;
Form1. Button_PREV. Enabled:=true;
Form1. Button_NEXT. Enabled:=true;
Form1. Button_LAST. Enabled:=true;
end;
// Если слайд последний
If (K=ALL) then
begin
Form1. Button_FIRST. Enabled:=true;
Form1. Button_PREV. Enabled:=true;
Form1. Button_NEXT. Enabled:=false;
Form1. Button_LAST. Enabled:=false;
end;
end;
procedure TForm1. Button_RUNClick (Sender: TObject);
begin
try
PowerPointApp:= CreateOleObject ('PowerPoint. Application');
Button_CLOSE. Enabled:=True;
Button_RUN. Enabled:=False;
Button_FIRST. Enabled:=false;
Button_PREV. Enabled:=false;
Button_NEXT. Enabled:=True;
Button_LAST. Enabled:=True;
Button_NUMBER. Enabled:=True;
Edit_NUM. Enabled:=true;
Label_NUM. Visible:=true;
K:=1; // Номер текущего слайда
except
ShowMessage ('Ошибка! Проверьте наличие PowerPoint.');
Exit;
end;
// Сделать PowerPoint видимым
PowerPointApp. Visible:= True;
// Открыть презентацию
PowerPointApp. Presentations. Open (St1, False, False, True);
// Запустить презентацию
PowerPointApp. ActivePresentation. SlideShowSettings. Run;
// Показать текущую версию презентации
ShowMessage (Format('Powerpoint version:%s', [PowerPointApp. Version]));
ALL:=StrToInt (Format(' % s', [PowerPointApp. ActivePresentation. Slides. Count]));
Label_NUM. Caption:=InttoStr(K);
end;
procedure TForm1. Button_CLOSEClick (Sender: TObject);
begin
// Закрытьпрезентациюивыгрузитьизпамяти
PowerPointApp. Quit;
PowerPointApp:= UnAssigned;
// Заблокированиекнопокприуспешномзакрытии
Button_CLOSE. Enabled:=False;
Button_RUN. Enabled:=True;
Button_FIRST. Enabled:=False;
Button_PREV. Enabled:=False;
Button_NEXT. Enabled:=False;
Button_LAST. Enabled:=False;
Button_NUMBER. Enabled:=False;
Edit_NUM. Enabled:=false;
Label_NUM. Visible:=false;
end;
procedure TForm1. Button_EXITClick (Sender: TObject);
begin
Form1. Close;
end;
procedure TForm1. Button_NEXTClick (Sender: TObject);
begin
// Перейти к следующему слайду
PowerPointApp. ActivePresentation. SlideShowWindow. View. Next;
K:=K+1;
Label_NUM. Caption:=InttoStr(K);
Form_refresh1;
end;
procedure TForm1. Button_PREVClick (Sender: TObject);
begin
// Переход к предыдущему слайду
PowerPointApp. ActivePresentation. SlideShowWindow. View. Previous;
K:=K-1;
Label_NUM. Caption:=InttoStr(K);
Form_refresh1;
end;
procedure TForm1. Button_FIRSTClick (Sender: TObject);
begin
// Переход к первому слайду
PowerPointApp. ActivePresentation. SlideShowWindow. View. First;
K:=1;
Label_NUM. Caption:=InttoStr(K);
Form_refresh1;
end;
procedure TForm1. Button_LASTClick (Sender: TObject);
begin
// Переход к последнему слайду
PowerPointApp. ActivePresentation. SlideShowWindow. View. Last;
K:=ALL;
Label_NUM. Caption:=InttoStr(K);
Form_refresh1;
end;
procedure TForm1. Button_Way_to_FileClick (Sender: TObject);
begin
OpenDialog1. Execute;
St1:=OpenDialog1. FileName;
if St1<>'' then
begin
Edit_Path.text:=St1;
Button_RUN. Enabled:=true;
end
else
with Application do
begin
NormalizeTopMosts;
MessageBox ('Ошибка! Файлневыбранилиимеетнеправильныйформат!', 'Ошибкаввода', MB_ICONERROR);
RestoreTopMosts;
end;
end;
procedure TForm1. Button_NUMBERClick (Sender: TObject);
begin
// Перейти к сладу с номером, указанным пользователем
if (Edit_NUM. Text<>'') then
begin
Num:=StrtoInt (Edit_NUM. Text);
if ((Num>=1) and (Num<=ALL)) then
begin
PowerPointApp. ActivePresentation. SlideShowWindow. View. GoToSlide(Num);
K:=Num;
Label_NUM. Caption:=InttoStr(K);
Form_refresh1;
end
else
with Application do
begin
NormalizeTopMosts;
MessageBox ('Ошибка! Введите правильное число!', 'Ошибка ввода', MB_ICONERROR);
RestoreTopMosts;
end;
end
else
with Application do
begin
NormalizeTopMosts;
MessageBox ('Ошибка! Введите номер слайда!', 'Ошибка ввода', MB_ICONERROR);
RestoreTopMosts;
end;
end;
end.