2017-02-10 7 views
0

После установки MS PowerPoint Viewer, я запускаю код нижепопытке загрузить файл Powerpoint, но не

unit Unit1; 

interface 

uses  Comobj, 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs, StdCtrls, ExtCtrls,Office_TLB, office97, PowerPointXP;//, ExtCtrls; 

type 
    TForm1 = class(TForm) 
    Button1: TButton; 
    Panel1: TPanel; 
    procedure Button1Click(Sender: TObject); 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

var 
    Form1: TForm1; 

implementation 

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject); 
const 
    ppShowTypeSpeaker = 1; 
    ppShowTypeInWindow = 1000; 
    SHOW_FILE = 'C:\Users\myname\Downloads\practicepowerpoint.ppt'; 
var 
    oPPTApp: OleVariant; 
    oPPTPres: OleVariant; 

    screenClasshWnd: HWND; 
    pWidth, pHeight: Integer; 

    function PixelsToPoints(Val: Integer; Vert: Boolean): Integer; 
    begin 
    if Vert then 
     Result := Trunc(Val * 0.75) 
    else 
     Result := Trunc(Val * 0.75); 
    end; 

begin 
    try 
    oPPTApp := CreateOleObject('PowerPoint.Application'); 
    except 
    showmessage('no ppt');; 
    exit; 
    end; 
    oPPTPres := oPPTApp.Presentations.Open(SHOW_FILE, True, True, False); 
    pWidth := PixelsToPoints(Panel1.Width, False); 
    pHeight := PixelsToPoints(Panel1.Height, True); 
    oPPTPres.SlideShowSettings.ShowType := ppShowTypeSpeaker; 
    oPPTPres.SlideShowSettings.Run.Width := pWidth; 
    oPPTPres.SlideShowSettings.Run.Height := pHeight; 
    screenClasshWnd := FindWindow('screenClass', nil); 
    Windows.SetParent(screenClasshWnd, Panel1.Handle); 

end; 

end. 

линии

oPPTApp := CreateOleObject('PowerPoint.Application'); 

приводит к ошибке.

Просто интересно, если я должен установить Powerpoint, а не PowerPoint Viewer, прежде чем запустить код

Ваш комментарий приветственное

+0

Воспитание как это не получается. Найдите другой способ. –

ответ

0

Да, "Powerpoint.Application" начинает Powerpoint. Я бы не рекомендовал использовать средство просмотра PowerPoint, потому что это действительно старая программа (с 2010 года и раньше). Я не уверен, что вы можете автоматизировать эту программу. Новый способ просмотра pptx: Powerpoint online