浅谈Delphi开发经验[2]

浅谈Delphi开发经验[2],第1张

有经验的程序员完成特定的功能会充分考虑可变的情况 将这些地方提取出来 定义为方法参数或者从配置文件中读取 这样即使需求发生变化 也能轻松应对 要写出易维护的程序应该在软件配置化和程序动态化上下功夫 特别提一提程序动态化 现在开发网络游戏的很多 而且一般都会用到脚本引擎Lua来实现部分逻辑 这样在开发后期的调整相对变得轻松一点 以后在服务器上做修改也不会要求重新启动程序 当然在一般的项目或产品中一样可以考虑使用脚本引擎 当然不一定要用Lua 还可以有很多别的选择 比如 DelphiWebScript RemObjects Pascal Script AUTOMA atPASCAL SCRIPTER FastScript Innerfuse Pascal Script 如果还有更高的要求 还可以考虑利用COCO/R (ParserBuilder)来实现自己的语法解析器

开发中通常会遇到自己不能解决的问题 要知道你遇到的问题别人可能早就遇到过并解决 因此请教他人或者请教Google通常是最好的选择 上论坛提问是没有效率的方法

控件开发

控件分为不可视控件与可视控件 不可视控件其实与一般的类没什么太大的区别 只需要公布需要公布的属性为Published 如有需要也可以设计并注册自己的属性编辑器

开发控件也有专业的开发工具Eagle CDK和Eagle reAct 您不仅可以很方便的创建类 还可以在运行期测试控件 可以很方便的修改属性 即时看到效果 大大提高了开发效率

软件破解

愈来愈多的开发者开始采用RSA来作为注册的加密算法 效果还算不错 虽然仍不能防止被爆破 但是至少不会出现(内存)注册机 对软件加壳也不是什么防d衣 对于有经验的破解者几分钟就可以用OllyDbg从内存Dump(先用Process Explorer杀掉屏蔽调试工具的线程) 接着就是用Import REConstructor修复IAT 再用Lord PE对EXE进行优化

DeDe可以让破解者看到程序内的资源 事件 既可以静态分析 也可以在OllyDbg中对分析出的地址进行动态调试

破解Delphi控件当然也可以用DeDe 但是我们有更好的选择 那就是DCUcu与Dcu Pas 可以将Dcu直接反编译成汇编代码 通过静态分析其中的字符串以及调用的API 破解真的是很容易

只有做到知己知彼 才能做到有的放矢 反破解就是做到以最小的保护代价来使得破解者付出极大的破解行动

版本控制

版本控制最流行的就是VSS CVS SVN 我比较喜欢SVN 但是由于在Delphi下始终没有很方便的连接SVN的插件 因此 仍然是Delphi+VSS是最方便的版本控制的选择 VssConneXion是专门用于为Delphi增加VSS支持的插件 确实为开发人员带来了无比的便利 Delphi+TortoiseCVS与Delphi+TortoiseSVN同样也是不错的选择 VSS最大的缺点就是只能在内网中使用 除了可以透过***来允许远程访问外 我们还可以用Dynamsoft SourceAnyWhere或SourceOffSite实现VSS通过Internet访问 当然VSS 也支持Internet访问 如果你是个人开发者 觉得使用VSS也太麻烦 不妨试试FileHamster

软件测试

在提交给测试人员前 要求开发人员首先做自测 不要出现给测试人员的是一个都不能运行的版本 这样是对测试人员的不尊重

Java有JUnit Net有NUnit 同样Delphi也有DUnit 这主要是用来做单元测试用的 特别是在不停的代码重构中 能够及时发现修改出的问题 是每日构建中的重要组成部分 开发人员在完成功能前就写好测试用例代码 也称之为测试驱动开发 让自己作为自己代码的第一个用户 以确保自己提交的代码是易用的 正确的 让测试人员更专注于发现那些隐藏的逻辑性错误

TestComplete是AutomatedQA出品的专业自动化测试工具 与Rational Robot和Mercury WinRunner相比 特别适合用于Delphi开发的程序的测试 自动化测试可以减轻测试人员的工作量 提高他们的测试效率 当然 采用自动化测试对于测试人员的要求就更高了 因为需要测试人员维护测试脚本

缺陷管理

测试人员的报告需要反馈给开发者 同时又要知道开发者的修改意见 上级主管需要知道当前的测试进度与修改情况 这一切都是需要缺陷管理系统所管理的 通常缺陷管理都是做成B/S系统 当然也有提供客户端的 JIRA Mantis Bugzilla Axosoft OnTime Axosoft PowerTrack Bug Tracker BugFree Dev Hound SourceGear Dragnet TestTrack Pro URTracker 同样有很多选择

lishixinzhi/Article/program/Delphi/201311/24782

初学没什么担心的!

一、看书最重要。

书基本的概念性的东西一定要记住了,这很重要。

二、多做实例。

书的的例子固然在高手看来是垃圾,但对于初学者来说,很重要。

三、想像能力。

没有想像能力,做一万个实例也不会有自己的创意。多想想,这些东西放一块会发生什么事情,不要怕错误。

四、多问。

不懂就问,把自己当菜鸟。不懂的问题多在各个有关论坛问问高手们该怎么解决。

五、毅力。

这个就不要说了吧,你有我有他也有,关键看是不是懒的用。

书嘛,把我压箱底的东东给你吧:

<<Delphi5开发者指南>>机械工业出版社

<<Delphi60从入门到精通>>电子工业出版社

《深入DELPHI6网络编程》

《delphi4从入门到精通》

《delphi com 深入编程》

《windows 高级开发指南》

《windows 程序设计

《windows 图形编程》

《windows 核心编程》

Delphi Win32核心API参考

<Delphi Win32核心API参考>!!!

Delphi深度历险

:《Windows程序设计》

《DELPHI5开发人员指南》 美 业界标准手册

《delphi5从入门到精通》美 delphi精英奖得主写的!

《轻松掌握delphi4》美Tuobo power的工程师写的,不同于一般的入门书,值得一看!

