📄 让按钮连续工作.htm
字号:
<p> 下面,就该写代码了,首先写构造函数与析构函数,当创建这个按钮(类)时,类里面的定时器同时也被创建,但处于非激活状态,同时,缺省值也应被置入;当这个按钮(类) 被消除时,定时器也应被释放。下面的代码就是构造函数与析构函数</p><p> </p><blockquote> <p>Constructor TTimerButton.Create(AOwner: TComponent); </p> <p>begin </p> <p>Inherited Create(AOwner); </p> <p>FTimer:=TTimer.Create(self); </p> <p>with FTimer do begin </p> <p>Ontimer:=TimerTrigger; </p> <p>Enabled:=false; </p> <p>end; </p> <p>FInterval := 200; </p> <p>FTimer.Interval := 200; </p> <p>OnMouseDown:= MouseDown; </p> <p>OnMouseUp := MouseUp; </p> <p>end; </p> <p>Destructor TTimerButton.Destroy; </p> <p>begin </p> <p>FTimer.free; </p> <p>inherited Destroy; </p> <p>end; </p></blockquote><p></p><p> 下面,就该写属性的读写方法了,属性的读写方法比较简单,只要把值写入对应的字段就可以了,下面,就是这部分代码</p><blockquote> <p><br> procedure TTimerButton.SetInterval(Value :integer); </p> <p>begin </p> <p>FInterval:=value; </p> <p>FTimer.Interval:=value; </p> <p>end; </p></blockquote><p></p><p></p><p></p><p> </p><p> 这样,元件的框架就搭好了,下面要做的工作,就是把我们刚开始的工作在做一遍,这比较容易,请参看下面的代码,其中TimerTrigger执行的是,判断是否写了事件代码,如果写了就执行。</p><p> </p><blockquote> <p>procedure TTimerButton.TimerTrigger(Sender: TObject); </p> <p>begin </p> <p>if assigned(FOnPush) then </p> <p>FOnPush(self); </p> <p>end; </p> <p>procedure TTimerButton.MouseDown(Sender: TObject; Button: TMouseButton; </p> <p>Shift: TShiftState; X, Y: Integer); </p> <p>begin </p> <p>FTimer.enabled:=true; </p> <p>end; </p> <p>procedure TTimerButton.MouseUp(Sender: TObject; Button: TMouseButton; </p> <p>Shift: TShiftState; X, Y: Integer); </p> <p>begin </p> <p>FTimer.enabled:=False; </p> <p>end; </p></blockquote><p></p><p> 最后,是元件的注册部分,注册表示将这个元件加到元件表的位置,调用一个RegisterComponent函数即可,代码如下:</p><p> </p><blockquote> <p>procedure Register; </p> <p>begin </p> <p>RegisterComponents('Tang', [TRotatePicture]); </p> <p>end; </p></blockquote><p></p><p></p><p></p><p> </p><p> 然后在加上文件的头,我们这个元件就做成了,使用Delphi的增加元件功能将元件加入元件板,新开始一个Form测试,完全实现了我们想要的功能,成功地将比较繁琐的代码,采用元件的形式了封装起来。</p><p> </p><p> 这一次,我们成功地运用ObjectPascal语言实现了代码的封装,把比较繁琐的代码做到了元件里面,如此看来,用Delphi开发元件其实也不是很困难的事情,但愿我的这一篇文章能给大家起个抛砖引玉的作用,祝愿大家写出更加出色的元件来</p><p> 评语:但是由于Windows限制每个窗体TIMER的投递个数,这样作的话Button一多就可能让你的程序不工作,这个Tip简述了制作构件的方法,但这样做成的构件不安全! </p><p> </p></td></tr></table><br><img src="/xslimages/content/buttom.gif" align="absmiddle"></img> 相关内容 <br><ul></ul><br><font color="#000000"><font color="#1C82C5"><img src="/xslimages/content/buttom.gif" align="absmiddle"></img></font> 相关链接 </font><br><ul><a href="http://bbs.cpcw.com/forum/vb/">到程序方舟论坛,论坛主持人为你答疑!<br><br></a></ul><a href=""><font color="#FF9900"><font color="#CC0000"></font></font></a><font color="#000000"><font color="#1C82C5"><img src="/xslimages/content/buttom.gif" align="absmiddle"></img></font> 更多的 </font><br><table width="70%"><tr><td width="30%" valign="top" align="left"><ul></ul></td><td width="30%" valign="top" align="left"></td></tr></table></td></tr></table><table width="98%" border="0" cellspacing="0"><tr><td width="85%" height="19" align="center" bgcolor="#FDF0C4"><a href="mailto:ph@cpcw.com"> 本文版权归作者和天极网共同所有,如有任何版权问题,请与我们联系。 </a></td><td width="15%" bgcolor="#FFCC66" height="19"> 【 <a href="/index.htm"> 回首页 </a> 】 </td></tr></table><br></td><td colspan="2" valign="top" width="25%" bgcolor="#eeeeee"><table width="97%" align="center"><tr><td bgcolor="#ff9900" width="182" height="15"></td></tr></table><table width="97%" border="0" cellpadding="3" align="center"><tr><td valign="top" height="23" border="1" bgcolor="#eeeeee" cellspacing="0" bordercolor="#ff9900"><div align="center"> 火热链接 </div></td></tr><tr bgcolor="#F5F5F5"><td width="27%" height="20" align="left"><div align="left"><a href="/33554432/36700160/116464.htm">淄博广电被罚 吉通陪绑……</a><br><a href="/33554432/36700160/116429.htm">图文:首信公司与ECnet建全球B2B采购网</a><br><a href="/33554432/36700160/116416.htm">“反色情”触及儿童网站</a><br><a href="/33554432/36700160/116409.htm">WAP,未来的未来</a><br><a href="/33554432/36700160/116406.htm">日本:5年后IT业超美国</a><br><a href="/33554432/36700160/116394.htm">美国在线和时代华纳:引判例对付审查</a><br><a href="/33554432/36700160/116367.htm">WAP收费标准再次推迟出台</a><br><a href="/33554432/36700160/116348.htm">网络经济任重道远</a><br><a href="/33554432/36700160/116319.htm">苹果:我们并未对任何人施压</a><br><a href="/33554432/36700160/116322.htm">法官的离职不会影响微软案</a><br></div></td></tr></table><br><table width="97%" border="0" cellpadding="3" align="center"><tr bgcolor="#ff9900"><td valign="top" height="20"><div align="center"> 天极搜索 </div></td></tr><tr bgcolor="#F5F5F5"><form action="http://search.yesky.com/servlet/search" method="post" name="search" onsubmit="form_onsubmit(); return ValidationPassed;"><td width="27%" height="20" align="center"><div><script language="javascript"> function form_onsubmit() { ValidationPassed = true ; if (document.search.keyword.value=="") { alert ("请输入搜索关键字!"); ValidationPassed=false; } return ValidationPassed; } </script><input name="keyword" id="keyword" class="nava" size="12"></input><input type="hidden" name="classify" value="keyword"></input><input type="hidden" name="no" value="34603008"></input><input onClick="form_onsubmit(this.form);" style="HEIGHT:22px;WIDTH:40px" type="submit" value="搜索" name="submit2"></input></div></td></form></tr></table><div align="left"><font color="#000000"><br><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr align="center"><td><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="10" height="2"><img src="/xslimages/school/pathboy-ruanjian.gif" width="32" height="32"></img></td><td width="186" height="2" valign="top"><table width="100%" border="1" cellspacing="0" cellpadding="0" bordercolordark="#FFFFFF" bordercolorlight="#000000" bgcolor="#6898D0"><tr align="center"><td height="26"><font color="#FFFFFF"> MyDown下载 </font><font class="nava" color="#FFFFFF"></font></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="0" cellspacing="1" width="100%" align="center"><tbody><tr align="left"><td bgcolor="#ffffff"><script type="text/javascript" language="javascript" src="http://www.mydown.com/mydown.js"></script><br></td></tr></tbody></table><table width="100%" align="center"><tr><td align="center"><tr><td align="center"><a href="http://www.hoyodo.com"><img border="0" src="http://www.hoyodo.com/home/images/banner/botton.gif" width="120" height="60"></img></a><br><br><a href="http://e.yesky.com"><img border="0" src="http://e.yesky.com/images/logo_e2.gif" width="120" height="60" alt="天极E时代"></img></a></td></tr></td></tr></table></font></div><br></td></tr></table><table width="97%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><div align="center"><a href="/hdong/gao.htm" target="_blank">欢迎投稿</a>| <a href="/bill/index.html" target="_blank">市场联系</a>| <a href="/serve/dnbjs.htm" target="_blank">关于我们</a>| <a href="/maillist/index.html" target="_blank">邮件列表</a>| <a href="/hdong/zaopin.html" target="_blank">加入我们</a>| <a href="/hdong/xinsi.html" target="_blank">隐私条款</a></div></td></tr></table><hr height="1" size="1" width="760"></hr><td width="57%" valign="top" rowspan="1" align="center"><div align="center"><script language="JavaScript" src="http://ad.cpcw.com/js/school.js"></script></div></td><table width="97%" border="0" cellspacing="0" cellpadding="0" align="center"><tr></tr><tr></tr><tr></tr></table><table width="97%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><div align="center"><span class="nava"><font color="#000000" face="Arial, Helvetica, sans-serif"> Copyright (C) 1999 Yesky.com, All Rights Reserved </font><font color="#000000"><br> 版权所有 <font face="Arial, Helvetica, sans-serif"> Yesky </font></font></span></div></td></tr></table><script>document.write("<a href=http://best.netease.com/cgi-bin/view/viewbasic.cgi?program target=_blank><img style=visibility:hidden src=http://best.netease.com/cgi-bin/log.cgi?user=program&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+" border=0 alt=网易中文排行榜 ></a>");</script><script> document.write("<a href=http://best.netease.com/cgi-bin/view/viewbasic.cgi?rkai target=_blank> <img style=visibility:hidden src=http://best.netease.com/cgi-bin/log.cgi?user=rkai&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+" border=0 alt=网易中文排行榜 width=15 height=15></a>");</script><A HREF="http://best.nease.net/cgi-bin/view/viewbasic.cgi?cpcw" TARGET="_blank"><IMG SRC="http://best.nease.net/cgi-bin/log.cgi?user=cpcw" style="visibility:hidden"/></A><br><iframe frameborder="0" scrolling="no" src="http://count.yesky.com/servlet/count?articleno=103486" height="0" width="100%"></iframe></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -