有菜单条控件吗 (100分)

  • 主题发起人 主题发起人 憨憨
  • 开始时间 开始时间

憨憨

Unregistered / Unconfirmed
GUEST, unregistred user!
我的主窗口有主菜单,有些DLL中的窗口又有主菜单,我常常需要把DLL窗口DOCK到主窗口中,DLL窗口的主菜单就没有了
后来我就把DLL窗口的菜单项加入主窗口的主菜单,主窗口的主菜单就显得很乱

现在,希望用一个独立的菜单条来容纳DLL的主菜单,不知道行不行
 
use
Word2000, OleServer,ComObj;
procedure TForm_feecode.Panel2Click(Sender: TObject);
var
WordApp,WordDoc,WordTable:OleVariant;
i,j:integer;
begin
if MessageDlg('请确定你已经安装了WORD?', mtInformation, [mbOK,mbCancel],0)=mrOK then
begin
if adoquery1.Active=true then
begin
WordApp:=CreateOleObject('Word.Application');
WordApp.Visible:=True;
WordDoc:=WordApp.Documents.Add;
Wordapp.options.checkSpellingAsYouType:=false;
Wordapp.options.CheckGrammarAsyouType:=false;
WordTable:=WordDoc.Tables.Add(WordApp.Selection.Range,DBGrid1.DataSource.DataSet.RecordCount+1,DBGrid1.Columns.Count);
for i:=1 to DBGrid1.Columns.Count do
WordTable.Cell(1,i).Range.InsertAfter(DBGrid1.Columns[i-1].Title.Caption);
i:=2;
while ADOquery1.Eof=false do
begin
for j:=1 to ADOquery1.FieldCount do
WordTable.Cell(i,j).Range.InsertAfter(ADOquery1.Fields.Fields[j-1].AsString);
ADOquery1.Next;
Inc(i);
end;
end
else
application.MessageBox ('请先查询再导出数据','Error', MB_OK);
end
可能是答非所问,看看总有帮助。
 
嗯,这个 好象 不中
 
你可以这样实现:
1. 将oleContainer放在在独立的窗口;
2. 创建和show 窗口时, doVerb(1);
3. 编辑;
4. 关闭窗口时(onCloseQuery)判断 OleContainer的 Word的内容有没有修改,如果修改提示是否保存,
if not oleContainer.OleObject.Application.ActiveDocument.Saved then ....

 
富 翁 们, 有 没 有 啊 ?
 
你可以这样 在DLL中 用一个 TOOLBAR + POPMENU 来模拟 MAINMENU
 
同意楼上
 
用 ExpressBar 可以做出很 COOL 的菜单与工具栏
 
方法可以用,不错
 
这是菜单结合问题,在一个MDIChildForm放大到整个MDIMainForm时,会根据情况自动结合它们的菜单。Delphi中的主菜单MainMenu控件,有个AutoMerge属性,你试试设置一下看看。
 
多人接受答案了。
 
后退
顶部