关于Word的难题,同志们帮帮忙!

tobato 2001-02-19 03:22:00
怎样将Word内嵌到delphi的应用程序中?用什么方法实现?必须有新建,存盘等功能.
Word不能运行在后台,必须嵌入到程序中。
不能使用servers 选项卡中的关于word的控件,好像这些控件打开的Word都是运行在后台的.
使用Ole时,没有文件菜单项??

...全文
201 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
biner 2001-02-21
  • 打赏
  • 举报
回复
willzjy(毛毛雨)你的例子好像也新开个word的进程吧,tobato(tobato)说的是把WORD嵌套在应用程序里面,我就觉得只有TOleContainer可以实现。
BaldZhang 2001-02-21
  • 打赏
  • 举报
回复
在Form上放一个TMainMenu,设定AutoMerge为True,试试
神奇的肚肚 2001-02-21
  • 打赏
  • 举报
回复
写一堆也不给分不说了,
jll 2001-02-20
  • 打赏
  • 举报
回复
没记错的话,是合并菜单的问题
bill_lasker 2001-02-20
  • 打赏
  • 举报
回复
关注。
tobato 2001-02-20
  • 打赏
  • 举报
回复
willzjy(毛毛雨) 我的Email: towyf@ynmail.com 我要Word的,谢谢. word现在可以打开,但是
没有file菜单?? 还有,save怎么作??

to:bigfox 我用server上的控件打开的word都是在后台的, 这里需要嵌入到程序中.和delphi自带的例子是不同的! 还有什么办法??
bigfox 2001-02-19
  • 打赏
  • 举报
回复
你也可以用server页上的控件,操作word很好用
willzjy 2001-02-19
  • 打赏
  • 举报
回复
用TOleContainer是可行的,我在很久以前用TOleContainer将WORD嵌入到
自己的程序中,跟在实际中使用WORD没什么两样,只是那个程序要找一找才
行如果你需要,可以给你发过去,留下E-mail吧!
其实我不推荐使用上述方法的,为什么不通过程序直接打开WORD呢,那样似
乎更合理一些。我有一个EXCEL的例子,提供如下(WORD也差不多):
unit Main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, DBGrids, Db, DBTables;

type
TForm1 = class(TForm)
Button1: TButton;
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
XLApp:Variant;
procedure InsertData;
procedure ChangeColumns;
procedure HandleRange;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Comobj;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
XLApp:=CreateOleObject('Excel.Application');
XLApp.visible:=true;
XLApp.workbooks.add(emptyparam);
XLApp.Workbooks[1].worksheets[1].name:='Data';
InsertData;
// HandleRange;
// ChangeColumns;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts:=false;
XLApp.quit;
end;
end;

procedure TForm1.InsertData;
var
i:Integer;
sheet:variant;
begin
sheet:=xlApp.Workbooks[1].worksheets['Data'];
query1.first;
for i:=1 to query1.RecordCount do
begin
sheet.cells[i,1]:=query1.fieldbyname('档案号').asstring;
sheet.cells[i,2]:=query1.fieldbyname('姓名').asstring;
sheet.cells[i,3]:=query1.fieldbyname('身份证号').asstring;
query1.next;
end;
edit1.text:=inttostr(query1.Recordcount);
// sheet.cells[i,1]:='=Sum(A1:A10)';
end;

procedure TForm1.HandleRange;
var
Range:variant;
begin
Range:=XLApp.Workbooks[1].worksheets['Data'].range['C1:F25'];

Range.Formula:='=RAND()';
Range.Columns.Interior.ColorIndex:=3;
// Range.Borders.LineStyle:=xlContinuous;
end;

procedure TForm1.ChangeColumns;
var
ColumnRange:variant;
begin
ColumnRange:=XLApp.Workbooks[1].worksheets['Data'].Columns;
ColumnRange.Columns[1].ColumnWidth:=5;
ColumnRange.Columns.item[1].font.bold:=true;
ColumnRange.Columns[1].Font.color:=clBlue;
end;

end.
biner 2001-02-19
  • 打赏
  • 举报
回复
用TOleContainer
tobato 2001-02-19
  • 打赏
  • 举报
回复
该怎么办??

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