我在MDI主窗体中有一个“窗口”菜单 ,要完成这样的功能,里面有几项 水平平铺/垂直平铺/重叠
想让MDI子窗体完成 水平平铺/垂直平铺/重叠 这样的功能。
请问该怎么做?
还有,我想在每打开一个子窗体的时候,在“窗口”这个菜单中加多一项,
该项显示些窗体的名字,点击的时候可以将表示的这个窗体激活。
打开多个子窗体后,在“窗口”这个菜单中就有多项,各表示不同的窗体,
请问这样的功能如何实现呢。
请指教。谢谢!
解决方案 »
- cxDBLookupComboBox的增量搜索(IncrementalSearch)只对单个汉字有效,如何修正啊?
- 有谁知道 Remete Administrator 远程控制软件的原理!它的速度这么快,用的是什么关键技术?
- 我的delphi7的sample面板没了?
- 程序中如何清空IE的缓存
- 高手赋教请问:用delphi7如何修改<<注册表编辑器>>左面树上<<项>>名称。
- 数据库更新表的问题
- 成批修改其他窗体的控件属性。
- 有没有谁碰到过这种怪问题?
- 怎么判断一个字符串的最后一为是字母或数字???
- 怎样使用从网上下载的delphi的控件?
- 一一对应的问题,在线等大虾
- 如何让用adoquery从数据库里找出的某列数据按列顺序依次赋给变量?
Application.MainForm.Cascade;
Application.MainForm.ArrangeIcons;
begin
GetForm(Target).Cascade;
end;{ TWindowTileHorizontal }procedure DoTile(Form: TForm; TileMode: TTileMode);
const
TileParams: array[TTileMode] of Word = (MDITILE_HORIZONTAL, MDITILE_VERTICAL);
begin
if (Form.FormStyle = fsMDIForm) and (Form.ClientHandle <> 0) then
SendMessage(Form.ClientHandle, WM_MDITILE, TileParams[TileMode], 0);
end;procedure TWindowTileHorizontal.ExecuteTarget(Target: TObject);
begin
DoTile(GetForm(Target), tbHorizontal);
end;{ TWindowTileVertical }procedure TWindowTileVertical.ExecuteTarget(Target: TObject);
begin
DoTile(GetForm(Target), tbVertical);
end;
TileHorizontally和TileVertically和Cascade 不用写任何代码就可完成。
TileMode := tbHorizontal;
tile;
垂直:
TileMode := tbVertical;
tile;
重叠:
cascade;