《delphi高级开发人员指南》美 delphi精英奖得主写的!顶级高手必读!

《delphi2程序设计大全》!!!美 delphi 技术支持部门主管写的,我一直在看!不要被书

名所迷惑,如果要彻底精通delphi必读该书!

《delphi4编程技术内幕》美 同上!对数据库,网络计算偏重一些,也有关于游戏开发

的内容!

《精通delphi》中 国防科技大学的中国人写的,该书再版多次,还记得著名的《Turbo

puscal大全》吗?同一群作者!

<奇思异想编程序——Delphi篇>

<Delphi 5 API 函数开发实例>

<Delphi Win32核心API参考>

《delphi2程序设计大全》>

Windows的动态链接库原理

动态链接库(DLLs)是从C语言函数库和Pascal库单元的概念发展而来的 所有的C语言标准库函数都存放在某一函数库中 同时用户也可以用LIB程序创建自己的函数库 在链接应用程序的过程中 链接器从库文件中拷贝程序调用的函数代码 并把这些函数代码添加到可执行文件中 这种方法同只把函数储存在已编译的 OBJ文件中相比更有利于代码的重用

但随着Windows这样的多任务环境的出现 函数库的方法显得过于累赘 如果为了完成屏幕输出 消息处理 内存管理 对话框等 *** 作 每个程序都不得不拥有自己的函数 那么Windows程序将变得非常庞大 Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝 动态链接库就是在这种情况下出现的 动态链接库不用重复编译或链接 一旦装入内存 Dlls函数可以被系统中的任何正在运行的应用程序软件所使用 而不必再将DLLs函数的另一拷贝装入内存

动态链接库的工作原理

动态链接 这几字指明了DLLs是如何工作的 对于常规的函数库 链接器从中拷贝它需要的所有库函数 并把确切的函数地址传送给调用这些函数的程序 而对于DLLs 函数储存在一个独立的动态链接库文件中 在创建Windows程序时 链接过程并不把DLLs文件链接到程序上 直到程序运行并调用一个DLLs中的函数时 该程序才要求这个函数的地址 此时Windows才在DLLs中寻找被调用函数 并把它的地址传送给调用程序 采用这种方法 DLLs达到了复用代码的极限

动态链接库的另一个方便之处是对动态链接库中函数的修改可以自动传播到所有调用它的程序中 而不必对程序作任何改动或处理

DLLs不仅提供了函数重用的机制 而且提供了数据共享的机制 任何应用程序都可以共享由装入内存的DLLs管理的内存资源块 只包含共享数据的DLLs称为资源文件 如Windows的字体文件等

Windows系统的动态链接库

Windows本身就是由大量的动态链接库支持的 这包括Windows API函数 ( KRNLx EXE USER EXE GDI EXE …) 各种驱动程序文件 各种带有 Fon和 Fot 扩展名的字体资源文件等 Windows还提供了针对某一功能的专用DLLs 如进行DDE编程的ddeml dll 进行程序安装的ver dll等

虽然在编写Windows程序时必然要涉及到DLLs 但利用Delphi 用户在大部分时候并不会注意到这一点 这一方面是因为Delphi提供了丰富的函数使用户不必直接去使用Windows API;另一方面即使使用Windows API 由于Delphi把API函数和其它Windows DLLs函数重新组织到了几个库单元中 因而也不必使用特殊的调用格式 所以本章的重点放在编写和调用用户自定义的DLLs上

使用传统的Windows编程方法来创建和使用一个DLLs是一件很令人头痛的事 正如传统的Windows编程方法本身就令人生畏一样 用户需要对定义文件 工程文件进行一系列的修改以适应创建和使用DLLs的需要 Delphi的出现 在这一方面 正如在其它许多方面所做的那样 减轻了开发者的负担 更令人兴奋的是Delphi利用DLLs 实现了窗体的重用机制 用户可以将自己设计好的窗体储存在一个DLLs中 在需要的时候可随时调用它

DLLs的编写和调用

DLLs的编写

在Delphi环境中 编写一个DLLs同编写一个一般的应用程序并没有太大的区别 事实上作为DLLs 主体的DLL函数的编写 除了在内存 资源的管理上有所不同外 并不需要其它特别的手段 真正的区别在工程文件上

在绝大多数情况下 用户几乎意识不到工程文件的存在 因为它一般不显示在屏幕上 如果想查看工程文件 则可以打开View菜单选择Project Source项 此时工程文件的代码就会出现在屏幕的Code Editor(代码编辑器)中

一般工程文件的格式为

program   工程标题

uses     子句

程序体

而DLLs工程文件的格式为

library 工程标题

uses 子句

exprots 子句

程序体

它们主要的区别有两点

一般工程文件的头标用program关键字 而DLLs工程文件头标用library 关键字 不同的关键字通知编译器生成不同的可执行文件 用program关键字生成的是 exe文件 而用library关键字生成的是 dll文件

假如DLLs要输出供其它应用程序使用的函数或过程 则必须将这些函数或过程列在exports子句中 而这些函数或过程本身必须用export编译指令进行编译

根据DLLs完成的功能 我们把DLLs分为如下的三类

完成一般功能的DLLs;

用于数据交换的DLLs;

用于窗体重用的DLLs

这一节我们只讨论完成一般功能的DLLs 其它内容将在后边的两节中讨论

编写一般DLLs的步骤

编写一般DLLs的步骤如下

利用Delphi的应用程序模板 建立一个DLLs程序框架

对于Delphi 的用户 由于没有DLLs模板 因此

( ) 建立一个一般的应用程序 并打开工程文件

( ) 移去窗体和相应的代码单元

( ) 在工程文件中 把program改成library 移去Uses子句中的Forms 并添加适当的库单元(一般SysUtils Classes是需要的) 删去begin…end之间的所有代码

以适当的文件名保持文件 此时library后跟的库名自动修改

输入过程 函数代码 如果过程 函数准备供其它应用程序调用 则在过程 函数头后加上export 编译指示

建立exports子句 包含供其它应用程序调用的函数和过程名 可以利用标准指示 name Index resident以方便和加速过程/函数的调用

