如何用D5控件浏笕WORD文档?新(200分)

  • 主题发起人 主题发起人 zjhzzc
  • 开始时间 开始时间
你的问题:
xl.Application.CommandBars['Web'].Visible := True;
xl.Application.CommandBars['Drawing'].Visible := True;
xl.Application.CommandBars['Reviewing'].Visible := True;
xl.Application.CommandBars'['Control Toolbox'].Visible := True;
xl.Application.CommandBars['Forms'].Visible := True;
---
!我保证你们看到以下的用法一定爽歪歪了!!!
这可是我三天工作的结果。唔。。。
---看最后终结者office。
--------------------------------
如果你们用的office97的server控件,那么用office2000时就要把server上的控件换掉。
做法:
1。在Componet里打开Install Packages.....
2.去掉borland sample automation server components
3.在project中点input type Library....
4.点add加入office2000的类库。(在Microsoft Office/office目录下的)
5。反正是什么Excel9.olb , Msword9.olb 和那些*.olb的东东,有excel的,word的,等。。。
6。palette page:改为servers(因为以前的office的控件完完了)
7。点install就好了。
这样office2000的问题我想应解决了。(如果你用的是什么word.application或excel.application 的控件的话)。
-----------
我的建议:
先用上面一的方法,再用comobj对象。
use comobj, excel_tlb; //excel_tlb 是新excel控件的pas文件,你把新控件放在窗体上看它用的哪个.pas就好了,当然下面要把这个控件去掉。因为comobj不用这个控件。只用这个.pas如excel_tlb中的函数。
var xl:variant;
在事件里写:
xl:=createoleobject('Excel.Application');

然后打开excel或word录一个宏命令,并打开宏命令考入代码。
----以下是宏录下来的宏。
workbooks.add
Range("C5:D7").Select
Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.Delete
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Sheet3").Range("A1")
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet3"
-------
现在把它改为以下:
xl.workbooks.add;
xl.workbooks.add('d:/test.xls');
xl.Range['C5:D7'].Select;
xl.Sheets['Sheet2'].Select;
xl.ActiveWindow.SelectedSheets.Delete;
xl.Charts.Add;
xl.ActiveChart.ChartType := xlColumnClustered;
xl.ActiveChart.Location(xlLocationAsObject,'Sheet3');
现在运行一下,我保证你们爽歪歪!
看到规律了吗?
前面加上对象名,()改[],= 改:=,有参数时直接用,后加; 。哈哈,满意了吧,
用office的宏命令可是不用你去想编程的,全是手动。这样少写了一大堆代码。

bbcoll 如有不明白的朋友讨论可:bbcoll@china.com

-------------------------------------------------------

 
请继续或结束
 
To zjhzzc:
可以留下你的Email吗?
 
bbcoll说的有道理,我同意
 
[blue]你试试这样行不行:
思路是这样的:
1。open指定的word文件,应该可以做到;
2。开辟一块内存空间;
3。把文件内容复制到新开辟的空间;
4。放一个类似richedit这样的控件在form上;
5。用该控件显示刚开辟的内存空间的内容。
这样应该可以。我曾见到过有的系统有这样的用法。[:)][/blue]
 
关于背景颜色的设定,这个好像是Delphi 的BUg,在TOleContainer的单元中,
TOleContainer有一个Protected 方法。将该方法的一下代码屏蔽掉就可以了:
Canvas.Brush.Style := bsSolid;
Canvas.Brush.Color := Color;
DrawEdge(Canvas.Handle, CR, EDGE_SUNKEN, Flags or BF_MIDDLE);
 
讲错了,应该是Protected 方法Paint[:)]
代码:
 
接受答案了.
 
后退
顶部