[精选推荐]Delphi BS程序设计技巧集(--)
- 格式:pdf
- 大小:2.49 MB
- 文档页数:14
Delphi2005 B/S程序设计技巧集(29--33)宋雨炫 2005-5现在delphi 2005 B/S的书籍资料太少,几乎没有可参考的资料,这在一定程度上限制了delphi 2005的使用,相反C#,ASP的书籍资料到处都是。
通过几个月的学习也算是总结了一点经验,从现在起我将陆续将ASP和C#的例子、技巧翻译到delphi 2005下面,希望对大家的学习和工作有帮助,毕竟.Net是一种发展趋势。
我将不定期写新的内容,同时,如果你在工作或学习中有什么问题,我也会将问题加入本篇文章,另外,一个人的能力毕竟有限,也希望大家共同来解决问题。
2005-5-18 更新说明:程序终于基本上搞完了,里面可能还有一些小错误。
其实这个程序主要的部分不是论坛,是前面查询的部分,由于对大家没什么用,所以就没附上那一部分。
这个程序是给朋友做的,由于没有money,时间也紧,所以作的很粗糙、简陋,从源程序里面可以看出来,纯粹的“意识流”,想到那写到那,比较乱,语句重复的比较多。
不过,通过做这个程序,我学会了许多知识,也基本掌握了B/S的一些基本原理。
在这个程序里面有些东西是比较常见的asp、java以及C#方法和技巧,还有一些是我总结、思考出来的方法技巧,也许并不怎么科学,但却很解决问题,对于初学delphi2005 B/S设计的朋友也许会有帮助。
在以后的文章里面准备写一个公共聊天室以及delphi2005 B/S方面的函数说明,有时候写文章也是一个学习、总结的过程。
希望大家多提建议,让我们共同进步。
29、在线用户的统计关于在线用户的统计,网上有很多方法和资料,在这里我采用的是数据库记录的方式。
当用户访问某一页面时,将其访问信息和时间记录下来,当超过一定时间没有动作后,系统将认为其已经离线,这个方法和传统的timeout判断方法原理是一样的,不过这样做可以更详细的统计在线用户的信息。
当然,这样不能十分准确地判定在线与离线,但在asp、java、C#里实在找不到可以精确统计的方式方法。
delphi编程妙招集合下载⽹址:有详细的⽂字说明和DELPHI源代码,拷贝即⽤!内容:控件Label的分⾏显⽰Tag属性的妙⽤调⽤API确定MEMO控件中的当前⾏和列给ListBox、ComboBxox添加图⽚给ListBox添加⽔平滚动条Delphi中动态定制菜单⽤Image显⽰Jpg图⽚给MenuItem中添加Image改变在MenuItem中的Image位置对窗体(Form)制作可分割的窗体(Form)制作透明的窗体(Form)窗体(Form)上的坐标转换成相对于屏幕上的坐标变⾊窗⼝背景不⽤标题栏也移动窗体状态条进度条程序启动画⾯控制窗体查阅可视窗⼝标题限制Form的⼤⼩Form⽣成时的事件次序在窗体上设置⼀个热键⽣成⾮矩形窗⼝Delphi中TApplication类的巧⽤在程序中使⽤⾃定义的⿏标界⾯⾊彩渐变效果的实现图形整体拉出效果窗体的系统菜单添加到窗体的菜单条上闪动标题栏某些程序退出后会在任务栏中留下⼀个空格,点⼀下才消失。
如何处理?⽂件和⽬录如何启动/关闭CD-ROM的⾃动运⾏如何判断光驱中是否有光盘如何打开和关闭计算机的光驱获得磁盘的类型获得磁盘的容量获取当前程序的⽬录。
得到光驱得到windows⽬录得到System⽬录得到windows临时路径察看⽂件是否存在改变⽂件扩展名得到⽂件的扩展名让应⽤程序⾃⾝删除如何把⽂件删除到回收站中?打开Windows已经注册的⽂件系统如何添加桌⾯的快捷写⼀个在Winx、WinNT通⽤的“隐⾝程序” 屏蔽系统功能键隐藏和显⽰Windows的任务条从任务列表隐藏应⽤程序(Ctrl+Alt+Del)隐藏桌⾯图标⽤Delphi实现禁⽌⽤户关闭Window9X。
启动屏幕保护启动控制⾯板得到当前系统默认的浏览器检测程序是否运⾏改计算机名抓获全屏通过Win.ini⽂件更换壁纸。
永久性改变壁纸监视剪贴板内容将程序加⼊到Windows的启动中打开拨号连接如何为Delphi程序添加事件和事件处理器打开外部应⽤程序关闭外部已开启的应⽤程序把⾃⼰的菜单项加⼊系统菜单其他打开启动菜单更改系统时间得到windows的运⾏时间判断系统是否安装了声卡如何把程序关闭的控制权掌握在⾃⼰⼿⾥写⼀个简单的多线程的程序返回。
delphi十个小技巧1、判断一个字符串是否包含于另外一个字符串的方法例如:if pos('ab','abcd')<>0 thenmessagedlg('ab是包含于abcd',mtConfirmation,[mbYes, mbNo],0);pos(obj,target) 在target字符串中找出第一个出现obj的第一个字符位置,如果找不到,返回0.2、如何使窗口全屏,类似游戏一样,而不是窗口的最大化!(1)BorderStyle 为 bsNone(2)Windowstate 为 wsMaximized(3) 退出时可加一个按钮之类的,写上 close 即可退出。
3、数字格式化输出format('%8.2f',[123.456]),返回字符串'123.46'。
4、播放一个wav文件usemmsystem;SndPlaySound('hello.wav',SND_FILENAME or SND_SYNC);5、InputBox,InputQuery和ShowMessage函数的威力usesdialogs;vars,s1:string;b:boolean;begins:=trim(Inputbox('NewPassword','Password','masterkey'));b:=s<>'';s1:=s;if b then b:=InputQuery('ConfirmPassword','Password',s1);if not b or (s1<>s) thenShowMessage('Password Failed');end;6、几个有关子目录的操作的过程MkDir(str); ChDir(str); GetDir(DriveID,str); SetCurrentDir(str);IOResult --上面几个过程调用成功即返回0值7、将一个可视控件变成图形类型例如将一个带背景的LABEL变成一个TIMAGE图片类型,可以这样做:image1.width:=label1.width;image1.height:=label1.height;label1.perform(WM_PAINT,image1.Canvas.Handle,0);8、如何得到字符的ASCII值得到字符的ASCII值,可以用如下语句:var: a:integer;string1:string;beginstring1:='ABC';a:=byte(string[1]); {此时就得到'A'的ASCII值}end;9、动态更新DBGrid的颜色例如,如果一个城市的人口大于200万,我们就让它显示为蓝色。
位运算简介及实用技巧去年年底写的关于位运算的日志是这个Blog里少数大受欢迎的文章之一,很多人都希望我能不断完善那篇文章。
后来我看到了不少其它的资料,学习到了更多关于位运算的知识,有了重新整理位运算技巧的想法。
从今天起我就开始写这一系列位运算讲解文章,与其说是原来那篇文章的follow-up,不如说是一个remake。
当然首先我还是从最基础的东西说起。
什么是位运算?程序中的所有数在计算机内存中都是以二进制的形式储存的。
位运算说穿了,就是直接对整数在内存中的二进制位进行操作。
比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。
举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理):110AND 1011----------0010 --> 2由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。
当然有人会说,这个快了有什么用,计算6 and 11没有什么实际意义啊。
这一系列的文章就将告诉你,位运算到底可以干什么,有些什么经典应用,以及如何用位运算优化你的程序。
Pascal和C中的位运算符号,下面的a和b都是整数类型,则:C语言 Pascal语言按位与 a & b a and b按位或 a | b a or b异或 a ^ b a xor ba取反 ~a not左移位 a << b a shl b右移位 a >> b a shr b注意C中的逻辑运算和位运算符号是不同的。
520|1314=1834,但520||1314=1,因为逻辑运算时520和1314都相当于True。
同样的,!a和~a也是有区别的。
各种位运算的使用:=== 1. and运算 ===and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位。
[转]Delphi开发的调试技巧Delphi开发的调试技巧1、设置调试选项Delphi主菜单。
【Project】->【Options】,或单击工程管理器中的【Project Options】按钮。
显示Project Options,选择Complier<1>选中 Debug Information :把调试信息嵌入到DCU单元文件,会加大编译后的DCU 文件,但不会影响最后生成的exe的大小和执行速度。
同时激活【Search】菜单中的【FindError】命令。
当文件中包含调试信息并得到一个运行时错误(run-time error),记录下Delphi提供的16进制地址,在【Search】->【Find Error】中输入,Delphi将重新编译程序,并停留在产生错误的命令行。
<2>Local symbols:决定调试器能否看到在Implementation中定义的局部变量。
<3>Reference infoj选项/Definition Only选项是否产生应用程序中对象标识符的引用信息。
信息和对象代码存在dcu文件中,可以使用对象浏览器查看。
如果Definition Only 选项同时选中,编译器将生成标识符定义位置的信息,能够激活对象浏览器的Refenrence页。
如果不选,Dcu文件更小。
编辑器命令{$D} Debug Information{$L} Local Information{$Y} Symbol Information{$C} Assertions2、使用内部调试器<1> 命令行参数在【Run】->【Parameters】中设置<2>断点条件断点使源代码断点只有在满足某个条件时才有效。
在【View】->[Debug windows]->【BreakPoints】打开“BreakPoint List”对话框,右击断点,从弹出菜单中选择属性。
Delphi常用技巧在网上行走时,经常会看到弹出的桌面小窗体,有时做广告,有时向你致以节日的问候;人们称其为桌面小精灵;有的桌面小精灵会自动移动,有的固定在屏幕的某一角落,动画闪烁,煞是迷人。
本人用Delphi 制作了一款桌面小精灵,愿与大家共享。
桌面小精灵的实现功能:当运行时,在屏幕的左下角显示一无边框、无标题栏的小窗体,并自动向屏幕的右上角移动,窗体上的小精灵——可爱的马先生,一会跃起,高呼“马到成功!”,一会含情脉脉地向你招手“再见”;同时,还不断地闪烁显示当前时间,时刻提醒你抓紧时间呦!当你嫌它碍事时,你可以按下鼠标左键,将它拖到任意位置。
如果你厌烦它不停移动,你可以双击鼠标左键,它会老老实实地呆在原地不动,只要你用鼠标轻轻一点,它又会高高兴兴地上路,当你单击“再见”时,桌面小精灵就会消失,你不想一试身手吗?请跟我来!运行后效果图生成一窗体,设置窗体属性如下:Name属性为Form1,BorderStyle属性为bsNone,FormStyle属性为StyOnTop,Height属性值240,Width属性值209。
窗体上分别添加组件,设置属性如下:(1)添加两个Image组件,Name属性分别设为Image1、Image2,Align属性均设为alClient (以使Image 组件充满整个窗体),Image1的Enabled为False,Image2的Enabled为True,然后通过Picture属性为Image1、Image2添加图片(适合的图片格式:BMP、JPG )。
(2)在Image上再添加两个Timer组件,Name属性分别为Timer1、Timer2,Enabled属性均为True,Interval 属性均为1000毫秒。
(3)在Image上再添加一个Label组件,Name:=Label1,Caption:=“马到成功!”,Enabled:=True,Font属性为“华文行楷,粗斜体,三号字,红色”(根据你的图片设置适当的字体、字号、字体颜色)。