输入库初始化代码 这一步是可选的

编译程序 生成动态链接库文件

动态链接库中的标准指示

在动态链接库的输出部分 用到了三个标准指示 name Index resident

name

name后面接一个字符串常量 作为该过程或函数的输出名 如

exports

InStr name MyInstr;

其它应用程序将用新名字(MyInstr)调用该过程或函数 如果仍利用原来的名字(InStr) 则在程序执行到引用点时会引发一个系统错误

Index

Index指示为过程或函数分配一个顺序号 如果不使用Index指示 则由编译器按顺序进行分配

Index后所接数字的范围为 … 使用Index可以加速调用过程

resident

使用resident 则当DLLs装入时特定的输出信息始终保持在内存中 这样当其它应用程序调用该过程时 可以比利用名字扫描DLL入口降低时间开销

对于那些其它应用程序常常要调用的过程或函数 使用resident指示是合适的 例如

exports

InStr name MyInStr resident;

lishixinzhi/Article/program/Delphi/201311/25207

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

问题描述:

这是一个测试d出对话框的小程序,用到了这个函数“function MessageDlg(const Msg: string; DlgType: TMsgDlgType;Buttons: MsgDlgButtons; HelpCtx: Longint): Integer;”可是在编译的时候却不能运行,Delphi报错: ':=' expected but '=' found。不知道该怎么改,麻烦大家看看:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R dfm}

procedure TForm1Button1Click(Sender: TObject);

begin

if MessageDlg('你要离开系统吗?',mtconfirmation,[mbYes,mbNo],0)=mrYes then

begin

MessageDlg('系统关闭中',mtInformation,[mbOK],0)=mrOK then

Close;

end;

end

解析:

procedure TForm1Button1Click(Sender: TObject);

begin

if MessageDlg('你要离开系统吗?',mtconfirmation,[mbYes,mbNo],0)=mrYes then

begin

if MessageDlg('系统关闭中',mtInformation,[mbOK],0)=mrOK then

Close;

end;

end;

掉了一个if和end;

还有已经给了提示了':=' expected but '=' found

期望是:=,但是找到的是=

delphi写的程序有主窗口和Application的差别,所以delphi写的程序在任务栏点右键会和VC的不一样。一般DX游戏刷新画面的代码应写的ApplicationOnIdle中,一般写法是这样的:

ApplicationOnIdle := AppIdle;

procedure TForm_mainAppIdle(Sender: TObject; var Done: Boolean);

begin

{ 表明程序将连续不断的调用些事件}

Done := FALSE;

{如果 DirectDraw 没有初始化, 退出}

if not Assigned(FDirectDraw) then Exit;

{注: 这个小游戏的逻辑可以插入控制,如小精灵移动,碰撞,被发现}

{画表面内容,反转表面}

DrawSurfaces;

FlipSurfaces;

end;

不知道对你有帮助否。

看看这里有么 下下来看看 如果需要再买

F:\学习考研\电子图书\电子宝库

├—215例题解析自动控制原理_0

├—21世纪信息与通信技术教程 多媒体通信_0

├—21世纪信息与通信技术教程 数字电路与FPGA_0

├—21世纪信息与通信技术教程 数字语音:语音编码实用教程_0

├—21世纪信息与通信技术教程 现代通信基础与技术_0

├—21世纪大学计算机应用系列教材 JAVA与面向对象程序设计导论_0

├—21世纪大学计算机系列教材 C语言大学实用教程_0

├—21世纪网络平台大学计算机系列教材 离散数学_0

├—21世纪网络平台大学计算机系列教材 网络平台大学计算机信息技术├—21世纪高等学校电子信息类专业规划教材 多媒体课件制作实训教程_0

├—21世纪高等学校电子信息类专业规划教材 网络安全技术基础_0

├—21世纪高等学校电子信息类专业规划教材 网络安全概论_0

├—21世纪高等学校电子信息类专业规划教材 网络系统集成技术_0

├—21世纪高等学校电子信息类专业规划教材 计算机信息管理基础_0

├—21世纪高等学校电子信息类专业规划教材 计算机硬件技术基础_0

├—21世纪高等学校电子信息类教材 数字微波通信系统_0

├—21世纪高等学校规划教材 高等数学_0

├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计实验指导_0

├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计教程_0

├—21世纪高等学校计算机科学与技术教材 面向对象C++程序设计_0

├—21世纪高等院校教材 电磁场与电磁波_0

├—21世纪高等院校教材 遥感数字图像处理_0

├—21世纪高等院校数字艺术设计系列教材 数字动画设计艺术_0

├—21世纪高等院校电气信息类系列教材 单片机原理与应用_0

├—21世纪高等院校规划教材 DSP原理及应用_0

├—21世纪高等院校规划教材 数据通信与计算机网络_0

├—21世纪高等院校计算机教材系列 C语言程序设计教程_0

├—21世纪高等院校计算机科学与工程系列教材 微型计算机原理与接口技术_0

├—21世纪高等院校计算机科学与技术规划教材 Java程序设计简明教程_0

