Delphi开发经验四则

计算机软考程序员常考知识点(3) 在VB中,除数为0、数组下标越界、打开的文件找不到等都会造成运行错误,命令 拼写错误不会造成运行错误。   软件测试作为软件工程的一个阶段,它的根本任务是保证软件的质量。   计算机程序设计员的职业道德修养,主要是在职业责任、职业纪律、职业情 感以及职业能力的修养。   以设计“学生成绩管理系统”为例,在“个人成绩”和“班级成绩排名”模 块中,都需要求一个学生成绩的平均分,为此可将“求平均分... 阅读详情
作者:高素梅

  配置数据引擎(BDE、SQL Link)的简单方法

  在数据库程序分发时,需要携带数据引擎(BDE、SQL Link),并且在客户端安装完程序后还需要配置数据引擎,如用户名(username)、密码(Password)等等。如果手工配置的话,工作量比较大,这时,我们可利用InstallShield For Delphi轻松实现配置。在用InstallShield For Delphi制作安装程序时,在生成安装程序的目录里有一个*.iwz的文本文件,只要在[IDAPI Alias]片段中手工加入即可。 例如:

  [IDAPI Alias]

  username=SYSDBA

  password=masterkey

  安装程序后数据引擎自动配置完毕。

  制做快速按钮条的方法

  快速按钮条上的每一个图形按钮都代表着一项常用的功能,同时,这些图形按钮尺寸较普通的图标大,可以放置更大、更形象的图形,甚至可以带上简短的提示,这对于用户执行最常用的功能很有帮助。基于上述原因,越来越多的Windows应用程序采用快速按钮条来改善应用程序的界面。笔者在用Delphi编程时,采用了两种不同的方法来实现快速按钮条,本文结合制作一个具有两组、共六个按钮的快速按钮条的实例,列出了这两种方法的具体设计步骤。

  1.组合生成法

  (1)在窗体上放置一个Panel1对象,作为图形按钮的载体。

  (2)设置Panel1的属性Caption为空,属性Align为alTop,调整其高度至合适尺寸。

  (3)在Panel1上放置六个SpeedButton按钮(选用SpeedButton,是因它具有浮动特性)。

  (4)在Panel1上放置两个Bevel对象,调整其位置和大小,用于分隔按钮组。

  (5)调整SpeedButton1的大小及在Panel1中的位置。

  (6)选择SpeedButton1,设置其属性Flat为True。

  (7)单击SpeedButton1的属性Glyph所对应的省略号小按钮,打开PictureEditor窗口,选择一个象征“查询”的图标。设置属性ShowHint为True,属性Hint为“查询”。

  (8)按步骤(5)至(7)的方法,分别设置好其余几个SpeedButton按钮的属性。

  这样,一个快速按钮条就制作完成了。运行时,快速按钮均以浮动方式显示,当鼠标移至其上时,即显示按钮外框,并显示小提示。

  2.借用ToolBar生成法

  (1)在窗体上放置一个ToolBar1对象。

  (2)设置ToolBar1的属性EdgeBorders.ebLeft、ebTop、ebRight、ebButtom均为True;属性Flat为True;调整ToolBar1的大小至合适尺寸。

  (3)选择ToolBar1,用右键点出快速选单,分别点击NewButton和NewSeparator增加六个按钮ToolButton和两条分隔栏线。

  (4)任意选择一个ToolButton按钮,调整其大小至合适尺寸,所有的ToolButton也同时被调整好。

  (5)设置ToolBar1的属性BorderWidth为3,以调整ToolButton的位置。

  (6)在窗体上放置一个ImageList1对象,设置它的属性Height和Width的数值,以适应较大尺寸的图像。

  (7)双击ImageList1,通过“Add”按钮分别装入六个图像,与ToolBar1中的六个ToolButton一一对应。

  (8)设置ToolBar1的属性Images为ImageList1。

  (9)设置六个ToolButton的属性ShowHint为True,并分别设置各自的小提示属性Hint。

  (10)还可以设置ToolBar1的HotImages指定鼠标指向按钮时的图片集。

  采用ToolBar实现的快速按钮条在外观上与第一种方法制作的类似。

  以上两种方法均能实现快速按钮条,但各有千秋:第一种设计过程较为简单;第二种方法则提供了更多的功能,如可用HotImages指定鼠标指向按钮时的图片集。读者不妨从中选择一种,并可继续完善其功能。

  建立临时表的方法

  数据输入是开发数据库程序的必然环节。在Client/Server结构中,客户端可能要输入一批数据后,再向服务器的后台数据库提交,这就需要在本地(客户端)建立临时数据表来存储用户输入的数据,待提交后,清除本地数据表。这种方法的好处是:提高输入效率,减小网络负担。

  由于用户一次输入的数据量一般情况下较小(不会超过几百条记录),所以临时表可以建立在内存中,这样处理速度较快。临时表创建有如下两种方法:

  1.使用查询控件创建临时表

  第1步:在窗体上放入查询控件(TQuery),并设置好所连接的数据表。

  第2步:添加如下语句:

  TQuery. CachedUpdates=True;

  TQuery. RequestLive=True。

  第3步:在原有的SQL语句后加入一条Where子语句,要求加入这条Where子语句后SQL查询结果为空。

  例如:

  SELECT Biolife."Species No", Category, Common_Name, Biolife."Species Name", Biolife."Length (cm)", Length_In, Notes, Graphic

  FROM "biolife.db" Biolife

  where Biolife.Category=′A′ and Biolife.Category=′B′

  这样临时表就建立好了。

  2.使用代码创建临时表

  函数代码如下:

  function CreateTableInMemory(const AFieldDefs:TFieldDefs):

  TDataSet;

  var TempTable:TClientDataSet;

  begin

  TempTable:=nil;

  Result:=nil;

  if AFieldDefs〈〉nil then

  begin

  try

  TempTable:=TClientDataSet.Create(Application);

  TempTable.FieldDefs.Assign(AFieldDefs);

  TempTable.CreateDataSet;

  Result:=(TempTable as TDataSet);

  Except

  if TempTable〈〉nil then TempTable.Free;

  Result:=nil;

  raise;

  end

  end

  end;

  在程序中按如下方法调用:

  procedure TForm1.Button1Click(Sender: TObject);

  var ADataSet:TDataSet;

  begin

  ADataSet:=TDataSet.Create(Self);

  with ADataSet.FieldDefs do

  begin

  Add(′Name′,ftString,30,False);

  Add(′Value′,ftInteger,0,False);

  end;

  with DataSource1 do

  begin

  DataSet:=CreateTableInMemory(ADataSet.FieldDefs);

  DataSet.Open;

  end;

  ADataSet.Free;

  end;

  这样,临时表就创建完成。

  方法1使用简单,但由于利用了查询控件,清空数据时需要查询服务器后台数据库,所以速度稍慢,而且不适用于临时表中各个字段由几个数据表的字段拼凑而成的情况。方法2适用范围广、速度快,但需要编写代码。

  在InterBase数据库中使用函数

  程序员可能在用InterBase作为后台数据库时,常会为其提供的函数过少而感到使用不便(只有四个),无法方便地编写出复杂的存储过程。InterBase本身无法编写函数,但它可以使用外部函数(调用DLL中的函数)。下例中说明如何在InterBase 中声明SUBSTR函数。

  DECLARE EXTERNAL FUNCTION SUBSTR

  CSTRING(80), SMALLINT, SMALLINT

  RETURNS CSTRING(80)

  ENTRY_POINT "IB_UDF_substr" MODULE_NAME "ib_udf"

  其中:MODULE_NAME为DLL的名称,ENTRY_POINT为函数名。

  声明后便可以使用,例如:

  select SUBSTR(country)

  from country

  本例使用的是Delphi安装时自带的IBLocal数据库,用户也可以自己编写函数来扩充InterBase。
翻出20年前的VB6与Pentium III:快速开发、兼容性与CPU调度变迁 从快速应用开发(RAD)到事件驱动模型,VB6曾以极低的门槛和丰富的ActiveX控件生态,成为千禧年前后最普及的编程工具之一。当这些老程序运行在Pentium III、K6-2等低配硬件上时,其轻量高效令人惊讶——启动仅需半秒,内存占用十几兆。然而在2025年的现代操作系统中,老程序面临着高DPI模糊、服务主机DCOM占用CPU过高等兼容性问题,而CPU智能核心调度又让单线程程序意外获得了全速运行的待遇。本文从硬件与软件的协同演化出发,探讨VB6编程思想对现代开发的影响,并分享在Windows 10/11 阅读详情

相关推荐

VB.net 2005实现TCP网络通信例程(.net VS2005)源码

TCP协议是TCP/IP协议簇中的传输层中的一个协议,也是TCP/IP协议簇最为重要的协议之一。在TCP/IP协议簇中,有一个协议和TCP协议非常类似,这就是UDP协议,网络上进行基于UDP协议的数据传送时,发送方只需知道接收方的IP地址(或主机名)和端口号就可以发送UDP数据包。而接收方只需知道发送方发送数据对应的端口号,就能够接收UDP数据包了。传送数据的双方并不需要进行连接就能够实现数据通讯

ityeti的专栏 2062

配置数据库引擎BDE(Borland DataBase Engine)

一、数据库引擎(Borland Database Engine)的配置指南 1、BDE配置工具概述   本部分引自Borland数据库引擎BDE配置部分的联机指导。Borland Database Engine (BDE)是Borland公司数据库产品以及用Borland公司提供的数据库开发的应用程序的软件核心。您将使用下文介绍的工具去配置数据库引擎BDE。  数据库引擎的配置

魔拉宝 1万+

Win7环境下MSCOMM32.OCX控件的使用

作者:iamlaosong 以前曾做个稽核重量的称重拍照软件,现在有部门要使用,说是用不起来,只好再捡起来试用一下。 试用发现Win7环境下串口无法使用(Error 8015---Could Not Set Comm State…)。难道是电脑串口坏了?为确定问题所在,电脑恢复了XP镜像,软件使用没有问题,说明串口是好的。怀疑是串口驱动问题(虽然设备管理中提示设备正常),恢复成Win7系统,也...

驽马十驾 才定不舍 6949

【3.Delphi常用组件】3.按钮类组件

3.按钮类组件 3.1 Button 基本按钮组件Button是最常用的组件之一,其主要属性: 属性 说明 Caption 按钮显示的文本 Cancel 按钮是否为取消按钮,设置为True,与按ESC键等价 Default 按钮是否为默认按钮,设置为True,与按Enter键等价 ModalResult 用来决定模式窗体如何关闭,取值: mrNone、mrOK、mrCancel、mrAbort、mrRetry、mrIgnore、mrYes、mrNo、mrA

chenhaiy的博客 2747

MSComm控件使用详解(转)

MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通

godtorch的专栏 3845

labview串口通讯的深入分析

labview称做"G"语言,只是说明了它具备了通用编程语言的编程能力,但是任何编程语言都有器独特的特点,否则经过几十年的风风雨雨,并没有出现一种编程语言一统天下的格局,每种编程语言都有其特别适合的领域,从这点来说,数据采集和仪器通讯可以说是它最擅长的领域.毫无疑问,计算机的串口通讯是相对比较简单的通讯方式,labview也不例外地对它提供了支持. LABVIEW的串口控制,可以通过多种方法:

yyq_leaf的专栏 1万+

教程-(SQL DBE、ADO连接)+(Firebird火鸟+DbExpress)+(VF DBF数据库)+(DB Paradox)

DBE 连接SQL Server显然用ADO或DBEXPRESS更有优势,起码连接起来比较方便。 BDE的话可以用如下方法:(以下以Delphi7为例,其它版本的DELPHI请自己摸索一下,不过基本相差不大) 1.启动Delphi,选择菜单项 Database->Explorer,在左侧Database列表里面右键,选择New,在弹出的驱动对话框里面选择MSSQL,确定,然后在左侧...

weixin_33709590的博客 679

MSComm控件在现代Windows系统上的安全获取、注册与部署全指南

串口通信是工业控制、仪器仪表和数据采集领域的基础技术,它实现了计算机与外部设备间的数据交换。其核心原理是通过串行接口按位发送和接收数据,相较于并行通信,具有线路简单、成本低、适合长距离传输的优势。在Windows平台上,开发者曾广泛使用ActiveX组件来快速实现串行通信功能,这极大地简化了开发流程,提升了工程效率。这些技术尤其适用于对稳定性和历史兼容性要求极高的工业自动化、生产线监控及老旧设备维护等场景。本文将围绕**MSComm控件**这一经典的ActiveX通信组件,针对其在现代系统中的**部署与兼容

weixin_30448603的博客 378

SQL LINK

SQL LINK 操作符    LINK操作符用于在WHERE子句中搜索列中的指定模式 SQL LIKE语法 SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;   实例   SELECT * FROM Websites WHERE name LIKE 'G%'; //选取name以“G”开始...

冷月醉雪的博客 6601

别再傻傻拨号了!天津大学校园网直连网线,实测解锁IPv6千兆下载(附Win10详细设置步骤)

本文详细介绍了天津大学校园网直连优化技巧,通过禁用PPPoE拨号并启用IPv6协议,实测下载速度提升至千兆级别。文章包含Windows 10详细设置步骤、硬件检查清单和故障排查方法,帮助用户充分利用校园网带宽资源,特别适合科研数据传输和大型文件下载场景。

weixin_33730836的博客 405

从零实现工业摄像头图像采集驱动程序(实战项目)

通过实战项目深入讲解如何从零编写工业摄像头的图像采集驱动程序,涵盖硬件交互与内核编程关键细节,帮助掌握驱动程序设计的核心逻辑与调试技巧。

weixin_35762258的博客 391

InstallShield Express Borland Limited Edition 3.5

InstallShield Express Borland Limited Edition Ver3.5大名鼎鼎的制作DELPHI安装包的,DELPHI7光盘自带的那个。

Unicode与UTF-8编码详解:从乱码根源到多语言开发实战

字符编码是计算机处理文本信息的基础,它定义了字符与二进制数字之间的映射关系。其核心原理在于为每个字符分配唯一的数字标识,以实现跨平台、跨语言的数据交换与显示一致性。这一技术的核心价值在于彻底解决了早期因编码标准不统一导致的乱码问题,为全球化的软件开发和互联网应用奠定了基石。在实际应用场景中,尤其在Web开发、多语言软件和数据处理领域,统一的字符编码标准至关重要。本文聚焦于Unicode这一全球通用的字符集标准及其主流编码方案UTF-8,深入剖析码点、平面等核心概念,并针对网页乱码、PHP/C++/VB等语言

weixin_34005042的博客 560

InstallShield_2018_R2_Premier_Edition_24.0.573_Downloadly.ir.rar

InstallShield_2018_R2_Premier_Edition_24.0.573_Downloadly.ir.rar

别再只会用AT命令了!手把手教你用ModemManager搞定Linux下4G/5G模块联网(附NetworkManager配置避坑)

本文详细介绍了如何在Linux系统下使用ModemManager和NetworkManager配置4G/5G模块联网,替代传统的AT命令方式。通过实战案例和配置示例,帮助开发者快速实现高效、稳定的蜂窝网络连接,解决复杂环境下的网络调试和优化问题。

weixin_33719619的博客 181

delphi中实现不同风格的speedbutton

delphi中实现不同风格的speedbutton

HSButton:Delphi / Lazarus的新外观按钮组件-开源

这是Delphi / Lazarus IDE和Free Pascal THSButton THSSpeedButton和THSStaticText的3个易于使用的组件的集合,这些组件将使您的应用程序看起来现代而美观,无需太多工作。 功能-样式:从软橡胶到有光泽的玻璃,快速或Encarta多种样式,您可以选择任何颜色。 -边框:按钮边框的大小,如果是玻璃或快速样式,则将更改圆角的水平-平滑度:此数字将使按钮具有平滑的渐变柔和外观-输入和保留降低选项/此当用户使用发光颜色或玻璃外观时,当用户将鼠标移到按钮上或移出按钮时,将为按钮带来很好的效果。 -形状:绘制您自己的形状,按钮将采用它的形状。 -以上所有功能均适用于THSSpeedButton和THSStaticText

基于Lambda表达式的SQL语句生成器SqlLink V0.1

基于Lambda表达式的SQL语句生成器SqlLink,增删改查……

上一篇: 通用Delphi数据库输入控件DBPanel的实现
下一篇: 在VFP中制做异型窗口
普通网友
博客等级 码龄26年 3粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值