社区
语言基础/算法/系统设计
帖子详情
如何在delphi里自定义一个结构?
xiyixiaowm50
2004-11-29 12:01:34
as title
...全文
68
2
打赏
收藏
如何在delphi里自定义一个结构?
as title
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
KAPOK_CSDN
2004-11-29
打赏
举报
回复
同上,
捞点分~
ysai
2004-11-29
打赏
举报
回复
type
Trs = record
a:integer;
b:string;
end;
自定义
的数据文件
结构
类
/*
自定义
的数据
结构
类*/ 知道如何实现
一个
比如星际地图文件之类的
自定义
的文件数据库吗? 知道
Delphi
的接口是如何使用吗? 知道如何让自己保存的数据不让别人偷看和修改吗? 知道如何教好的使用面向对象吗? 知道指针和流应该如何使用吗?如果答案是“N” 的话那么就来看看吧^_^。 -*功能:实现数据的压缩保存 读取 添加 删除 修改 和快速定位和查找*- -*功能:可以用来保存你想保存的任何格式的数据,方便做为自己的配置文件*--*功能:简单的修改一下定意的
结构
体就可以用来保存你想保存的任何格式的数据,方便做为自己的配置文件*--*功能:简单明了的操作接口,利于扩充的对象设计*--*功能:现有功能基本已无BUG 改写注释的地方也都写了*- :(声明:此乃偶学习
DELPHI
个种技术的原创,当然也拿来实际投入使用。本着共同进步的愿望发布偶第
一个
东东。相信对像偶一样的菜菜同志会有一些帮助。加一句~~如是高手轻易勿下,若是下了千万别骂 ~~ 会打击偶呢积极性的):“对了使用Demo的时候 打开
一个
不存在的文件就会创建空数据库 如果已经存在数据库就可以直接选择文件来打开”“留个QQ 22900104 同志们有空多交流说~”/*
自定义
的数据
结构
类*/
DELPHI
MessageBox
自定义
消息框图标〖源代码〗
应用程序在运行当中经常要输出各种即时信息,
Delphi
提供了多种形式的消息对话框可以满足这些要求,尽管可以使用各种标志定制
一个
消息框,但仍不能将自己的图标放在消息框内,也不能修改其标准行为去创建自己的消息框,其实通过调用函数MessageBoxIndirect()就很容易绕过这些明确的限制,这是
一个
功能很强、易于使用的函数。 ---- 此函数在WINDOWS单元
里
面,文件位于
Delphi
安装路径Source\Rtl\Win
里
面,需要指出的是,
Delphi
的原代码中它的返回值类型是BOOL型,而实质上它的返回值应为Integer。修改方法:在WINDOWS单元中找到此函数后,把BOOL改为Integer,共有三处要修改,然后在
Delphi
安装路径Lib中找到WINDOWS.DCU文件,把它改名或者删除,并把修改后的WINDOWS.PAS源码复制到Lib路径中。 ---- 该函数只有
一个
参数,类型是TMsgBoxParams,它的
结构
及说明如下: tagMSGBOXPARAMSA = packed record cbSize: UINT; {数据
结构
的长度} hwndOwner: HWND; {所有者窗口句柄} hInstance: HINST; {应用程序实例句柄} lpszText: PAnsiChar; {在消息框客户区内显示的文本} lpszCaption: PAnsiChar; {标题栏文本} dwStyle: DWORD; {确定消息框内按钮和图符 的数量及种类的MB_标志} lpszIcon: PAnsiChar; {从资源文件中取出的
一个
图符资源的名字} dwContextHelpId: DWORD; {指定帮助文本的ID号} lpfnMsgBoxCallback: TPRMsgBoxCallback; {当用户按下HELP按钮时调用的
一个
回 调函数} dwLanguageId: DWORD; {显示在按钮内文本的语言定义} end; ---- 由于直接使用此函数比较复杂,我们可以
自定义
一个
函数来封装此函数,对它进行简化,在用法上尽量做到与
Delphi
的消息框相一致,
自定义
函数代码如下: function MessageEx (lText,lCaption:PChar; lStyle:DWord;lIcon:PChar):Integer; var Msg:TMsgBoxParams; begin Msg.cbSize:=Sizeof(Msg); Msg.hwndOwner:=Application.Handle; Msg.hInstance:=hinstance; Msg.lpszText:=lText; Msg.lpszCaption:=lCaption; Msg.dwStyle:=lStyle; Msg.lpszIcon:=lIcon; Msg.dwContextHelpId:=1; Msg.lpfnMsgBoxCallback:=nil; Msg.dwLanguageId:=LANG_NEUTRAL; Result:=MessageBoxIndirect(Msg); end; ---- 要想在消息框中显示自己的图标,先准备
一个
装有图标的资源文件,加在程序中,如{$R c:\mydir\myres.res},在lStyle参数
里
除了所需的MB_标志外还要加上MB_USERICON标志,并在最后
一个
参数
里
写上资源文件中图标的名字,如果不想使用
自定义
的图标,可将最后
一个
参数设为nil。函数的其它用法和返回值的处理与
Delphi
提供的消息框一样。 ---- 强烈建议把
自定义
函数放在
一个
单元文件
里
,并把此文件放在
Delphi
的搜索路径如Lib下,以后只需要把此单元加在uses语句
里
,就可以直接使用
自定义
函数,非常方便。
Delphi
7 编程 100 实例
ToolBar工具栏控件的使用动态建立主菜单选项窗口界面的动态分隔条动态设置选项卡页面在标题栏中
自定义
按钮窗体开合窗帘效果Windows XP界面效果实现OutLook滚动工具栏效果在下拉列表框中显示树形视图
自定义
系统的About项修改系统级菜单实现透明窗体效果爆破特技窗体只允许建立一次子窗体的MDI程序从外部DLL中调用子窗口新颖的资源管理器界面如何生成半圆形窗口制作字幕滚动窗体详解Canvas生成渐变色窗口背景WINAPM风格磁化窗口软件封面的图片显示制作实现图片的任意角度旋转奇妙的拼图游戏使用PaintBox控件制作画图程序使用DrawGrid控件制作五子棋多彩的数据报表按压缩比将BMP转换为JPG16位真彩转换到256色调整图片的RGB对比度实现图像的灰度级处理效果3种像素历遍方法的比较和实现实现屏幕拷贝实现图像漫游4种幕布式图像显示技巧盘旋法实现9种滤镜效果图形朦胧叠合显示技巧给MDI主窗体增加背景实现图像的淡入淡出显示多媒体播放器播放AVI文件根据客户端IP地址获取计算机名实现多线程IP和DomainName相互转换Windows2000下的Popup发送功能如何实现Ping操作实现多线程共享探测实现Windows95/98的I/O端口读写收发电子邮件与监视网络服务器资源使用WebBrower制作浏览器可视化的Ping工具使用IdMappedPortTCP进行端口映射动态设置ODBC数据源用ADO控件打开Access数据库DBGrid中的记录到Html页面的转换在DBGrid中实现任意方向查找在DBGrid中通过动态下拉列表查找记录用DBGrid组件制作下拉列表形式的提示框利用书签处理DBGrid中的多个记录将ComboBox中的内容直接拖放到DBGrid
里
如何在DBGrid
里
放置图标DBGrid控件精彩组合DBChart图表控件的使用在StringGrid组件中显示查询结果使用流对象(Tstream)实现数据表中Tmemo字段的显示如何动态建立SQLServer ODBCSQL浏览器在SQL查询中使用动态参数事务工作原理标准/模糊查询筛选数据数据字典查看器TDecisionGraph决策组件的使用明细表(Master/Detail)
结构
像处理文本资料一样处理数据表中的信息远程数据库登录远程数据库的离线处理在远程数据库中实现主从表关系动态设置远程数据库的查询参数在远程数据库中计算统计值多线程与数据库使用远程存储过程数据模块的同步显示建立Web服务的数据提供端建立Web服务的数据访问端开发WebSnap数据库程序建立ActiveForm数据浏览建立数据查询WebServices服务器端数据查询Web服务客户端开发基于WAP的手机无线应用建立基本Web数据库服务器应用建立类型库编辑DataSnap服务端建立查询条件Web数据库服务器应用建立基本MTS服务端建立MTS数据访问客户端建立IntraWeb数据浏览将程序图标设置到Windows系统托盘取得和修改文件的创建和修改日期通过流式数据实现文件分割与合并实现指定扩展名文件和相应程序的关联获取汉字拼音的首字母监视剪贴板在IE工具栏上增加
一个
按钮图标软件注册机制的建立复活节彩蛋的制作SkinEngine控件——XP换肤ActionList——应用程序通用功能列表OleContainer——OLE容器将程序项设置到控制面板艺术化排列桌面图标
Delphi
中的ini文件的读写建立键盘鼠标动作记录与回放实现指定目录下的文件查询实现对系统的操作监视系统级热键的实现检测NumLock、Insert、CapsLock、ScrollLock键的状态
在
Delphi
中定义自己图标的消息框〖源代码〗
应用程序在运行当中经常要输出各种即时信息,
Delphi
提供了多种形式的消息对话框可以满足这些要求,尽管可以使用各种标志定制
一个
消息框,但仍不能将自己的图标放在消息框内,也不能修改其标准行为去创建自己的消息框,其实通过调用函数MessageBoxIndirect()就很容易绕过这些明确的限制,这是
一个
功能很强、易于使用的函数。 ---- 此函数在WINDOWS单元
里
面,文件位于
Delphi
安装路径Source\Rtl\Win
里
面,需要指出的是,
Delphi
的原代码中它的返回值类型是BOOL型,而实质上它的返回值应为Integer。修改方法:在WINDOWS单元中找到此函数后,把BOOL改为Integer,共有三处要修改,然后在
Delphi
安装路径Lib中找到WINDOWS.DCU文件,把它改名或者删除,并把修改后的WINDOWS.PAS源码复制到Lib路径中。 ---- 该函数只有
一个
参数,类型是TMsgBoxParams,它的
结构
及说明如下: tagMSGBOXPARAMSA = packed record cbSize: UINT; {数据
结构
的长度} hwndOwner: HWND; {所有者窗口句柄} hInstance: HINST; {应用程序实例句柄} lpszText: PAnsiChar; {在消息框客户区内显示的文本} lpszCaption: PAnsiChar; {标题栏文本} dwStyle: DWORD; {确定消息框内按钮和图符 的数量及种类的MB_标志} lpszIcon: PAnsiChar; {从资源文件中取出的
一个
图符资源的名字} dwContextHelpId: DWORD; {指定帮助文本的ID号} lpfnMsgBoxCallback: TPRMsgBoxCallback; {当用户按下HELP按钮时调用的
一个
回 调函数} dwLanguageId: DWORD; {显示在按钮内文本的语言定义} end; ---- 由于直接使用此函数比较复杂,我们可以
自定义
一个
函数来封装此函数,对它进行简化,在用法上尽量做到与
Delphi
的消息框相一致,
自定义
函数代码如下: function MessageEx (lText,lCaption:PChar; lStyle:DWord;lIcon:PChar):Integer; var Msg:TMsgBoxParams; begin Msg.cbSize:=Sizeof(Msg); Msg.hwndOwner:=Application.Handle; Msg.hInstance:=hinstance; Msg.lpszText:=lText; Msg.lpszCaption:=lCaption; Msg.dwStyle:=lStyle; Msg.lpszIcon:=lIcon; Msg.dwContextHelpId:=1; Msg.lpfnMsgBoxCallback:=nil; Msg.dwLanguageId:=LANG_NEUTRAL; Result:=MessageBoxIndirect(Msg); end; ---- 要想在消息框中显示自己的图标,先准备
一个
装有图标的资源文件,加在程序中,如{$R c:\mydir\myres.res},在lStyle参数
里
除了所需的MB_标志外还要加上MB_USERICON标志,并在最后
一个
参数
里
写上资源文件中图标的名字,如果不想使用
自定义
的图标,可将最后
一个
参数设为nil。函数的其它用法和返回值的处理与
Delphi
提供的消息框一样。 ---- 强烈建议把
自定义
函数放在
一个
单元文件
里
,并把此文件放在
Delphi
的搜索路径如Lib下,以后只需要把此单元加在uses语句
里
,就可以直接使用
自定义
函数,非常方便。
Delphi
5 经典教程
第一部分 快速开发的基础 第1章
Delphi
5下的Windows编程 1 1.1
Delphi
产品家族 1 1.2
Delphi
是什么 3 1.2.1 可视化开发环境 3 1.2.2 编译器的速度和已编译代码的效 率 4 1.2.3 编程语言的功能及其复杂性 4 1.2.4 数据库
结构
的灵活性和可扩展性 5 1.2.5 框架对设计和使用模式的扩充 5 1.3 历史回顾 5 1.3.1
Delphi
1 5 1.3.2
Delphi
2 6 1.3.3
Delphi
3 6 1.3.4
Delphi
4 7 1.3.5
Delphi
5 7 1.3.6 未来 7 1.4
Delphi
5的IDE 7 1.4.1 主窗口 8 1.4.2 窗体设计器 9 1.4.3 Object Inspector 9 1.4.4 代码编辑器 9 1.4.5 代码浏览器 10 1.4.6 源代码生成器 10 1.5 创建
一个
简单的应用程序 11 1.6 事件机制的优势在哪
里
12 1.7 加速原型化 13 1.8 可扩展的组件和环境 13 1.9 IDE最重要的十点功能 13 1.10 总结 15 第2章 Object Pascal语言 16 2.1 注解 16 2.2 新的过程和函数特征 17 2.2.1 圆括号 17 2.2.2 重载 17 2.2.3 缺省值参数 17 2.3 变量 18 2.4 常量 19 2.5 运算符 20 2.5.1 赋值运算符 20 2.5.2 比较运算符 20 2.5.3 逻辑表达式 21 2.5.4 算术运算符 21 2.5.5 按位运算符 22 2.5.6 加减运算过程 22 2.6 Object Pascal类型 23 2.6.1 类型的比较 23 2.6.2 字符 24 2.6.3 字符串 24 2.6.4 变体类型 32 2.6.5 Currency 39 2.7 用户
自定义
类型 39 2.7.1 数组 39 2.7.2 动态数组 40 2.7.3 记录 41 2.7.4 集合 42 2.7.5 对象 43 2.7.6 指针 44 2.7.7 类型别名 46 2.8 强制类型转换和类型约定 46 2.9 字符串资源 47 2.10 测试条件 47 2.10.1 if语句 47 2.10.2 case语句 48 2.11 循环 49 2.11.1 for循环 49 2.11.2 while循环 49 2.11.3 repeat...until 50 2.11.4 Break()过程 50 2.11.5 Continue()过程 50 2.12 过程和函数 50 2.13 作用域 50 2.14 单元 55 2.14.1 uses子句 55 2.14.2 循环单元引用 56 2.15 包 56 2.15.1 使用
Delphi
的包 56 2.15.2 包的语法 56 2.16 面向对象编程 57 2.17 使用
Delphi
对象 58 2.17.1 声明和实例化 58 2.17.2 析构 59 2.18 方法 59 2.18.1 方法的类型 60 2.18.2 属性 61 2.18.3 可见性表示符 62 2.18.4 友类 62 2.18.5 对象的秘密 63 2.18.6 TObject:所有对象的祖先 63 2.18.7 接口 63 2.19
结构
化异常处理 66 2.19.1 异常类 68 2.19.2 执行的流程 70 2.19.3 重新触发异常 71 2.20 运行期类型信息 72 2.21 总结 72 第3章 Win32 API 73 3.1 对象:以前和现在 73 3.1.1 内核对象 73 3.1.2 GDI和用户对象 75 3.2 多任务和多线程 75 3.3 Win32内存管理 76 3.3.1 什么是线性内存模式 76 3.3.2 Win32系统是怎样管理内存的 76 3.4 Win32的错误处理 78 3.5 总结 78 第4章 应用程序框架和设计 79 4.1 理解
Delphi
环境和项目的体系
结构
79 4.2 构成
Delphi
5项目的文件 79 4.2.1 项目文件 80 4.2.2 单元文件 80 4.2.3 窗体文件 8
语言基础/算法/系统设计
16,748
社区成员
33,247
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章