├—21世纪高等院校计算机科学与技术规划教材 微机原理与接口技术 (80386-Pe_0

├—21世纪高等院校计算机系列教材 Java程序设计基础_0

├—21世纪高等院校计算机系列教材 Java程序设计实验与实训_0

├—21世纪高等院校计算机系列教材 管理信息系统_0

├—21世纪高等院校计算机系列教材 编程逻辑与结构化程序设计 (第三版)_0

├—21世纪高职高专信息技术教材 数据库原理及应用教程_0

├—21高等学校电子信息类专业规划教材 计算机引论_0

├—301例题解析电工电路 (中册)_0

├—372例题解析电工电路 (上册)_0

├—488例题解析电工电路 (下册)_0

├—8051单片机彻底研究 基础篇_0

├—8051单片机彻底研究 实习篇_0

├—8051单片机数据传输接口扩展技术与应用实例_0

├—Adobe 数字艺术中心 InDesign CS标准教材_0

├—Advanced C++ (中文版)_0

├—APSL参数化有限元分析技术及其应用实例_0

├—ASP+SQL Server网络应用系统开发与实例_0

├—ASP信息系统设计与开发实列_0

├—Authorware 6_5多媒体制作基础教程_0

├—BHDL实例剖析_0

├—BIOS、注册表与硬盘终极解析_0

├—Blackfin系列DSP原理与系统设计_0

├—C#Builder编程起跑_0

├—C#大学教程_0

├—C#应用程序开发标准教程_0

├—C#程序设计培训教程_0

├—C#面向对象程序设计:台版_0

├—C++ Templates中文版_0

├—C++Builder 6实用编程100例_0

├—C++同构化对象程序设计原理_0

├—C++多范型设计_0

├—C++大学自学教程(第7版)_0

├—C++捷径教程 第3版_0

├—C++程序设计_0

├—C++程序设计实验指导与实训_0

├—C++编程惯用法——高级程序员常用方法和技巧_0

├—C++网络编程 卷2 基于ACE和框架的系统化复用_0

├—C++面向对象程序设计 (第四版)_0

├—CAXA电子图板XP实用教程_0

├—CCNA学习指南 (中文版) (640-801)_0

├—CDMA 无线通信原理_0

├—CPLD_FPGA可编程逻辑器件应用与开发_0

├—C_0

├—C语言与MATLAB接口:编程与实例_0

├—C语言程序设计2_0

├—C语言程序设计3_0

├—C语言程序设计_0

├—C语言程序设计导学_0

├—C语言精彩编程百例_0

├—Delphi 7_0程序设计教程_0

├—Delphi 7应用教程_0

├—Delphi 7数据库开发教程_0

├—Delphi 7数据库高级教程_0

├—Delphi 7程序设计_0

├—Delphi 7课程设计案例精编_0

├—Delphi 程序设计技能百练_0

├—DELPHI 经典游戏程序设计40例_0

├—Delphi串口通信技术与工程实践_0

├—Delphi数据库开发实例解析_0

├—Delphi数据库编程_0

├—Delphi数据库高级实例导航_0

├—Delphi源代码分析_0

├—Delphi程序设计_0

├—Delphi程序设计实训_0

├—Delphi程序设计教程_0

├—Delphi精要2_0

├—Delphi精要_0

├—DSP 通信工程技术应用_0

├—DSP信号处理技术应用_0

├—DSP技术及应用_0

├—DSP控制系统的设计与实现_0

├—DSP算法设计与系统方案_0

├—DSP系统设计与实践_0

├—DSP芯片的原理与开发应用 (第3版)_0

├—DSP集成开发环境:CCS及DSP_BIOS的原理与应用_0

├—DWDM技术原理与应用_0

├—EDA与数字系统设计_0

├—EDA工程实践_0

├—Enterprise Java Bean程序设计实例详解_0

├—Excel 2003中文版入门与提高_0

├—IBM PC 80X86汇编语言程序设计_0

├—IBM信息集成技术原理及应用_0

├—ICSA密码学指南_0

├—IEEE 802_11无线局域网_0

├—IEEE1394接口技术_0

├—Intel微处理器结构、编程与接口 (第六版)_0

├—Intel汇编语言程序设计 第四版_0

├—IP宽带通信网络技术_0

├—J2EE 应用与实践技巧:JAVA设计模式、自动化与性能_0

├—J2EE网络编程标准教程_0

├—J2METM技术手册_0

├—J2ME开发大全_0

├—Java 2学习指南——Sun Certified Programmer_0

├—Java 2实用教程_0

├—Java 2程序设计技能百练_0

├—Java 2简明教程_0

├—Java Web服务开发_0

├—Java 国际认证(SCJP)典型试题1000例_0

├—Java 模式_0

├—Java 游戏编程_0

├—Java 课程设计案例精编_0

├—Java与CORBA客户 服务器编程 第二版_0

├—Java信息系统设计与开发实例_0

├—Java基础教程_0

├—Java实用系统开发指南_0

├—Java实用编程100例_0

├—Java并发编程:设计原则与模式_0

├—Java手机_PDA程序设计入门_0

├—Java数值方法_0

├—Java数据对象_0

├—Java数据库高级教程_0

├—Java数据结构和算法 (第二版)_0

├—Java极限编程_0

├—JAVA程序设计2_0

├—Java程序设计3_0

├—Java程序设计_0

├—Java程序设计基础 (第3版)_0

├—Java程序设计实战训练_0

├—Java程序设计技巧与开发实例_0

├—Java程序设计教程_0

├—Java程序设计高级主题_0

├—Java算法 (第3版,第1卷)_0

├—Java编程原理:面向工程和科学人员_0

├—JAVA缺陷_0

├—Java网络编程基础_0

├—Java语言程序设计_0

├—Java语言程序设计教程_0

├—Java课程设计_0

├—Java软件开发2_0

├—Java软件开发_0

├—Java项目开发实践_0

├—Java高级实用编程_0

├—Jave 2认证考试学习指南 (第四版) (英文版)_0

├—JBuilder 9_0入门与提高_0

├—JBuilder 9_0程序设计——Java程序员成功之路_0

├—JBuilder精髓_0

├—JSP信息系统设计与开发实例_0

├—MATLAB 6_5及其在信号处理中的应用_0

├—MATLAB 6_5图形图像处理_0

├—MATLAB 7_0实用指南 (上册)_0

├—MATLAB 7_0实用指南 (下册)_0

├—MATLAB M语言高级编程_0

├—Matlab 小波分析工具箱原理与应用_0

├—MATLAB与外部程序接口_0

├—MATLAB仿真技术与应用教程_0

├—MATLAB仿真技术主导实例应用教程_0

├—MATLAB信息工程工具箱技术手册_0

├—MATLAB及其在电路与控制理论中的应用_0

├—Matlab图像处理与应用_0

├—MATLAB图形图像处理应用教程_0

├—MATLAB工具箱应用_0

├—MATLAB应用数学工具箱技术手册_0

├—Matlab接口技术与应用_0

├—MATLAB控制工程工具箱技术手册_0

├—MATLAB数学计算范例教程_0

├—MATLAB有限元分析与应用_0

├—MATLAB电力系统设计与分析_0

├—MATLAB程序设计_0

├—MATLAB符号运算及其应用_0

├—MATLAB自动控制原理习题精解_0

├—MCS-51单片机原理及应用实例_0

├—MCS-51系列单片机原理与接口技术_0

├—MCS-51系列单片机系统及其应用 (第二版)_0

├—Microsoft SQL Server 2000宝典_0

├—OP放大电路设计_0

├—Oracle9i数据库原理与应用教程_0

├—OrCAD电路设计_0

├—PCB电磁兼容技术——设计实践_0

├—PC控制及接口程序设计实例_0

├—PIC 单片机原理与接口技术_0

├—PowerBuilder9_0数据窗口技术_0

├—PowerPCB高速电子电路设计与应用_0

├—Protel 2004电路原理图及PCB设计_0

├—Protel 99 SE印制电路板设计教程_0

├—Protel 99 SE原理图与PCB及仿真_0

├—Protel DXP 电路原理图设计指南_0

├—Protel DXP印制电路板设计指南_0

├—Protel DXP电路原理图与PCB设计_0

├—Protel DXP电路原理图与电路板设计教程_0

├—Protel DXP电路图及电路板设计实用教程_0

├—Protel DXP电路设计与仿真_0

├—Protel DXP电路设计与制版实用教程_0

├—Protel DXP电路设计与应用2_0

├—Protel DXP电路设计入门与应用_0

├—Protel DXP电路设计入门与进阶_0

├—Protel DXP电路设计制版入门与提高_0

├—Protel DXP电路设计标准教程_0

├—PSpice 电路优化程序设计_0

├—PSpice 电路设计实用教程_0

├—PSpice电路原理与实现_0

├—PSpice电路编辑程序设计_0

├—PWM控制与驱动器使用指南及应用电路:单端控制与驱动器部分_0

├—Red Hat Linux安全与优化_0

├—Tanner Pro集成电路设计与布局实战指导_0

├—TMS320C500系列DSP系统设计与开发实例_0

├—TMS320C54x DSP应用程序设计教程_0

├—TMS320LF_LC24系列DSP的CPU与外设_0

├—UML及其建模工具的使用_0

├—UML宝典_0

├—UML工具箱_0

├—USB 接口技术_0

├—Verilog HDL数字设计与综合 (第二版)_0

├—Verilog HDL程序设计教程_0

├—Verlog HDL 综合实用教程_0

├—VHDL与微机接口设计_0

├—VHDL数字系统设计 (第二版)_0

├—VHDL电路设计实用教程_0

├—VHDL电路设计技术_0

├—Visual Basic 6_0实践指导_0

├—Visual Basic 6_0应用编程150例_0

├—Visual Basic 程序设计教程_0

├—Visual Basic6_0数据库开发技术与工程实践_0

├—Visual Basic_NET程序设计实训教程_0

├—Visual Basic程序设计2_0

├—Visual Basic程序设计_0

├—Visual C#_NET程序设计经典_0

├—Visual C++ 6_0应用编程150例_0

├—Visual C++ 6_0数据库开发技术与工程实践_0

├—Visual C++6_0数字图像编码_0

├—Visual C++_MATLAB图像处理与识别实用案例精选_0

├—Visual C++_NET数字图像处理技术与应用_0

├—Visual C++_NET程序设计入门_0

├—Visual C++_NET编程实例_0

├—Visual C++_Turbo C串口通信编程实践_0

├—Visual C++数字图像实用工程案例精选_0

├—Visual C++网络通信程序开发指南_0

├—Visual C++网络通信编程实用案例精选_0

├—Visual FoxPro上机实践指导教程_0

├—Visual FoxPro程序设计教程_0

├—Visual Prolog编程、环境及接口_0

├—VisualC++_NET MFC类库应用详解_0

├—WCDMA技术与系统设计:第三代移动通信系统的无线接入_0

├—WCDMA无线通信技术及演化_0

├—WCDMA移动通信技术_0

├—Win32汇编语言实用教程_0

├—Windows安全性编程_0

├—XML编程实例教程_0

├—·工程数学·复变函数_0

├—《Visual Basic程序设计教程》实验与习题_0

├—《中华人民共和国电子签名法》释义及实用指南_0

├—《汇编语言与微机原理》学习指导与训练_0

├—《集成电子技术基础教程》教学指导书_0

├—三星电子绝处逢生的强悍之道_0

├—三级信息管理技术_0

├—三级信息管理技术:新大纲_0

├—专用集成电路_0

├—世界著名大学核心教材 计算机类 C语言程序设计_0

├—中国半导体行业协会集成电路设计分会推荐教材 集成电路设计与九天EDA工具应用_0

├—中国电子信息产品出口研究报告_2003_0

├—中文 Visual Basic 6_0实例教程_0

├—中文CorelDRAW 11_12时尚创作200例_0

├—中文Visual Basic实例全解教程_0

├—企业商务电子化导论_0

├—企业电子商务_0

├—使用UML进行面向对象的项目管理_0

├—例题解析电子电路:数字篇_0

├—例题解析电子电路:模拟篇_0

├—信号、系统与数字信号处理_0

├—信号、系统与数字信号处理学习指导与实践_0

├—信号与系统典型题解2_0

├—信号与系统典型题解_0

├—信号与系统分析2_0

├—信号与系统分析_0

├—信号与系统学习与考研指导2_0

├—信号与系统学习与考研指导_0

├—信号与系统学习指导2_0

├—信号与系统学习指导3_0

├—信号与系统学习指导4_0

├—信号与系统学习指导_0

├—信号与系统教程2_0

├—信号与系统教程_0

├—信号与系统课程辅导_0

├—信号与线性系统分析 (第二版)_0

├—信号分析与处理_0

├—信号处理中的数学变换和估计方法_0

├—信号处理原理与应用_0

├—信号处理滤波器设计_0

├—信息与传播_0

├—信息与计算科学专业系列教材 数字信号处理_0

├—信息与通信工程研究生系列教材 信息论与编码_0

├—信息与通信工程研究生系列教材 图论及其应用_0

├—信息光学理论与应用_0

├—信息化与中国经济跨越式发展_0

├—信息化工程原理与应用_0

├—信息安全原理与应用 (第三版)_0

├—信息安全教学基础_0

├—信息安全策略与机制_0

├—信息技术与电子政务 (通用版)——信息时代的电子政府_0

├—信息技术与课程整合的理论与方法_0

├—信息技术及其应用_0

├—信息技术基础_0

├—信息技术基础教程_0

├—信息技术基础教程实验及上机指导_0

├—信息技术法 (第二版)_0

├—信息技术的商业价值_0

├—信息方法概论_0

├—信息时代的企业人力资源管理_0

├—信息时代的管理信息系统 (原书第四版)_0

├—信息检索与利用_0

├—信息理论与编码2_0

├—信息理论与编码_0

├—信息竞争论_0

├—信息管理与信息系统专业规划教材 管理信息系统_0

├—信息管理论_0

├—信息系统分析与设计教程_0

├—信息系统升级与整合:策略·方法·技巧_0

├—信息系统安全管理_0

├—信息系统集成技术 (第二版)_0

├—信息系统项目管理导论_0

├—信息经济学_0

├—信息经济学与信息管理_0

├—信息经济学引论:激励与合约 (第二版)_0

├—信息经济论_0

├—信息网络传播权研究_0

├—信息网络经济的管理与调控:美国“新经济周期”研究_0

├—信息论与编码理论 第二版_0

├—信息资源管理_0

├—信息隐藏与数字水印_0

├—信息隐藏技术实验教程_0

├—先进PID控制MATLAB仿真 (第二版)_0

├—光信息网络_0

├—光信息通信技术实用手册_0

├—光纤通信_0

├—光纤通信原理与技术_0

├—光纤通信技术_0

├—光纤通信系统原理与实验教程_0

├—光纤通信系统及其应用_0

├—光纤通信:通信用光纤、器件和系统_0

├—全光光纤通信网_0

├—全国信息技术人才培养工程指定培训教材 平面设计基础_0

├—全国大学生电子设计竞赛获奖作品汇编:第一届-第五届_0

├—全国计算机技术与软件专业技术资格(水平)考试·程序员分册_0

├—全国计算机技术与软件专业技术资格(水平)考试·网络工程师分册_0

├—全国计算机技术与软件专业技术资格(水平)考试·网络管理员分册_0

├—全国计算机技术与软件专业技术资格(水平)考试·软件设计师分册_0

├—全国计算机等级考试三级教程 信息管理技术_0

├—全国计算机等级考试三级模拟题精选与详解 信息管理技术_0

├—全国计算机等级考试三级模拟题解 信息管理技术_0

├—全国计算机等级考试三级辅导 信息管理技术_0

├—全国计算机等级考试二级教程:基础知识和Java语言程序设计_0

├—全国计算机等级考试二级模拟题解:基础知识和Java语言程序设计_0

├—全国计算机等级考试应试辅导 QBASIC语言(二级)难点、错点解析_0

├—全国计算机等级考试教程 信息管理技术 (三级) (2004修订版)_0

├—全国计算机等级考试考点分析、题解与模拟 (三级信息管理技术)_0

├—全国计算机等级考试(三级信息管理技术)一册通_0

├—公司信息战略与管理:教程与案例 (原书第6版)_0

├—内容产业论:数字新媒体的核心_0

├—制造业信息化与信息编码_0

├—动态网页设计与电子商务_0

├—北京市高等教育精品教材立项项目 实用电子电路基础_0

├—半导体分立元器件集成电路装调_0

├—单片开关电源:应用电路·电磁兼容·PCB布线_0

├—单片微型计算机原理、应用及接口技术 (第2版)_0

├—单片机典型模块设计实例导航_0

├—单片机原理与实用技术_0

├—单片机原理与应用2_0

├—单片机原理与应用_0

├—单片机原理及其接口技术 (第二版)_0

├—单片机原理及其接口技术 (第二版)_0

├—单片机原理及其接口技术学习辅导与实践教程_0

├—单片机原理及应用_0

├—单片机原理及接口技术2_0

├—单片机原理及接口技术3_0

├—单片机原理及接口技术_0

├—单片机实用技术_0

├—单片机嵌入式应用的线开发方法_0

├—单片机应用技术_0

├—单片机应用系统设计与产品开发_0

├—单片机控制工程实践技术_0

├—卫星通信系统_0

├—四维时空逻辑_0

├—国外电子与通信教材系列 信号与系统 (第二版)_0

├—国外经典教材 C++数据结构与程序设计_0

├—国外经典计算机科学教材 逻辑与计算机设计基础 (第三版)_0

├—国外著名高等院校信息科学与技术优秀教材 C算法 第一卷,基础、数据结构、排序和搜_0

├—国外著名高等院校信息科学与技术优秀教材 密码学概论 (中文版)_0

├—国外著名高等院校信息科学与技术优秀教材 面向对象编程 C++和Java 比较教程_0

├—国外计算机科学教材系列 现代编译器的Java实现 (第二版)_0

├—国外计算机科学经典教材 JAVA 基础教程:从问题分析到程序设计_0

├—国外计算机科学经典教材 数据结构 Java 语言描述 (第二版)_0

├—国外高校电子信息类优秀教材 (翻译版) 压缩视频通信_0

├—国家信息化技术培训指定教材 硬件维护工程师标准培训教程_0

├—国防科工委十五规划教材 网络与信息安全_0

├—国际电子商务培训认证专用教材 国际电子商务程序设计教程_0

├—国际电子商务概论_0

├—图像信息压缩_0

├—图像数字记录_0

├—图像编码基础和小波压缩技术——原理、算法和标准_0

├—图表细说电子元器件_0

├—图解晶体管实用电路_0

├—图解电工电子基础_0

├—基于Java的计算机图形学_0

├—基于MCS-51单片机的嵌入式系统设计_0

├—声光信号处理及应用_0

├—复变函数与拉普拉斯变换习题指导_0

├—复变函数与积分变换学习指导_0

├—复变函数论与运算微积_0

├—大型软件体系结构:使用UML实践指南_0

├—大学信息技术基础教程_0

├—大学生素质教育系列教材 复变函数学习指导_0

├—大学英语六级词汇背诵词典

├—大学计算机信息技术学习指导_0

├—大学计算机基础教育规划教材 Visual Basic NET程序设计_0

├—大容量数据存储系统编码_0

├—天津市高等学校计算机基础课程规划教材 C程序设计教程 (第二版)_0

├—奇思异想编程序 Delphi篇_0

├—学习指导与题典:离散数学_0

├—学习指导与题典:计算机网络与通信_0

├—完整的数字设计_0

├—实用化工计算机模拟:MATLAB在化学工程中的应用_0

├—实用射频技术_0

├—实用电动机控制电路200例_0

├—实用电工与电子技术问答_0

├—实用电工电路图集_0

├—实用电路基础_0

├—实用软件测试过程_0

├—实验电子技术_0

├—宽带移动通信中的先进信道编码技术_0

├—宽带通信_0

├—宽带通信网与组网技术_0

├—小波分析信息传输基础_0

├—小灵通(PAS)个人通信接入系统 (修订版)_0

├—嵌入式微处理器模拟接口设计 (第二版)_0

├—嵌入式软件测试_0

├—工程电磁场数值计算_0

├—差错控制编码_0

├—常用充电器电路与应用_0

├—应用程序设计编制(Delphi 平台)Delphi 6_0_7_0职业技能培训教程_0

├—建筑物电子信息系统防雷技术设计手册_0

├—建筑电气常用设备模块化控制电路图集_0

├—建筑通信与网络技术_0

├—开发专家之Sun ONE J2EE技术参考手册_0

├—彩色图像工程_0

├—彩色电视机单元电路应用与维修手册_0

├—微型计算机原理与接口技术3_0

├—微型计算机原理与接口技术_0

├—微型计算机硬件技术教程-原理·汇编·接口及体系结构_0

├—微处理机原理与接口技术_0

├—微控制器原理及接口技术实验教程_0

├—微机原理与接口技术2_0

├—微机原理与接口技术4_0

├—微机原理与接口技术_0

├—微机原理与接口技术综合实验教程_0

├—微机原理及接口技术实验教程_0

├—微机原理及软硬件接口技术_0

├—微机接口技术500问_0

├—微波固态电路_0

├—微波工程基础_0

├—微波技术2_0

├—微波技术_0

├—微观信息管理_0

├—快速开发信息管理系统:新平台、新方法_0

├—怎样用电脑设计电子线路_0

├—怎样看楼宇常用设备电气控制电路图_0

├—振荡电路的设计与应用_0

├—捉虫历险记——常见C++Bug大围剿_0

├—控制工程与信号处理_0

├—控制系统MATLAB计算机及仿真 (第二版)_0

├— *** 作系统原理Linux篇_0

├—数字万用表检测方法与应用 (世纪新版)_0

├—数字与逻辑电路

├—数字专用集成电路的设计与验证_0

├—数字信号处理2_0

├—数字信号处理3_0

├—数字信号处理_0

├—数字信号处理典型题解及自测试题_0

├—数字信号处理原理及实现_0

├—数字信号处理实践方法 (第2版)_0

├—数字信号处理教程:MATLAB释义与实现_0

├—数字信号处理:系统分析与设计_0

├—数字信号微处理器的原理与开发 (第二版)_0

├—数字制造_0

├—数字化战场_0

├—数字化测量技术与应用_0

├—数字化网络化制造技术_0

├—数字图像处理及应用_0

├—数字城堡_0

├—数字城市建设的理论与策略_0

├—数字媒体:作品观摩与点评_0

├—数字广播电视技术文选_0

├—数字微波通信_0

├—数字技术与著作权:观念、规范与实例_0

├—数字时代的影像制作_0

├—数字时代的电视图像_0

├—数字显示测量仪表_0

├—数字电子技术_0

├—数字电子技术基础 (第四版) 全程辅导_0

├—数字电子技术基础 (第四版) 导教·导学·导考_0

├—数字电子技术基础_0

├—数字电视原理_0

├—数字电视广告_0

├—数字电路与逻辑设计教程2_0

├—数字电路与逻辑设计教程_0

├—数字电路设计完全手册_0

├—数字的美术——CorelDRAW Illustrator艺术插画设计经典案例剖析_0

├—数字签名原理及技术_0

├—数字系统设计:从数字技术基础到ASIC设计的解析_0

├—数字系统逻辑设计

├—数字系统逻辑设计3_0

├—数字系统逻辑设计_0

├—数字视频解决方案:创建、编辑与共享数字视频_0

├—数字设计 (第三版)_0

├—数字通信技术_0

├—数字逻辑

├—数字逻辑2_0

├—数字逻辑_0

├—数字逻辑与VHDL设计_0

├—数字逻辑基础

├—数字逻辑基础_0

├—数字逻辑技术基础_0

├—数字逻辑电路_0

├—数字逻辑电路的ASIC设计2_0

├—数字逻辑电路的ASIC设计_0

├—数字逻辑电路设计

├—数字逻辑电路设计2_0

├—数字逻辑电路设计_0

├—数字逻辑电路设计与实现_0

├—数字逻辑的图形方法2_0

├—数字逻辑的图形方法_0

├—数字集成电路与嵌入式内核系统可测试性设计_0

├—数字集成电路:电路、系统与设计 (第二版)_0

├—数字集群 移动通信系统 (第二版)_0

├—数学物理方法_0

├—数学物理方程及其近似方法_0

├—数据库系统工程师教程_0

├—数据库系统工程师考试大纲_0

├—数据结构(C语言版)导教·导学·导br>

从开发平台到服务器的向上适化

适化概述

所谓适化就是将桌面应用转化为Client/Server应用

适化是一个很复杂的主题 这里不详细讲述 本节将介绍适化Delphi 应用程序中最重要的方面

适化的主要方面有

● 将数据库从桌面平台到服务器的适化

● 将应用程序转化为Client/Server的适化

适化还需要实现从桌面环境到Client/Server环境的转化

桌面数据库和SQL服务器数据库在许多方面有不同之处 例如

● 桌面数据库用于同一时刻单用户的访问 而服务器用于多用户访问

● 桌面数据库是面向记录的 而服务器是面向集合的

● 桌面数据库将每个表存储在独立的文件中 而服务器将所有的表存储在数据库中Client/Server应用必须解决更新的问题 最复杂的是联接 网络和事务控制

适化数据库

适化数据库包含下列步骤

● 在桌面数据库结构的基础上 定义服务器上的元数据

● 将数据从桌面转化到服务器中

● 解决下列问题

● 数据类型差异

● 数据安全性和完整性

● 事务控制

● 数据访问权

● 数据合法性

● 锁定

Delphi提供了两种方法适化一个数据库

● 使用Database Desktop工具 选择菜单Tools/Utilities/Copy to命令将数据库表从桌面方式拷贝到SQL格式

● 建立应用TBatchMove部件的应用程序

这两种方法都可以将表结构和数据从桌面数据源转化到服务器上 依靠这些数据库 可能需要改变结果表 例如 可能想进行不同数据类型的映射

也可以将下列特征加入数据库

● 完整性约束

● 索引

● 检测约束

● 存储过程和触发器

● 其它服务器特征

如果用SQL脚本和服务器数据定义工具定义元数据会更有效 然后用前面介绍的两种方法转移数据 因为如果是手工定义数据库表 Database Desktop和TBatchMove 部件将只拷贝数据

适化应用程序

在理论上 设计用来访问局部数据的Delphi应用程序做很少的修改就可以访问远程服务器上的数据 如果在服务器上定义适合的数据源 你就能将应用程序指向访问它 这只需简单地改变应用程序中TTable或TQuery部件的DatabaseName属性

实际上 在访问局部和过程数据源之间有许多重要的不同之处 Client/Server应用程序必须解决大量的在桌面应用中所没有的问题

任何Delphi应用程序都能用TTable或TQuery部件访问数据 桌面应用程序通常都是使用TTable部件 当适化到SQL服务器上时 用TQuery会更有效 如果应用程序要检索大量记录 则TQuery部件要略胜一筹

如果应用程序使用统计或数学函数 那么在服务器上通过存储过程执行这些函数会更有效 因为存储过程执行更快 使用存储过程还可以减少网络负载 特别是大量行数据的函数

例如 计算大量记录的标准差

● 如果该函数在客户端执行 所有的值从服务器上检索出来并送到客户端 导致网络拥塞

● 如果该函数在服务器端执行 则应用程序只需要服务器上的答案

Delphi客户/服务器应用实例分析

本节中采用的实例是Delphi 数据库的例子CSDEMO CSDEMO是Delphi客户/服务器编程的示例程序 它采用的数据库服务器是Local InterBase Server

CSDEMO较好地示范了BDE环境的配置 InterBASE Server高级功能应用 SQL服务器联接 触发器应用 存储过程编程和事务控制技术等 具有较高的参考价值 本节讲述下列内容

● 数据库环境介绍

● TDatabase的应用

● 不同数据库表的切换

● 触发器编程

● 存储过程编程

● 事务控制应用

数据库环境介绍

本例中采用的数据库服务器是Local InterBase Server Local InterBase是InterBase Server的单用户版 位 兼容ANSI SQL Local InterBase支持客户/服务器应用在单机上的开发和测试 并且可以很容易地适化到InterBase Server上 因此 开发客户/服务器应用采用Local InterBase作为原型开发环境是很方便的

IBLOCAL的BDE参数

本例中的SQL数据库是IBLOCAL 它是由BDE配置工具(BDECFG EXE)设置参数值 它的各项参数值列于下表

表 IBLOCAL的各项参数值

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

参 数 名 参 数 值

────────────────────────────────────

TYPE INTRBASE

PATH

SERVER NAME C:\INTRBASE\EXAMPLES\EMPLOYEE GDB

USER NAME SYSDBA

OPEN MODE READ/WRITE

SCHEMA CACHE SIZE

LANGDRIVER

SQLQRYMODE

SQLPASSTHRU MODE SHARED AUTOMIT

SCHEMA CHCHE TIME

MAX ROWS

BATCH COUNT

ENABLE SCHEMA CACHE FALSE

SCHEMA CACHE DIR

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

数据库结构介绍

IBLOCAL数据库的结构都是由InterBase服务器工具交互式SQL工具(ISQL)定义的

用ISQL定义数据库 首先要用Create Database命令建立数据库 建立的新数据库一般是以GDB为扩展名 建立好后 就可以用SQL语言定义数据库表 例如建立EMPLOYEE表的SQL语句如下

定义域名数据类型

CREATE DOMAIN FIRSTNAME AS VARCHAR( )

CREATE DOMAIN LASTNAME AS VARCHAR( )

CREATE DOMAIN COUNTRYNAME AS VARCHAR( )

CREATE DOMAIN EMPNO AS SMALLINT;

CREATE DOMAIN DEPTNO AS CHAR( )

CHECK (VALUE = OR (VALUE > AND VALUE <= ) OR VALUE IS NULL)

CREATE DOMAIN JOBCODE AS VARCHAR( )

CHECK (VALUE > )

CREATE DOMAIN JOBGRADE AS SMALLINT

CHECK (VALUE BEEEN AND )

CREATE DOMAIN SALARY AS NUMERIC( )

DEFAULT

CHECK (VALUE > )

建立EMPLOYEE表

lishixinzhi/Article/program/Delphi/201311/25125

以上就是关于浅谈Delphi开发经验[2]全部的内容,包括:浅谈Delphi开发经验[2]、初学delphi,应该掌握哪些东西、DELPHI基础教程:动态链接库编程(一)[1]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9792072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存