📄 wzjh41.htm
字号:
<html>
<head>
<title>用Delphi制作动态菜单</title>
<meta content="text/html;CHARSET=gb2312" http-equiv="Content-Type">
<style type="text/css">.font {
FONT-SIZE: 9pt; LINE-HEIGHT: 13pt
}
.bfont {
FONT-SIZE: 11pt; LINE-HEIGHT: 13pt
}
A:link {
COLOR: #0080c0; CURSOR: hand; FONT-STYLE: normal; TEXT-DECORATION: none
}
A:visited {
COLOR: #0080c0; FONT-STYLE: normal; TEXT-DECORATION: none
}
A:active {
COLOR: rgb(255,0,0); FONT-STYLE: normal; TEXT-DECORATION: none
}
A:hover {
COLOR: red; TEXT-DECORATION: underline
}
</style>
<script LANUGAGE="JavaScript">
<!--
function pop(pageurl) {
var
popwin=window.open(pageurl,"popWin","scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,width=650,height=450");
return false;
}
//-->
</script>
<style type="text/css">TD {
FONT-FAMILY: "宋体"; FONT-SIZE: 9pt
}
BODY {
FONT-FAMILY: "宋体"; FONT-SIZE: 9pt
}
SELECT {
FONT-FAMILY: "宋体"; FONT-SIZE: 9pt
}
A {
COLOR: white; FONT-FAMILY: "宋体"; FONT-SIZE: 9pt; TEXT-DECORATION: none
}
A:hover {
COLOR: #3300ff FONT-FAMILY: "宋体"; FONT-SIZE: 9pt; TEXT-DECORATION: underline
}
</style>
<SCRIPT language=Javascript1.2 src="../best.js"></SCRIPT>
<SCRIPT language=JavaScript>
<!--- hide script from old browsers
var ie=0;browserName=navigator.appName.substring(0,27);
if (browserName=="Microsoft Internet Explorer") {ie=1;} if (ie) {document.bgColor="#ffffff";}
// -- End Hiding Here -->
</SCRIPT>
<META content="Microsoft FrontPage 4.0" name=GENERATOR>
<SCRIPT>var Flag=0</SCRIPT>
<body link="#008000" vlink="#008000" bgcolor="#FFFFFF">
<div align="center"><center>
<table border="0" width="750" bgcolor="#FFFFFF" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<tr>
<td width="100%">
<table border="0" width="100%" cellspacing="1" bgcolor="#FFFFFF">
<tr bgcolor="#FFFFFF">
<td width="100%" height="133">
<p align="center"><strong> 《 用Delphi制作动态菜单 》 </strong></p>
<div align="center">
<center>
<table border="0" width="650" bgcolor="#5BADFF"
cellspacing="1" cellpadding="2">
<tr>
<td width="100%" bgcolor="#FFFFFF" colspan="6"><br>
所谓动态菜单是指菜单项随着程序的操作变化而变化。现在,我们用Delphi来实现这一功能,具体步骤如下:
<br>
1.首先,确定动态菜单的数据来源,即要确定动态菜单标题是来自Windows的系统注册表,还是来自一个数据库,或者是来自一个子目录,主要由程序的功能而定。这里假设主窗口名为MainForm,上面已有主菜单,其动态菜单的数据源是一个String(字符串)类型的变量,名称为SubMenuItemSource。
<br>
2.确定生成的动态菜单的功能,即定义动态菜单的OnClick()事件,例如,动态菜单标题来自一个磁盘文件名时,那么程序在响应OnClick()事件时,可能的操作是要打开选中的文件。因此,对菜单所在的主窗口模块的单元程序的数,据我们需要定义Type后添加一个自定义的事件MyClick()。
<br>
然后,需要编写如下MyClick()事件的具体内容: <br>
procedure TMainForm.MyClick(Sender: TObject);//动态菜单OnClick事件响应
<br>
begin <br>
Show.Message(TMenuItem(Sender).Caption);//显示选中的动态菜单标题,
<br>
end; <br>
这里调用的ShowMessage标准例程(在Dialogs.pas中)显示TMenuItem(Sender).Caption,它就是选择的菜单项的Caption,类似用TMenuItem(Sender).Name则是选择菜单项的Name。
<br>
3.编写程序将动态菜单标题添加到指定的菜单顶下,并将其与OnClick()事件联系起来。将以下程序段添加到MainForm的OnCreate事件过程中,可在程序启动时完成动态菜单的动态生成:
<br>
procedure TMainForm.FormCreate(Sender: TObject); <br>
var <br>
addSubItem:TMenuItem; <br>
i:Integer; <br>
begin <br>
for i:=0 to N do //N等于要添加的动态菜单数目,需事先定义为数值型变量,并赋值 <br>
begin <br>
addSubItem:= TMenuItem.Create(Self); <br>
addSubItem.Name := ′A′+IntToStr(i); <br>
addSubItem.Caption := SubMenuItemSource; // 步骤1的SubMenuItemSource应先赋值
<br>
FileOpenItem.Add(addSubItem); //在名称为FileOpenItem的菜单项下添加子菜单
<br>
addSubItem.OnClick:=MyClick; // 步骤2的MyClick(),自定义菜单要响应的事件
<br>
end <br>
end; <br>
(李晓方) <br>
</td>
</tr>
</table>
</center>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<td width="100%" height="50" colspan="2"> </td>
</center></div>
</body>
</html>
<script LANUGAGE="JavaScript">
<!--
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
if (GetCookie("MMC_PoiLove") != "ifght94567") {
window.open("http://www.21pop.com/pop.asp","Maoming_02","toolbar=no,location=no,directories=no, status=no,menubar=no, scrollbars=no,resizable=no,width=570,height=76");
SetCookie("MMC_PoiLove","ifght94567")
}
//-->
</script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -