请教关于Excel工具栏的控制问题,特急!(100分)

  • 主题发起人 飞雪轩主
  • 开始时间

飞雪轩主

Unregistered / Unconfirmed
GUEST, unregistred user!
我通过如下程序可实现在ExcelApplication打开的Excel中添加自定义的工具栏与按钮。
现在有如下未解决问题肯请诸位的高见:
1,如何给新添加的工具栏按钮设置图标?
2,如何在新添加的工具栏按钮中写Delphi的事件,如执行函数ShowMessage('我是自定义按钮')
或者说执行Delphi主程序里的其它过程?
3,怎样实现一个类似与东方快车或OICQ那样的一个工具栏,一直浮动在Excel程序上或融合与Excel工具栏中。
以下是我的源码,先在Project->Import Type Library->Microsoft Office引用
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Excel2000, Office_TLB, StdCtrls, OleServer;
type
TForm1 = class(TForm)
ExcelApplication1: TExcelApplication;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
ExcelWorkbook1: TExcelWorkbook;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.dfm}
function FSize(FileName: string): LongInt;
//函数获得文件字节
var
F: File;
begin
AssignFile(F, FileName);
reset(F,1);
Result := FileSize(F);
CloseFile(F);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Filter:='Excel File(*.XLS)|*.XLS';
if not OpenDialog1.Execute then
exit;
Memo1.Lines.Clear;

Memo1.Visible :=True;
Memo1.Lines.Text:='FileName: '+OpenDialog1.FileName;
Memo1.Lines.Add('Size: '+IntToStr(Fsize(OpenDialog1.FileName)));
//打开Excel
ExcelApplication1.Connect;
//显示当前窗口:
ExcelApplication1.Visible[0]:=True;
//更改 Excel 标题栏:
ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';
//从文件对话框路径打开文件
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Open(OpenDialog1.FileName,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
0));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//添加自定义工具栏
ExcelApplication1.CommandBars.Add('KC定义的工具栏',1,False,False).Set_Visible(True);
//在自定义工具栏内添加按钮
with ExcelApplication1.CommandBars.Item['KC定义的工具栏'].Controls.Add(msoControlButton,
EmptyParam, EmptyParam, EmptyParam, EmptyParam) do
begin
Set_Caption('我的按钮');
Set_TooltipText('KC组的自定义按钮');
Set_OnAction('') ;
Set_Visible(True) ;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
Application.Terminate;
end;

end.
 
大家帮下忙好了
 
第三个问题我已经实现,有需要者与我联系。前两个问题还请大家多多帮忙
 
接受答案了.
 
顶部