[精选推荐]Delphi BS程序设计技巧集(--)
Delphi2005 BS程序设计技巧集(29-33)

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程序设计教程_第2章_Object_Pascal语言基础

8. 数组类型 数组是具有一组固定类型的元素的集合,数组中 的每个元素都可以通过数组名和下标来存取。现在 Delphi支持动态数组,也就是说数组可以动态分配存 储空间。 ⑴ 静态数组 所谓静态数组就是定义后,其大小不再改变的数 组,定义的语法形式为: <数组标识符>=ARRAY [下标类型] OF <元素类型>
第2章 Object Pascal语言基础
在Delphi中采用的是Object PASCAL语言,这是一
种结构化编程语言。
退出
2.1 字符集和符号 2.2 常量和变量
2.3 表达式
2.4 语句
2.5 作用域
2.6 过程与函数
2.7 类
2.8 输入与输出
2.9 异常事件的处理
2.10 程序单元
2.1 字符集和符号
· 空白(Blanks):空格字符(ASCII码值为32)和所 有不可见的ASCII控制字符(ASCII码值为0~31),其中 回车符的ASCII码为13 · 特殊字符(Special):+、-、*、/、^、:、;、'、 #、$和@
· 关系运算符:=、<>、>、<、>=和<= · 赋值运算符::= · 子界运算符:..
6. 实数类型 实数(Real)类型表示不同格式的浮要占用大量的CPU资源,运算速度也 低于整型等有序类型。
Delphi中支持六种类型的实数。
适用于实数类型的运算符有: 算术运算:+、-、*、/ 关系运算:=、<>、<、>、<=、>=
2.1.2 标识符 标识符用来表示常数、常量、字段、类型、属性、
过程、函数、程序、单元、库、包和记录中的域等。
Delphi教程(完整版)

Delphi作为一种可视化的编程环境,经 历了7代产品的发展历程: ◆ Borland公司在1995年推出了基于 Windows平台的Delphi 1。 ◆ Delphi 2新增加的主要功能是对32位编 程的支持。还增加了如数据模块等多种高 效的数据重用功能。
Delphi教程(完整版)
Delphi7组件板包含了350多个组件,是 Delphi可视化编程的核心部件,它由27个选 项卡组成 组件面板如图1-4所示
图1-4 Delphi 7的组件面板
包含了IDE中安装的所有的VCL组件和 ActiveX组件 将组件板上的组件添加到窗体上的三种方法: ①单击组件板上的所需组件的按钮,然后在窗 体适当位置拖动鼠标画出组件,即可将组件 添加到窗体的指定位置上
对象观察器类包括Properties选项卡和 Events选项卡
Delphi教程(完整版)
下图两个对象观察器,左边一个按种类排序, 右边一个按名字排序。
图1-5 按种类或名称查看Object Inspector
注意:帮助系统是和对象观察器紧密结合在一 起的,想了解某个属性或事件的帮助信息, 只要在该属性或事件上按下F1 键
var Form1: TForm1;
implementation {$R *.dfm} end.
Delphi教程(完整版)
从上述源代码清单中可以看出,窗体对象 是从TForm继承下来的。
下面这一行非常重要:
{$R*.dfm}
Pascal语言中的$R指令用于加载一个外部 资源文件。*.dfm文件中包含在窗体设计器中 创建的表单的二进制代码。其中的“*” 表示 与当前单元文件同名的文件。
Delphi教程(完整版)
◆Delphi 3对其组件库进行增强 ,完全支持 ActiveX组件及其创建 。
delphi编程妙招集合

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十个小技巧

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万,我们就让它显示为蓝色。
delphi 位运算简介及实用技巧

位运算简介及实用技巧去年年底写的关于位运算的日志是这个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开发的调试技巧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常用技巧在网上行走时,经常会看到弹出的桌面小窗体,有时做广告,有时向你致以节日的问候;人们称其为桌面小精灵;有的桌面小精灵会自动移动,有的固定在屏幕的某一角落,动画闪烁,煞是迷人。
本人用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属性为“华文行楷,粗斜体,三号字,红色”(根据你的图片设置适当的字体、字号、字体颜色)。
Delphi--第三章 Delphi基本程序设计
选择结构
例:编写一个程序,用于判断输入的年份是不是闰年. 编写一个程序,用于判断输入的年份是不是闰年. 是闰年的条件必须满足下列条件之一: 注:是闰年的条件必须满足下列条件之一: (1) 能被 整除,但不能被 能被4整除 但不能被100整除的年份; 整除, 整除的年份; 整除的年份 (2) 能被 能被400整除的年份. 整除的年份. 整除的年份
过程与函数
Delphi中 有许多预先定义好的子程序,它们统称为运行库. Delphi中,有许多预先定义好的子程序,它们统称为运行库. Object Pascal也允许程序员自己定义子程序.子程序的引 Pascal也允许程序员自己定义子程序. 也允许程序员自己定义子程序 降低了程序的复杂性.编写子程序还可以提高代码的重 入,降低了程序的复杂性.编写子程序还可以提高代码的重 用率.子程序实现的功能相对独立.如此, 用率.子程序实现的功能相对独立.如此,将大大提高程序 编写和维护的效率. 编写和维护的效率. Pascal的子程序分为两种 过程(procedure) 的子程序分为两种: Object Pascal的子程序分为两种:过程(procedure)和函 function).过程和函数都是实现一定功能的语句块, ).过程和函数都是实现一定功能的语句块 数(function).过程和函数都是实现一定功能的语句块, 可被其他模块调用,也可自身进行递归调用. 可被其他模块调用,也可自身进行递归调用.过程和函数的 返回值, 区别主要在于过程本身没有返回值 而函数有一个返回值. 区别主要在于过程本身没有返回值,而函数有一个返回值.
选择结构
注意: 选择表达式>的值必须是顺序类型(如整型, 注意:<选择表达式>的值必须是顺序类型(如整型,字符 布尔型,子界型等). 型,布尔型,子界型等). 情况常量表>中的值应该是<选择器表达式> <情况常量表>中的值应该是<选择器表达式>可能具 有的值,各常量之间用逗号分隔. 有的值,各常量之间用逗号分隔.所有常量表中的 值必须互不相同. 值必须互不相同. 语句>可以是简单语句,也可以是复合语句. <语句>可以是简单语句,也可以是复合语句. 教材例题. 例:教材例题. 修改成绩判断题,根据成绩按"优秀" 良好" 例:修改成绩判断题,根据成绩按"优秀","良好", 中等" 及格" 不及格"等输出. "中等","及格"和"不及格"等输出. 思考题:输入两个整数,分别代表年, 输出该月的天数. 思考题:输入两个整数,分别代表年,月,输出该月的天数. 提示:注意闰年的情况.) (提示:注意闰if...then...else语句 (2) if...then...else语句 语句A 语句B 语法: 语句1 语法:if 表达式 then 语句1 语句2 else 语句2 ; 注意: 在语句1末尾(else之前 不能加分号. 之前) 注意:1,在语句1末尾(else之前)不能加分号. else的配对 的配对. 2,else的配对. If 条件表达式 then if 条件表达式 then 语句11 语句11 语句12 Else 语句12 else要与第一个if配对 要与第一个if配对, 若else要与第一个if配对,则应改为 语句11 If 条件表达式 then begin if 条件表达式 then 语句11 end 语句12 Else 语句12
第4章Delphi程序设计基本方法PPT课件
例如:
'BORLAND' {表示字符串“BORLAND” } 'You’ll see'{表示字符串“ You'll see” } '''{表示字符串“'”} ''{空串} ' '{表示一个空格}
《Delphi数据库基础》
清华大学出版社 4.2变量与常量
变量是用来存储数据的命令区域,是在 运行时可以改变其值的标识符。一般来说, 常量是在运行时不改变值的标识符,也不 需要专门的存储数据区域。这里介绍一下 变量及常量的概念及定义。由于变量及常 量与数据类型密切相关,因此具体的使用 在后面还要介绍。
《Delphi数据库基础》
清华大学出版社
标识符
标识符是用来表示常量、变量、域、类型、特性、 过程、函数、程序单元、库以及包等语法成分的名称。 标识符可以是任何长度,但只有最前面的255个字符 有效。标识符只能以字母或下划线(“_”)开始,第 一个字符之后可以是数字、字母或下划线,但不能包 含空格。保留字不能用作标识符。
《Delphi数据库基础》
清华大学出版社
特殊字符 特殊字符既不是字母,也不是阿拉伯数字,它
是一些有固定意义的字符的组合。包括:“#”、 “$”、“&”、“'”、“(”、“)”、“*”、“+”、 “,”、“?”、“.”、“/”、“:”、“;”、“<”、“=”、 “>”、“@”、“[”、“]”、“^”、“{”、“}” 以及 下列字符的组合:“(*”、“(.”、“*)”、“.)”、 “..”、“//”、“:=”、“<=”、“>=”、“< >”。 注意:“ !”、“"”、“ %”、“?”、“ \”、“ _”、“ |”、 “~”不是特殊字符。