Delphi编程技巧点滴

本贴收藏本人编程中遇到的点滴编程技巧,其中包括网友告知的,论坛收集的及个人总结的。大部分来自爱Delphi(http://www.aidelphi.com)与CSDN。整理于此,以备后用。

1、序数类型(或变量)的取值范围
        Delphi Help中提到“Ordinal types include integer, character, Boolean, enumerated, and subrange types.”也就是说,序数类型包括整数,字符,布尔,枚举和子域类型。要知道它的取值范围,可以使用Low与High两个函数。但Low与High函数的返回结果一般就是所传参数类型的最大值,所以还要使用Ord函数将其转换为整形。如: ShowMessage(IntToStr(Ord(High(char)))); 结果是255。

2、覆盖重写控件属性
        在编写控件时,如果要用父类已经存在的属性的名称定义一个新的属性,也就是重新定义父类已经存在的属性,使其有不同的类型,产生不同的作用。如:
type
  TMyPanel = class(TCustomPanel)
  private
    FAlignment: Integer;    // 将父类的Alignment属性由TAlignment类型改为Integer类型。
    private SetAlignment(Value: Integer);
  public
    property Alignment: Integer read FAlignment write SetAlignment;
  end;

implementation

procedure TMyPanel.SetAlignment(Value: Integer);
begin
  if (Value >= ord(Low(FAlignment))) and (Value <= Ord(High(FAlignment)))
    and (Value <> FAlignment) then
  begin
    FAlignment:= Value;
    Inherited Alignment:= TAlignment(FAlignment);   // 调用父类的Alignment.
  end;
end;

{ 本技巧感谢艾真保的热心解答 }

3、使用回车代替Tab键
        使用回车代替Tab键移动焦点的又一方法:
procedure TfrmEditBase.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = 13 then
  begin
    if Shift = [ssShift] then
      Perform(WM_NEXTDLGCTL, 1, 0)  // 往回移
    else
      Perform(WM_NEXTDLGCTL, 0, 0);  // 往后移
  end;
end;

4、在程序中运行别的程序
        在很多情况下,如在线更新,需要运行额外的程序来完成一些任务,且多数时候这些任务是直接或间接地操作程序自身的。这时要注意,运行了额外程序之后要及时正确地退出程序本身,这里的“退出”就不能正常的使用MainForm.Close来完成了,因为这样的话,程序会等待额外程序运行并返回后才会退出,如果是在线更新,则程序本身就因为共享冲突而更新失败。所以要用halt过程不正确的终止程序才行,必要时还要使用ChDir()函数改变当前目录,以免该程序还在占用该目录,导致某些任务执行失败。

5、Directory与Path
        按照中文直译过来,Directory就是目录,Path是路径。从以下两个例子可以看出来:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(ExtractFilePath(Application.ExeName));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage(ExtractFileDir(Application.ExeName));
end;
        在Delphi6中建立一个默认的Windows Application,运行上述代码,则显示依次如下:
C:/Program Files/Borland/Delphi6/Projects/
C:/Program Files/Borland/Delphi6/Projects
        很明显,Path比Directory多了一个“/”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
不规则窗口的建立(字体窗体) 在Delphi中自动检测、建立数据库别名和表格 用Delphi制作留言板 用DEPHI 3.0实现动画ABOUT窗口 在DELPHI中处理时间 如何为Delphi程序添加事件和事件处理器 在DELPHI程序中使用ADO对象存取ODBC数据库 轻轻松松在DELPHI3.0中实现三态按钮 Api函数列表【与文件有关】 Api函数列表【与打印有关】 Delphi中TApplication类的巧用 Delphi 中自做动态显示的控件 DELPHI 中 自 适 应 表 单 的 实 现 在Delphi 中 利 用 Tbatch 组 件 如何在注册表中注册BDE 如何在标题栏上增加按钮 CGI技术及其开发(一) CGI技术及其开发(二) 用Delphi实现壁纸更换 在Delphi中获取和修改文件的时间 任何动态改变/添加网络设置中的 TCP/IP 的 DNS 地址 让彩色光标出现在Delphi程序中 面向组件的系统开发方法 COM/DCOM中如何传递数组 COM/DCOM的区别与联系 定制Delphi应用程序的系统菜单 Delphi 3中Cookie的建立使用 一 个 实 用 的Delphi 屏 幕 拷 贝 程 序 的 设 计 用Delphi制作动态菜单 用Delphi进行OpenGL编程学习心得 开 发 基 于ORACLE7 数 据 库 的 管 理 信 息 系 统 用Delphi 实 现 自 定 义 颜 色 对 话 框 及 其 构 件 Delphi自定义消息应用一例 自 定 义 快 速 报 表 的 打 印 预 览 窗 口 如何把文件删除到回收站中 在Delphi与C 之间实现函数与对象共享 编 译 错 误 信 息 DELPHI AND THE INTERNET by Charlie Calvert [1] DELPHI AND THE INTERNET by Charlie Calvert [2] Delphi之快速设计(程序设计篇) Delphi之快速设计(界面设计篇) 在DELPHI2.0/3.0中直接操作端口 开 发AS/400 应 用 系 统: PB5 与Delphi3 的 比 较 检查驱动器是否就绪 在Delphi应用程序中拖动控件 用修改文件时间的方法来加密文件 资 源 文 件 在DELPHI 中 的 使 用 怎样建立简单的任务栏应用程序 控 制 系 统 菜 单 用Dephi 程 序 维 护Paradox 数 据 表 的 索 引 用Delphi实现无边界窗体的移动 Delphi函数参考手册
delphi经典编程入门.chm 第一章 Delphi快速入门(一)   第一章 Delphi快速入门(二)   第一章 Delphi快速入门(三)   第一章 Delphi快速入门(四)   第一章 Delphi快速入门(五)   第二章 Delphi面向对象的编程方法(一)   第二章 Delphi面向对象的编程方法(二)   第二章 Delphi面向对象的编程方法(三)   第二章 Delphi面向对象的编程方法(四)   第三章 字符串列表及应用(一)   第三章 字符串列表及应用(二)   第四章 文本编辑器的设计(一)   第四章 文本编辑器的设计(二)   第五章 Delphi图形图像编程(一)   第五章 Delphi图形图像编程(二)   第六章 文件管理(一)   第六章 文件管理(二)   第六章 文件管理(三)   第七章 剪贴板和动态数据交换(一)   第七章 剪贴板和动态数据交换(二)   第八章 对象链接与嵌入(一)   第八章 对象链接与嵌入(二)   第九章 Delphi拖放编程   第十章 动态链接库编程(一)   第十章 动态链接库编程(二)   第十一章 Delphi应用程序的应用(一)   第十一章 Delphi应用程序的应用(二)   第十二章 异常处理与程序调试(一)   第十二章 异常处理与程序调试(二)   第十二章 异常处理与程序调试(三)   第十三章 Delphi开发数据库应用程序概述(一)   第十三章 Delphi开发数据库应用程序概述(二)   第十四章 简单数据库应用的创建及MASTAPP介绍(一)   第十四章 简单数据库应用的创建及MASTAPP介绍(二)   第十四章 简单数据库应用的创建及MASTAPP介绍(三)   第十五章 数据访问部件的应用及编程(一)   第十五章 数据访问部件的应用及编程(二)   第十五章 数据访问部件的应用及编程(三)   第十六章 数据浏览部件的应用及编程(一)   第十六章 数据浏览部件的应用及编程(二)   第十七章 SQL编程(一)   第十七章 SQL编程(二)   第十八章 Delphi客户服务器应用开发(一)   第十八章 Delphi客户服务器应用开发(二)   第十八章 Delphi客户服务器应用开发(三)   第十八章 Delphi客户服务器应用开发(四)   第十九章 Delphi自定义部件开发(一)   第十九章 Delphi自定义部件开发(二)   第十九章 Delphi自定义部件开发(三)   第十九章 Delphi自定义部件开发(四)   第二十章 开发Delphi对象式数据管理功能(一)   第二十章 开发Delphi对象式数据管理功能(二)   第二十章 开发Delphi对象式数据管理功能(三)   第二十章 开发Delphi对象式数据管理功能(四)   第二十章 开发Delphi对象式数据管理功能(五)
目录清单:  01界面设计           制作一个屏幕保护程序           制作一个漂亮的VCD播放器           制作几何形状的窗体           制作桌面小精灵           制作相框           实现带阴影效果的画框           给Memo组件的显示区域加边框  02系统设置           一个托盘程序           如何实现目录的复制、删除和移动           如何改换壁纸和启动、关闭屏保           文件管理器           格式化磁盘           获取Windows、System和Temp目录           获取文件日期信息           获取驱动器信息           重启或关闭计算机           隐藏任务栏和桌面图标  03硬件访问与控制           实例1-获取和设置显示器模式           实例10 两种不同的方法获取端口信息           实例2-电源电池信息           实例3-内存状态信息           实例4-CPU型号信息           实例5-硬盘和光盘的操作           实例6-获取不同的声音播放设备           实例7-键盘相关设置           实例8-鼠标相关设置           实例9-从注册表中读取各类硬件信息  04控件应用           LISTBOX控件的折行显示           在控件中添加消息处理           将系统中的com接口包装为控件           带背景图的标签           我的资源管理器           打造自己的文件分割器           编写一个滚动提示控件           自制邮件发送客户端  05文件操作           Delphi中的INI文件编程           删除或移动正在使用的文件           如何在Delphi中操作Excel           实现应用程序的文件拖放功能           将EXE文件转换成SWF文件           将SWF文件转换成EXE文件           文件捆绑           统计中英文字个数  06图形图像多媒体           实例一--艺术字效果           实例七---photoshop图层效果           实例三---图象效果处理           实例九---在IntraWeb中显示图片数据           实例二--渐变色和动画矩形效果           实例五--编织带           实例八--动画屏保           实例六--镜框效果           实例十--matlab结合           实例十--电子地图开发之GIS组件--Mapobject深入开发           实例四---scanline属性  07数据库应用           实例1  Session获取BDE信息           实例10   决策图的使用           实例11  ThreadedIBX           实例2  可视化创建数据表格           实例3  SQL语句的使用           实例4  “一对多表”的设计           实例5   文本和数据记录的转换           实例6 利用ADO的从SQL Server 2000中读取数据           实例7  多媒体数据库的使用           实例8  IntraWeb技术的实现           实例9  Rave报表的数据库使用  08网络与通讯           实例一 用DELPHI实现网络信使服务           实例七 NetClock           实例三 断点续传           实例二 升级精灵           实例五 网络文件传输           实例六 Ping           实例四 邮件群发  09趣味游戏           实例1--小狗过桥游戏           实例10--深入opengl游戏           实例2--键盘练习           实例3--字母拼图游戏           实例4--乒乓球           实例5-6--打地鼠---2个部分           实例7-8--扫雷--2个部分           实例9--一个简单的opengl游戏
目录: 1 Uppas40.htm Delphi 4增訂的Object Pascal 19K 2 Api_printer.htm Api函数列表-与打印有关 30K 3 Autocreate.htm 在Delphi3程序中自动检测、建立数据库别名 7K 4 Autoxize.htm DELPHI中自适应表单的实现 3K 5 Bat.htm 在Delphi中利用Tbatch组件完成数据批处理 5K 6 Bde.htm 如何在注册表中注册BDE 2K 7 Bjjlb.htm Delphi编辑俱乐部 4K 8 Cgi_1.htm CGI技术及其开发 11K 9 Cgi_2.htm CGI技术及其开发(二) 12K 10 Chang_backmap.htm 用Delphi实现壁纸更换 3K 11 Change_ip_dns.htm 任何动态改变/添加网络设置中的 TCP/IP 的 DNS 地址 1K 12 Colorcour.htm 让彩色光标出现在Delphi程序中 2K 13 Compon_mk.htm 面向组件的系统开发方法 2K 14 Comtech.htm COM/DCOM如何传递数组 2K 15 Comvsdcom.htm COM/DCOM的区别与联系 2K 16 Cookite.htm Delphi 3中Cookie的建立使用 6K 17 Copy_screen.htm 一个实用的Delphi屏幕拷贝程序的设计 11K 18 Create_oracle7.htm 开发基于ORACLE7数据库的管理信息系统 9K 19 Cs_fast.htm 提高客户机/服务器应用系统性能的一些方法 8K 20 Def_color_dlg.htm 用Delphi实现自定义颜色对话框及其构件 12K 21 Def_preview.htm 自定义快速报表的打印预览窗口 6K 22 Delete.htm 如何把文件删除到回收站中 1K 23 Delphi_c.htm 在Delphi与C++之间实现函数与对象共享 7K 24 Delphi_err.htm Delphi编译错误中文手册 34K 25 Delphi_net1.htm DELPHI与INTERNET 34K 26 Delphi_net2.htm DELPHI与INTERNET 46K 27 Delphi_quick_develop.htm Delphi之快速设计(程序设计篇) 8K 28 Delphi_quick_develop2.htm Delphi之快速设计(界面篇) 3K 29 Delphi23_io.htm 在DELPHI2.0/3.0中直接操作端口 3K 30 Delphivspb.htm 开发AS/400应用系统PB5与Delphi3的比较 9K 31 Device_isok.htm 检查驱动器是否就绪 1K 32 Dtccw03.htm 资源文件在DELPHI中的使用 10K 33 Dttray.htm 如何创建任务栏的应用程序 11K 34 Edit_sysmenu.htm 控制系统菜单 3K 35 Fix_sybase.htm 如何恢复Sybase SQL Anywhere的数据库 4K 36 Fixsysbase_in.htm 解决sybase用户数据库不能进入故障的一种方法 5K 37 From_move.htm 用Delphi实现无边界窗体的移动 3K 38 Function.htm 部分函数、命令、属性中文说明 13K 39 Get_form.htm Win95/98下监控运行的其他程序 2K 40 Get_info.htm 使用Delphi获取系列信息 3K 41 Get_net_friend.htm 如何在程序中动态取得Win95/98的网络邻居中的工作组及计算机名 12K 42 H_sort.htm 在DELPHI中用线程排序 4K 43 Happymouse.htm 用Delphi编制趣味动画鼠标 3K 44 Hint.htm 改造HINT的输出方式 5K 45 Howto_chinese_delphi.htm "Delphi之完全汉语"终结版 6K 46 If.htm Delphi数据集过滤技巧 4K 47 Img.htm Delphi下汉字输入法的编程及使用 5K 48 Index_notf.htm 怎样解决打开一个DBF表时的"Index not found.."错误 3K 49 Install.htm 如何制作Delphi程序安装盘 7K 50 Ip
Delphi程序员经验点滴桌面、网络编程实例集锦》王小华 编著北京希望电子出版社兵器工业出版社目录:第一章 Pascal语言基本功第二章 控件的应用与改造第三章 应用程序与窗口第四章 系统第五章 应用程序的安装与卸载第六章 剪贴板第七章 文件与目录第八章 画布与图形图像第九章 打印第十章 动态链接库dll第十一章 注册表第十二章 内存与字符串第十三章 OLE与DDE第十四章 数据库第十五章 多媒体第十六章 网络 光盘内容及其使用__________________________________________________________________目录内容及使用方法: 本光盘提供了本书实例工程文件的源代码。本光盘包括以下内容: \02 ~ \16 提供了本书02章~16章实例工程文件的源代码__________________________________________________________________特别声明:本光盘中的图片、影像等素材文件仅可作为学习和欣赏之用,未经许可不得用于任何商业等其他用途。__________________________________________________________________联系信息及技术支持:作者(技术支持及相关问题探讨)姓 名:王小华电子邮件:mail@net9999.com关于本书的相关技术支持和软件问题请发电子邮件mail@net9999.com寻求帮助。_________________________________________________________________北京希望电子出版社技术支持:(010)82671627 王守刚 (010)62978181转技术部地 址:海淀区上地三街9号金隅嘉华大厦 C-610 (邮编 100085)邮政地址:北京中关村083信箱邮 编:100080网上书店:www.bhp.com.cn电子邮件:TBD@BHP.com.cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值