关于在Delphi中控制Wps,AutoCad的问题 |
尚未結案
|
dragon432503
一般會員 發表:2 回覆:1 積分:0 註冊:2003-09-04 發送簡訊給我 |
在Delphi中怎样才能控制AutoCAD,WPS的新建、打开、关闭、保存等功能,我用CreateOleObject建立该类型用,进行Visible操作之后CAD,WPS就独立于自己的系统过程,也就无法控制它的运行状态,如果采用TOLEContainer则不管InPLace状态是否为真,开打CAD时将单独运行,WPS则在本系统中运行但文件菜单不可见,另外用CreateOLEObject的方法中怎么在其对应的事件中写入DELPHI代码即:对应的事件响应对应的DELPHI代码,请教各位作过该方面系统的朋友给我一个完美的解决方案,谢谢!开发环境:Delphi7.0+SQL2000+ACAD2004+WPS2003
|
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
|
dragon432503
一般會員 發表:2 回覆:1 積分:0 註冊:2003-09-04 發送簡訊給我 |
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnColorMaps, ActnCtrls, ToolWin, ActnMan, ActnMenus, Menus,
XPStyleActnCtrls, ActnList, CustomizeDlg, XPMan, OleCtnrs, ExtActns,
StdActns, ComCtrls, OleServer,ComObj, OleCtrls;
type
TForm1 = class(TForm)
Ole1: TOleContainer;
ActionManager1: TActionManager;
CoolBar1: TCoolBar;
ActionMainMenuBar1: TActionMainMenuBar;
XPColorMap1: TXPColorMap;
RichEditBold1: TRichEditBold;
RichEditItalic1: TRichEditItalic;
RichEditUnderline1: TRichEditUnderline;
RichEditStrikeOut1: TRichEditStrikeOut;
RichEditBullets1: TRichEditBullets;
RichEditAlignLeft1: TRichEditAlignLeft;
RichEditAlignRight1: TRichEditAlignRight;
RichEditAlignCenter1: TRichEditAlignCenter;
OpenDialog1: TOpenDialog;
aOpen: TAction;
aClose: TAction;
aExit: TAction;
aSave: TAction;
aEdit: TAction;
aType: TAction;
aExecute: TAction;
aVersion: TAction;
procedure aExitExecute(Sender: TObject);
procedure aOpenExecute(Sender: TObject);
procedure aSaveExecute(Sender: TObject);
procedure aCloseExecute(Sender: TObject);
procedure aEditExecute(Sender: TObject);
procedure aTypeExecute(Sender: TObject);
procedure aExecuteExecute(Sender: TObject);
procedure aVersionExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
WpsApp:Variant;
implementation
uses MyFun;
{$R *.dfm}
procedure TForm1.aExitExecute(Sender: TObject);
begin
Close;
end; procedure TForm1.aOpenExecute(Sender: TObject);
begin if OpenDialog1.Execute then
begin
if Ole1.State<>osEmpty then
Ole1.DestroyObject;
Ole1.CreateObjectFromFile(OpenDialog1.FileName,true);
Ole1.Run ; end;
end; procedure TForm1.aSaveExecute(Sender: TObject);
begin
if Ole1.Modified then
Ole1.SaveAsDocument(Ole1.SourceDoc);
end; procedure TForm1.aCloseExecute(Sender: TObject);
begin
Ole1.Close ;
end; procedure TForm1.aEditExecute(Sender: TObject);
begin
Ole1.AllowInPlace := false;
Ole1.DoVerb(ovPrimary);
end; procedure TForm1.aTypeExecute(Sender: TObject);
begin ShowMessage(Ole1.OleClassName)
end; procedure TForm1.aExecuteExecute(Sender: TObject);
Var
sApp:_ApplicationEvent; begin
try
WpsApp := GetActiveOleObject('Wps.Application'); //该方法只在在
except
WpsApp := CreateOleObject('Wps.Application');
end;
WpsApp.Visible := True;
wpsapp.Documents.Open ('E:\Kingsoft\WPS Office 2002\Samples\WPS\散文.wps');
end; procedure TForm1.aVersionExecute(Sender: TObject);
begin
ShowMessage(GetWindowsVersion)
end; end. 發表人 - dragon432503 於 2003/09/14 11:03:44
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |