当前位置:文档之家› Delphi的实际应用

Delphi的实际应用

Delphi的实际应用
Delphi的实际应用

Delphi的实际应用

作者:

学号:

班级:

摘要Delphi是最高效的开发工具,本论文从实际常用的技术、经验、讲解Delphi的一些技术实现,和技术理论讲解,以及讲解在实际中的应用

关键词 Delphi 编写,Delphi调试WEB程序(ISAPI或CGI),Delphi6中调试web程序步骤,简单调试ISAPI。

1 引言

Delphi是著名的Borland(现在已和Inprise

合并)公司开发的可视化软件开发工具。“真

正的程序员用c,聪明的程序员用Delphi”,

这句话是对Delphi经典、最实在的描述。

Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和VC相比,Delphi

更简单、更易于掌握,而在功能上却丝毫不逊

色;和VB相比,Delphi则功能更强大、更实

用。可以说Delphi同时兼备了VC功能强大和

VB简单易学的特点。它一直是程序员至爱的编

程工具。

2 Delphi的基本介绍

Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国Borland (宝兰)公司于1995年开发。

2.1详细介绍

Delphi由Borland公司推出的Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编译器、最为领先的数据库技术。

对于广大的程序开发人员来讲,使用Delphi 开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。

Delphi是Borland公司研制的新一代可视化开发工具,可在Windows3.x、Windows95、WindowsNT、WindowsXP、Windows Vista、Windows7等环境下使用。当前,Delphi 也可以在LINUX平台上开发应用,其在LINUX上的对应产品Kylix。

Delphi 拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。Delphi它提供了500多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件

“真正的程序员用c,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB 相比,Delphi则功能更强大、更实用。可以说Delphi 同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。Delphi具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。但最重要的还是Object Pascal语言,它才是一切的根本。Object Pascal 语言是在Pascal语言的发展起来。Delphi提供了各种开发工具,包括集成环境、图像编辑(Image Editor),以及各种开发数据库的应用程序,如

DesktopDataBase Expert等。除此之外,还允许用户挂接其它的应用程序开发工具,如Borland公司的资源编辑器(Resourse Workshop)。在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。

2.2 Delphi的发展历程

1995 1.0 支持16位Windows开发。基于框架(VCL)的,可拖曳、可视化的开发环境

1996 2.0 以32位编译器为核心,支持C/S 数据库开发

1997 3.0 语法:加入接口(Interface)的机制。IDE:首次提供了(Code Insight)

1998 4.0 语法:加入动态数组和方法覆盖等支持。IDE:增强调试能力,提供代码模板

1999 5.0 增强了IDE和调试器,提供了TeamSource。简化Internet的开发,增强数据库支持

2001 6.0 提供了Web Service。跨平台的Kylix 1.0和CLX

2002 7.0 提供了.NET的过渡,增强的Internet开发(IntraWeb),完善数据库支持,增加了Indy网路元件和Rave Report资料库报表,并且支援UML及XP的程式制作。

2003 8.0 单纯的for .NET版本,拥有C#的能力,保留了Delphi的易用性(业内视为一个过渡版本)

2004 9.0 正式名称:Delphi 2005。语法:加入了inline及for in loop等功能。IDE:把Borland Delphi. Net、Borland Delphi Win32、Borland C#、Enterprise Core Objects等环境和功能集成成一个开发工具,因此可以在Win32和.NET开发环境中切换或同时进行

2005 10.0 发布名称:Borland Developer Studio(BDS) 2006。集成C++ Builder; ECO(Enterprise Core Objects)升级到ECO III; 集成Together for Delphi,可以在同一个IDE中进行UML开发;QA Audits和QA Metrics可以快速的把握专案的设计和代码的质量。

2006 Turbo Borland将BDS 2006拆分成几个独立的版本(Delphi for win32、Delphi for .net、C#、C++ Builder),而且不能同时安装两个不同的版本。由于Borland的IDE生产部份独立成为一家名为codegear的公司,所以这个版本是以Borland名义推出的最后一个版本。

2007 11.0 正式名称:CodeGear RAD Studio - Delphi 2007。

2008 5.7 Borland正式宣布将CodeGear 子公司出售给Embarcadero(易博龙)技术公司。

2008 8.25 Embarcadero发布CodeGear Delphi 2009 Pre-release版。

2009 8.25 Embarcadero发布CodeGear.RAD.Studio.2010版

2010.8.30 Embarcadero 发布 Delphi XE (又名Delphi 2011,代号为Fulcrum)

2011.1.27 Embarcadero公司宣布成立一个新的精简版Delphi Starter Edition,是在爱好者和谁得到一个稍微简化的功能集为一个小的创业公司的价格,旨在可用性。

2.3 特点特性

Delphi发展至今,从Delphi1、Delphi2到现在的Delphi2011,不断添加和改进各种特性,功能越来越强大。Delphi5开始添加了对IDE(集成开发环境)的很多改进新特性,扩展了数据库支持(ADO和InterBase数据库),带有Internet支持的MIDAS改进版,TeamSouse版本控制工具,转换功能,框架概念以及很多的新组件与新特性。

Delphi 6.0是Borland公司推出的一套无论是界面还是功能都近乎完美的应用程序开发工具。与以前的Delphi版本相比,Delphi 6.0使用更简便,效率也更高。

Delphi 7.0Delphi 7.0使用更简便,效率更高,最稳定的一个版本,被称为开发人员的工具之最,也是Borland产品最顶峰时期,更是风靡全球。

Delphi2010内置的Direct 2D模块及开发库,其新加的功能:拥有一个能同时运作于x86和x64的IDE,在此IDE下将会有跨平台编译器,能够编译用于linux和MAC的应用程序;将会支持windows7下的触摸式编程;强化的DataSnap;将支持云计算;将支持函数式编程,这需要很多时间,据David估计是2011会实现。

Delphi XE2实现了跨平台通用开发,通过Delphi XE2所带的FireMonkey平台,Delphi可以开发跨平台应用程序,并原生编译到Windows和Mac OS X平台。FireMonkey还可以为iPhone、iPod Touch 和iPad创建iOS应用,并分发到苹果公司的应用

商店。Delphi的FireMonkey应用程序拥有完全的硬件加速。

2.3.1 特点

(1)直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度更快。在处理速度和存取服务器方面,Delphi的性能远远高于其他同类产品。

(2)支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。这样,大大减少了对服务器的请求和网络上的数据传输量,提高了应用处理的速度。

(3)提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。

(4)具有可重用性和可扩展性。开发人员不必再对诸如标签、按钮及对话框等Windows的常见部件进行编程。Delphi包含许多可以重复使用的部件,允许用户控制Windows的开发效果。

(5)具有强大的数据存取功能。它的数据处理工具BDE(BorlandDatabaseEngine)是一个标准的中介软件层,可以用来处理当前流行的数据格式,如xBase、Paradox等,也可以通过BDE的SQLLink 直接与Sybase、SQLServer、Informix、Oracle等大型数据库连接。Delphi既可用于开发系统软件,也适合于应用软件的开发。

(6)拥有强大的网络开发能力,能够快速的开发B/S应用,它内置的IntraWeb和ExpressWeb使得对于网络的开发效率超过了其他任何的开发工具。

(7)Delphi使用独特的VCL类库,使得编写出的程序显得条理清晰,VCL是现在最优秀的类库,它使得Delphi在软件开发行业处于一个绝对领先的地位。用户可以按自己的需要,任意的构建、扩充、甚至是删减VCL,以满足不同的需要。

(8)从Delphi8开始Delphi也支持.Net框架下程序开发。

当前DELPHI 已经成为一个品牌,而不仅仅是一个开发平台或开发语言的名称。当前DELPHI产品已经由CodeGear公司继续发展,该公司是BORLAND公司的全资子公司。当前,CodeGear为广大开发者提供了DELPHI FOR PHP,以高度可视化的方式全面支持面向对象的PHP 网站开发,大大提高了PHP开发网站的代码复用程度,成为WEB应用开发的新利器。

2.4 编程方法

Delphi的编程语言是以Pascal为基础的。Pascal语言具有可读性好、编写容易的特点,这使得它很适合作为基础的开发语言。同时,使用编译器创建的应用程序只生成单个可执行文件(.EXE),正是这种结合,使得Pascal成为Delphi这种先进开发环境的编程语言。

将讨论ObjectPascal的主要特点,并讲解如何在事件处理过程和其他应用程序中,使用它来编制程序代码。本章将讲解Delphi应用程序中最常用的ObjectPascal语法,而不是Pascal语言的一切细节。如果您完全不熟悉Pascal编程,请参阅一些基础的Pascal教程。如果您具有编程经验,并能熟练地使用其他流行程序语言,您将在本章的ObjectPascal中发现一些相同的概念。如果您已经熟悉了BorlandPascal,就可以快速浏览或跳过本章。

编写ObjectPascal程序代码

在编写自己的ObjectPascal程序时,要注意程序的可读性。Pascal语言是英式结构语言,在程序中选择合适的缩排、大小写风格,并在需要时将程序代码分行,会使得程序代码能够很容易地

被自己和他人读懂。一般的程序员都有这样的体验:如果不给程序加上适当的注解,一段时间后,自己也难以理清程序的流程。给程序及时地加上注释是良好的编程习惯。Delphi的注释需要加注在{}之间,编辑器会把它们处理成为空白。Delphi保留了BorlandPascal编辑器的风格,关键字采用黑体字,被注释的部分会变暗,这使得编程风格良好,易读易写。

2.5 语句类型

2.5.1 赋值语句

在事件处理过程中,最常用到的工作就是把一个新值赋给一个属性或变量。在设计用户界面时,可以使用ObjectInspector(ObjectInspector)来改变其属性;但有时需要在程序执行时改变属性的值,而且有些属性只能在执行时改变,这些属性在Delphi的在线帮助的“Proprety”主题中被标为执行期属性。进行这种改变,就必须使用赋值语句。

下文的赋值语句表征一个OnClick事件。当按钮按动后,将编辑框部件Edit1的Color属性置为clRed:

procedureTForm1.Button1Click(Sender:TObject );

begin

Edit1.Color:=clRed;

end;

当按动按钮后赋值语句被执行,编辑框变成红色。

在语句中,部件的名称在属性前,中间用“.”表示属性的所属关系。这样就准确地指定了要将clRed值赋给哪一部件的哪一属性。赋值号为“:=”,不论给属性还是给变量赋值,都是将右边的值赋给左边的属性或变量。

当将一个属性值、变量、常量或文本数据赋给属性或变量时,所赋值的类型和接受此值的属性或变量的类型应相同或兼容。一个属性或变量的类型定义了此属性或变量的可能值集合,也定义了程序代码可以执行的运算。在前边的例程中,编辑框部件的Color属性和clRed的类型都是TColor。可以在在线帮助中找到一个属性的类型;另外一种方法是在ObjectInspector中选定该属性值段,并按下F1键,则类型将在属性说明的结尾处列出,例如Color属性列出下边的语句:

PropertyColor:TColor;

有些属性是只读(ReadOnly)的,它们只能被读取,不能被改变。请查阅在线帮助,在Delphi 中这些只读属性都有注解。

标识符的说明与使用

标识符是Delphi应用程序中一些量的名称,这些量包括变量(var)、常量(const)、类型(type)、过程(procedure)、方法(Method)及其他,ObjectPascal在应用标识符时,必须首先说明它们。ObjectPascal是强类型语言,它的编译器可以检查确保赋给变量或属性的值是正确的类型,以便于您改正错误。因为ObjectPascal是编译语言,所以Delphi的执行速度要比使用解释语言快得多。在使用标识符前说明它们,可以减少程序错误并增加代码的效率。

变量

变量是程序代码中代表一个内存地址的标识符,而此地址的内存内容在程序代码执行时可以被改变。在使用变量前必须对它进行说明,即对它进行命名,并说明它的类型。在所有变量说明以前加上保留字var。变量说明左边是变量的名称,右边则是该变量的类型,中间用(:)隔开。

var

Value,Sum:Integer;

Line:String;

在窗体中加入一个名称为Edit1的编辑框,再加入一个名称(属性Name)为Add的按钮部件,并建立如下的事件处理过程:

procedureTForm1.addClick(Sender:TObject);

var

X,Y:Integer;

begin

X:=100;

Y:=20;

Edit1.Text:=IntToStr(X+Y);

end;

在本例中,当按动ADD按钮时,编辑框中显示值120。在ObjectPascal中,必须确保变量或属性被赋予类型相同或兼容的值。您可以尝试将赋给X 的值改为100.0,或去掉IntToStr函数,在编译时会出现类型不匹配的错误,这也说明了ObjectPascal强类型语言的特点。

2.5.2 过程函数

过程与函数是程序中执行特定工作的模块化部分。Delphi的运行库包含许多过程与函数以供您的应用程序调用。您不必了解过程与函数的逻辑,但要知道过程与函数的用途。在对象中说明的过程和函数称为方法(Method)。所有的事件处理过程都是过程,以保留字procedure开头。每一个事件处理过程只包含了当这一事件发生时需要执行的程序代码。在事件处理过程中使用Delphi已经存在的过程与函数,只需在程序代码中调用它们即可。

2.5.3 case语句

case语句适用于被判断的变量或属性是整形、字符型、枚举型或子界型时(LongInt除外)。用case语句进行逻辑跳转比编写复杂的if语句容易阅读,而且程序代码整形较快。

下面的例程显示一个使用case语句的窗体:

建立如下的事件处理过程:

procedureTForm1.Button1Click(Sender:TObject );

var

Number:Integer;

begin

Number:=StrToInt(Edit1.Text);

caseNumberof

1,3,5,7,9:Label2.Caption:='奇数';

0,2,4,6,8:Label2.Caption:='偶数';

10..100:

begin

Label2.Caption:='在10到100之间';

Form1.Color:=clBlue;

end;

else

Label2.Caption:='大于100或为负数';

end;

end;

执行程序,当Edit1部件接受到一个值,并按动“OK”按钮触发程序后,Number便被赋值为用户输入的数值。case语句根据Number的值判断该执行哪一条语句。象if语句一样。case语句也有可选择的else部分。case语句以end结尾。

3 Delphi 编写ActiveX控件(OCX控件)的

知识和样例

3.1ActiveX应用情况简介

ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分。ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32位应用编程接口(Win32 API)和组件对象模型的一系列扩充和增强,目标是把计算机桌面环境与因特网环境集成起来,同时保护在Windows技术中现有的开发投资。微软的 ActiveX技术根本上就是修改过的OCX技术,使它能够跨越Internet,主要是使用WWW来传递控件。

ActiveX控件可以被集成到很多支持ActiveX 的应用当中去,或者直接用来扩展应用的功能,这些支持ActiveX的应用包括C++ Builder、Delphi、Visual dBASE、Visual Basic、Visual C++、Internet Explorer、Netscape Navigator等。ActiveX控件还可以使用在因特网上,在网页上使用它来发布信息、处理与用户的交互,但是需要使用支持ActiveX的浏览器才能阅读这些网页。目前已经开发出来的ActiveX控件越来越多,由于ActiveX控件具有很好的特性,我们可以在编程的时候选择使用合适的控件来加快自己的应用开发。可以不夸张地说,ActiveX控件是Windows平台编程必不可少的法宝。

使用ActiveX控件是相对比较简单的。但是,开发ActiveX控件并不是一件简单的事情,必须要熟悉而不只是了解ActiveX技术才能开发出好的ActiveX控件。而COM、OLE等ActiveX技术对于一般的程序员来说,是比较复杂难懂的。所以,ActiveX控件的开发者一般都是“老鸟”级别的程序员。

但是如果您有了Inprise公司的Borland Delphi,那又另当别论了。Delphi 作为Windows平台上最优秀的程序开发工具之一,为ActiveX控件的开发提供了强有力的支持,让您轻松地开发ActiveX控件。Delphi的开发者仅仅需要了解一些ActiveX控件的简单知识,就可以使用Delphi提供的工具来快速开发自己的 ActiveX控件。本文详细介绍了利用Delphi所提供的工具来快速开发ActiveX控件的技巧。

3.2ActiveX控件的相关知识

要开发ActiveX控件,我们先得简单了解一下ActiveX控件的一些相关知识。在Delphi中,一个ActiveX控件由如下几个部分组成: VCL(可视化构件库)控件、属性、方法、事件,以及一个或者多个相关的类型库,其中每个部分都有各自的作用。

3.2.1VCL构件

在Delphi中,一个ActiveX控件是由一个或者多个VCL构件经过包装以后得到的。所以,要使用Delphi来开发ActiveX控件,必须先得开发出或者选择要进行包装的VCL构件。也正是由于这个原因,我们可以将Delphi里大量优秀的VCL构件包装成ActiveX控件,从而可以在别的不能够直接使用VCL构件的开发工具(如Visual Basic、Visual C++)里也能够使用到这些控件啦!

但是,在Delphi里可以用来做ActiveX控件的VCL构件必须是TWinControl的后代。如果想用一个TGraphiControl的子类做ActiveX控件,在大多数情况下只需要把它的基类变为TCustomControl即可。有的VCL构件是被注册成非ActiveX控件的,例如EditControl,这些控件也不能做ActiveX控件。

3.2.2类型库

类型库包含了控件的类型定义信息,提供了比接口更多的详细信息,是控件向它的宿主程序提供服务信息的一种途径。类型库的目的是为其他应用编程工具提供关于它包含的构件对象的信息。开发ActiveX控件时,Delphi把类型库信息存入一个.TLB文件中及一个对应的Pascal文件(.TLB文件的Pascal语言版本),编译时类型库将作为资源链入DLL或者EXE等中。

类型库的元素包括:

(1)类型库信息:包括类型库的总体信息和特征、

当前类型库引用的其他类型库;

(2)构件类:代表整个ActiveX控件,包含了提

供给客户应用的接口;

(3)接口属性和方法、事件;

(4)枚举类型:一种用作数据类型的相关常量,可以用在类型库的其他地方定义属性和方法。

Delphi提供了一个类型库编辑器,用于观察或

修改类型库,可以使用它来增加、修改、删除类型库的各种元素。类型库的界面上可以看到,左边是一个树形结构,各种元素的成员作为子节点出现;右边是根据左边所选中的元素类型显示不同的页签,可以对该元素的一些属性进行编辑。

3.2.3属性、方法和事件

VCL构件的属性、方法和事件自然就变

成为ActiveX控件的属性、方法和事件。控件的属性,例如颜色、标签等;控件的方法是请求控件执行某些动作;事件则是控件给宿主程序的一个通知,发生了一些事情。

3.2.4属性页

ActiveX控件所带的属性页可以让控件的使用者查看和修改控件的属性。您可以把几个属性捆绑在一个属性页上,也可以只为一个属性提供一个属性页。

3.3快速开发ActiveX控件

下面就让我们来使用Delphi具体做一个ActiveX控件。

假设我们现在面临的问题是,在使用Visual C++(VC)开发一个应用的时候,需要使用一个Grid 控件来处理界面的事情,而使用VC所提供的FlexGrid控件又很麻烦,发现Delphi里的TStringGrid构件非常合适。但是TStringGrid是Delphi里的VCL构件,又不能直接被VC使用,怎么办呢?不用愁,我们只要把 TStringGrid包装成为VC可以使用的ActiveX控件就可以解决这个问题了。

Delphi为ActiveX控件的开发提供了两个向导:

1>、ActiveX控件向导可以让你把一个VCL构件包装成为一个ActiveX控件。下面将会使用到这个向导。

2>、ActiveForm向导则可以把几个VCL构件包装成为一个ActiveX控件或者开发一个完整的ActiveX应用。

3.4开发实例:

在Delphi当中把TStringGrid包装成一个ActiveX控件的主要步骤:

1、点击【File】—>【New】—>【Other】菜单项,打开【New Items】,选择【ActiveX】;

2、选择【ActiveX Library】选项卡,点击ok,创建工程。

3、点击【File】—>【New】—>【Other】菜单项,打开【New Items】,选择【ActiveX】;

4、选择【ActiveX Control】选项卡,点击ok,打开【ActiveX Control Wizard】窗口;

5、在【VCL Class Name】组合框中选择‘VCL’类(如TStringGrid),单击Ok;

6、添加代码;

7、运行程序,生成ocx文件。

8、在Delphi中单击【Component】—>【Import ActiveX Control】菜单项,打开【Import ActiveX】窗口,在窗口中点击【Add】,然后选择ocx文件,然后单击Install按钮安装组件。如果成功,在ActiveX组件页中将显示该组件。

1、首先,要启动ActiveX控件向导,创建ActiveX 项目

首先,要启动ActiveX控件向导,选择File菜

单里的New命令,在弹出的对话框里选择ActiveX 页签,然后双击ActiveX Control图标即可。向导中的第一个域要求选择一个要进行包装的VCL构件,点击选择TStringGrid。其他几个域取缺省值即可,如果需要包含版本信息等其他信息,也可以选上。点击OK按钮,向导将生成一个Delphi的ActiveX 控件开发项目 StringGridXControl1,包括以下几个的文件:

1. 一个ActiveX项目文件(dpr后缀名),包含了启动、初始化一个ActiveX控件所需要的代码。通常是不需要修改这个文件的。

2. 一个类型库文件(tlb后缀名),定义和实现了ActiveX控件向外所提供的接口、属性、方法和事件。Delphi专门为这个文件提供了一个Pascal版本的文件(tlb扩展名),而且自动维护这两个文件的一致性。

3. 一个ActiveX实现的文件(Pas扩展名),使用了Delphi ActiveX框架(DAX)定义和实现了这个ActiveX控件,具体实现类型库里定义的接口。这个文件是我们经常需要修改的。DAX是Delphi对ActiveX控件的COM规约的实现方式。

4. 如果选择了包括一个“关于”对话框的话,还有一个对应的对话框实现文件。

Delphi的ActiveX控件向导根据所包装的VCL构件的属性、方法和事件生成了ActiveX控件相应的属性、方法和事件。但是它没有把 VCL构件使用非OLE类型(如集合、数组等)的属性、方法和事件转换过去。例如,TStringGrid的Options属性是集合类型的, RowHeights是数组类型的,在控件向导所生成的属性中就没有这些属性。但是有时候偏偏这些属性、方法和事件是很重要的,这时就需要手工添加一些属性、方法和事件!

2、在ActiveX控件中添加一个属性和实现的方法:

现在为这个ActiveX控件添加一个BRowSelect 属性,这个属性本来是TStringGrid的Options属性的子属性,控制Grid是否处于行选中状态。在StringGridXControl1项目里打开ActiveX实现文件StringGridImp1.pas,选择【Edit】菜单里的【Add To Interface】命令(注意:只有打开了实现文件,这个命令才能使用),Delphi将弹出增加接口对话框。在对话框里的Interface项选择Properties/Methods-IStringGridX,然后在Declaration里写入BRowSelect属性的声明(如果你选中了对话框里的Syntax Helper选项,Delphi 将随时提示你应该输入的内容):Property BRowSelect:WordBool;点击OK后,这个属性的相关信息将自动加入到控件的实现文件、类型库文件和对应的Pascal文件中。因为控件的接口是双向的,所以在Pascal文件里使用了读和写两个方法来实现控件的属性。

1>、Delphi自动在类型库里加入了以下声明:property BRowSelect: WordBool read Get_BRowSelect write Set_BRowSelect;

这说明了:对于BRowSelect这个属性,有一个读方法Get_BRowSelect,一个写方法Set_BRowSelect。Delphi自动在控件的实现文件里加入了对BRowSelect属性的读和写访问方法的声明和实现:

function Get_BRowSelect: WordBool; safecall; procedure Set_BRowSelect(Value: WordBool); safecall;

这时候这两个方法的实现体是空的,必须得自己填入具体实现的代码:

2>、在实现文件中编写代码

function TStringGridX.Get_BRowSelect: WordBool;

begin

//以下代码由自己根据需要编写,获得现在是否处于行选中状态

with FDelphiControl do

Result := goRowSelect in Options ;

end;

procedure TStringGridX.Set_BRowSelect(Value: WordBool);

begin

//以下代码由自己根据需要编写,设置行选中状态

with FDelphiControl do

begin

if Value then

Options := Options + [goRowSelect]

else

Options := Options - [goRowSelect];

end;

end;

3、生成ActiveX控件(OCX控件)

这时候,使用类型库编辑器来查看类型库,可以看到新增加的BRowSelect属性。好了,做好了前面这些工作以后,选择Project菜单的Build StringGridXControl1命令即可生成我们所需要的ActiveX控件。在项目的目录下,我们可以找到 StringGridXControl1.ocx这个文件,这个就是我们的ActiveX控件啦!

4、把ActiveX控件(OCX控件)注册到系统中

1>、在Delphi中单击【Component】—>【Import ActiveX Control】菜单项,打开【Import ActiveX】窗口,在窗口中点击【Add】,然后选择ocx文件,然后单击Install按钮安装组件。如果成功,在ActiveX组件页中将显示该组件。

2>、把它拷贝到Windows 9x的System目录或者Windows NT/2000的System32目录里面。在DOS命令行状态中,运行命令:regsvr32.exe c:\winnt\system32\alasunsmscon.ocx (regsvr 32 StringGridXControl1.ocx)在系统中注册这个StringGridX控件。

3>、在Delphi中,打开创建该ActiveX控件的工程(*.dpr)文件,然后选择Run->Register ActiveX Server.

注意,以上第2种方法和第3种方法操作只是向Windows消息系统注册了该ActiveX控件,但是并没有将其添加到Delphi的VCL库中。还无法在其它程序中调用。我们还需要进行第1中方法中的操作。如果已经注册完毕就可以在Import ActiveX中查找,如果没有就需要点击【Add】充文件的路径添加。

4 Delphi的实际应用

4.1美国海军舰队现代化计划美国华盛顿特区华盛顿海军基地

美国海军「舰队现代化计划」( Fleet Modernization Program, FMP) 推行宗旨是为了确保美国海军在船舰设备上持续居于全球领先地位。美国国防部自90年代起大幅缩减资源预算,美国海军现有船舰数目已由全盛之80年代中期的600艘骤减为260艘,为维持美国海军独步全球的海上武力,其适应的方法唯有加速现代化与精进船舰效能。

技术层面

数据库/服务器——Oracle (HP9000)

作业平台——Windows NT Server

网络——TCP/IP,Novell及数据机s其他技术——采用Citrix Winframe

数据库容量,共计175个数据表,200,000笔记录,1GB数据数据

用户数量,全世界共有500个用户

开发层面

工具——Delphi Client/Server Suite

其他评估中工具——SQL Windows,PowerBuilder

开发成员——18位程序设计师

开发周期——少于六个月

实用日期——1996年8月

4.2 应用简介

舰队现代化计划(FMP)的主要任务是促使美国海军在船舰与战术系统方面,保有绝对的技术领先地位。

采用Delphi将后勤、预算及执行功能联接于单一的Client/Server结构数据库应用程序,可大幅增进舰队现代化计划(FMP)的效益。

■PowerBuilder与SQL Windows经评估后则显得速度太慢。

4.3 投资效益

于使用旧有的开发工具相比,应用程序的快速开发与程序组件的重复使用等优点在开发时间方

面至少可节省六个月以上。

快速的学习曲线可使程序设计师在二个月内

轻松地熟悉并掌握Delphi面向对象程序设计(OOP)技术。

■这个崭新的系统每年至少可节省百分之二

十的维护经费。

4.4应用状况

舰队现代化计划管理系统包含下列三项不同功能:

后勤——保存海军各艘船舰现代化的相关数据,包括料件使用、需求、变更及详细的进厂维修周期,此项功能的原软件系统为已有十年历史之EMPMIS系统。

预算——计划者可深入探究各种资金分配组合,比较各项目的差异以获取最大的整体效益,并执行假设推论以满足确认需求,此项功能之原软件系统为已有六年历史的SABRES系统。

执行——追踪所有核定过的预算支用情形,实际上是本计划的检验工具,此项功能的原软件系统为已有六年历? SAFE系统。

FMP希望象舰队管理那样将其管理系统也实现现代化,将这三项以字元为基础的独立应用软件更新为一个使用单一数据库的GUI Client/Server系统。在选用Oracle为数据库软件后,FMP评估认为PowerBuilder及SQL Wi ndows等二项工具速度似乎太慢,且其强轫性不足以管理必需的大量数据。

4.5解决方案

FMP选择Delphi以构建其新的系统,Delphi 的快速应用程序开发能力可加速应用程序原型设

计的完成,而面向对象环境下模组组件的重用功能更是节约了大量的成本。此外,Delphi的前端工具提供了可联接Oracle综合数据库的完整系统界面。为弥补现场设备的不足,开发者选用可利用网络或数据机联接来构建虚拟Windows环境的Citrix WinFrame。

虽然从程序式主机转换到面向对象的

Client/Server程序设计,程序设计师势必需要有一段学习曲线,但FMP认为对已熟悉海军作业程序与FMP系统的现有开发官员施行复训任用,远较引进一批新的Delphi程序设计师为佳。实际上,根据Delphi易学的特性,其官员便在二个月内转为采用面向对象技术进行应用程序开发。用户对新的Client/Server FMPMIS系统效能甚为满意,FMP保守的估计:因维护成本的显著降低,每年可节约至少百分之二十的支出。

"我最喜欢Delphi 2.0的二件事是,一、强大的效能——执行速度远超过p- code解释;二、快速应用程序开发功能,我们几乎可以在任何时间快速地自原型程序起步进行开发,对我们而言,Delphi实为一从原型程序设计到实用成品之完整

的解决方案。"

──美国海军FMP专案组长George Brush

应用单位应用程序开发工具Database Server 政府/军事部门舰队现代化计划Delphi Oracle

美国航空飞行组员品质考核追踪系统美国德

州达拉斯市

美国航空(American Airlines)是全美最大的航空运输公司之一,该公司拥有95,000余名员工,航点广及290余个城市,每年载客量逾八千二百万人次,列名其空勤组员名单内的飞行员即多达

9,000余名,这还不包括其分支航空机构的成员,美国航空目前所使用的系统为SABRE系统,该系统为全球最大的非军事用途电脑系统,不仅以卓越的旅客订位容量著称,亦为公司内部所有航机运作及商业营运的骨干。

5 总结

类似的我们还可以往ActiveX控件里加入更多的属性。还可以往ActiveX控件加入新的方法、事件,加入的方法与加入属性类似。而且加入以后,Delphi也会自动往相应的文件中加入对应方法和事件的声明和实现,具体的实现体还得自己编写,这里不再多说。

我们可以注意到,Delphi自动生成了把VCL构件包装成ActiveX控件所需的包装代码。我们为ActiveX控件增加新的属性、方法和事件的时候,

只需要在接口方法的实现里把ActiveX控件的数据与VCL构件的数据联系起来,或者使用VCL构件的方法来完成ActiveX控件的行为,而基本上不需要关心编写一个ActiveX控件的具体细节,例如COM

规约等。

前面提到,还可以为ActiveX控件添加定制的

属性页。这里不必专门添加新的属性页,因为大多数支持ActiveX的IDE编程环境已经为每个

ActiveX控件提供了一个包含所有属性的属性页了,我们使用这个属性页即可。

由于有了Delphi对开发ActiveX控件强有力的支持,我们基本不费什么功夫就很快得到了一个新的ActiveX控件。Delphi让使用它来开发ActiveX 控件的开发人员把注意力集中到了作为ActiveX控件基础的VCL构件上,而不必过多地关心ActiveX

控件的细节,所以让对 ActiveX技术不是太熟悉的开发者也能够享受到开发ActiveX控件的乐趣,而且也大大丰富了在VC、VB里开发能够利用的控件。

DELPHI 中WEBBROWSER控件详解实例

Delphi中WebBrowser控件详解实例 2008-10-18下午06:58 很久都没有原创了,前几天帮朋友做了个网址发布程序,主要应用到了WebBrowser控件。今天主要给大家演示一下过程,让大家学习一下Delphi工具。 WebBrowser功能: 1。自动加载网页 2。去除WebBrowser滚动条 3。WebBrowser自身打开页面 4。禁止右键 1。首先,新建一个FROM窗体: 2。加入一个WEBBROWSER控件

3。调整后如下: 4.这样一个webbrowser就完成了,下一步我们来让程序打开后自动加载一个网页。 核心代码:WebBrowser1.Navigate('https://www.doczj.com/doc/a715462122.html,'); 双击窗体灰色处,对窗体进行初始化,在代码窗口中输入(Begin与End间输入核心代码): procedure TForm1.FormCreate(Sender:TObject); begin WebBrowser1.Navigate('https://www.doczj.com/doc/a715462122.html,');//窗体初始化完成WEBBROWSER加载一个网页end; 5。下面我们来实现禁止WEBBROWSER控件的滚动条功能:

核心代码:WebBrowser1.oleobject.Document.body.Scroll:=‘no’; 利用这个代码去掉滚动条的前提是webbrowser中必须有打开的网页,也就是在网页加载完完毕后再去掉滚动条。所以首先要判断页面是否加载完毕,如果加载完毕,就执行上面的语句 去掉滚动条。这时就要引入一个按扭控件来触发程序 加入SPEEDBUTTEN 调整形后:

第十二章研究资料的审核、整理与统计分析

第十二章研究资料的审核、整理与统计分析 第一节资料的审核与整理 一、资料审核的概念和原则 1.资料审核的概念 资料审核是指在着手整理调查资料之前,对原始资料进行审查与核实的工作过程,目的是保证资料的客观性、准确性和完整性,为资料的整理打下坚实的基础。 2.资料审核的原则 资料审核工作一般应按照以下一些原则进行: (1)真实性原则。对收集到的资料要根据实践经验和常识进行辨别,看其是否真实可靠的反映了调查对象的客观情况。 (2)标准性原则。在较大规模的调查中,对于需要相互比较的材料要审核其所涉及的事实是不是具有可比性。 (3)准确性原则。要对资料进行逻辑检查,检查资料中有无不合理和相互矛盾的地方。例如,某人年龄栏内填写的是23岁,而工龄栏内填写的是18年,这显然是不合逻辑的。 (4)完整性原则。要检查调查资料是不是按照提纲或统计表格的要求收集齐全。如果资料残缺不全,就会降低甚至失去研究的价值。 二、资料的整理 1.资料整理的概念和原则 资料的整理是根据研究目的将经过审核的资料进行分类汇总,使资料更加条理化和系统化,为进一步深入分析提供条件。 资料整理应遵循三条原则: (1)条理化。条理化是指对资料进行分类从而为进一步的分析创造条件。 (2)系统化。系统化是指从整体上考察现有资料满足研究目的的程度如何,有没有必要吸收补充其他资料。 (3)统计汇总。统计汇总是指将调查得到的各种数据进行初步的统计整理,以把握其总体上的数量特征。 2.分类与分组 从严格的意义讲,分类和分组都是一种定性分类方法,即根据研究对象的某些特征将其区分为不同种类。分类适用于全部调查资料,分组只限于数量化的统计资料,习惯上将后者称为统计分组或称为统计分类。就调查过程而言,调查资料的分类有两种,即前分类和后分类。前分类就是在设计调查提纲、调查表格或问卷时,按照事物或现象的类别设计指标,然后再按分类指标收集、整理资料。后分类,是指在调查资料收集起来以后,再根据资料的性质、内容或特征而将它们分别集合成类。如文献调查的资料、非结构观察、座谈会的纪录、问卷调查中开放性回答等。 (1)分类的类型及意义。分类的方法有两种,即现象分类方法和本质分类方法。本质分类法也被称为科学分类法。 (2)选择和确定分类标准的原则。分类的关键在于选择和确定分类标志。 ①分类标志的类别。分类标志可以分为品质标志和数量标志。按品质标志分类就是选择反映事物属性差异的品质标志为分类标准。 ②选择分类标志的原则。要选择正确的分类标志,必须遵循四条原则: 第一,从研究目的出发选择标志。 第二,从反映事物本质的需要去选择标志。 第三,根据具体的历史条件去选择标志。分类标志要随历史条件的变化而变化。第四,分组标志的确立必须坚持穷尽性和互斥性的原则。穷尽性是指分组标志的确定必须使所有个案的特征表现都找到归属组,无一例外,也就是要将所有可能的类别都要列出。在研究我国宗教信仰时,只分佛教、基督教、伊斯兰教这三大类。互斥性是指分组标志应该互斥,要使每个个案的特征表现只能分配到一组之内,不能同时在几个组内出现。

【VIP专享】delphi 三层架构CS简单例子一步步做

delphi 三层CS架构一步步建立的简单例子 所谓三层: (1) 客户端 (2) 服务器端 (3) 数据库 在数据访问时,使得客户端必须通过服务器来访问数据库。提高了系统的安全性。 在Delphi中可以使用Socket或者Dcom组件来连接他们相互间的通讯。 本例使用SOCKET组件. DCOM用在局域网, SOCKET用在互联网. 环境为windows xp+ delphi 7 + access2000 创建过程: 1、请用ACCESS2000新建一个数据库database02.mdb. 2、请在delphi7执行file-new- application, 新建一个桌面, 上面放一个label, label.caption =’服务器端已运行….’

3、接下来在delphi7执行file --new--other,选择"Multitier"--"Remote data module"。在跳出来的对话框里面输入名称(任意),例如: AppSqlConn。选择确定,进入remote data module窗口。 界面如下图所示

4、加入组件:adodataset,点击connectionstring属性,点击后面的…,进 入设定连接窗口。在选择数据库中选择自己想要使用的数据库 database02.mdb。一般只要地址正确、用户名和密码无误,肯定可以连接通过。确定。 3、ADODATASET1在commandtext中点击后面的…,啥也不用设定,默认 配置; 4、ADODATASET1将active属性设置为false。

5、再加入组件:datasetprovider。设定其dataset属性为上面的adodataset1。 5.1 接着设置datasetprovider1的属性,poallowcommandtext=true, 其他的参数默认即可. datasetprovider1的属性如下图所示

关信平《社会研究方法》复习笔记(第十二章 研究资料的审核、整理与统计分析)【圣才出品】

第十二章研究资料的审核、整理与统计分析 一、资料的审核与整理 1.资料审核的概念和原则 (1)资料审核的概念 指在着手整理调查资料之前,对原始资料进行审查与核实的工作过程,目的是保证资料的客观性、准确性和完整性,为资料的整理打下坚实的基础。 (2)资料审核的原则 ①真实性原则。对收集到的资料要根据实践经验和常识进行辨别,看其是否真实可靠地反映了调查对象的客观情况。 ②标准性原则。在较大规模的调查中,对于需要相互比较的材料要审核其所涉及的事实是不是具有可比性,对于统计资料更要注意指标的定义是否一致,计量单位是否相同等。 ③准确性原则。要对资料进行逻辑检查,检查资料中有无不合理和相互矛盾的地方。 ④完整性原则。要检查调查资料是不是按照提纲或统计表格的要求收集齐全。 2.资料的整理 (1)资料整理的概念 资料的整理是根据研究目的将经过审核的资料进行分类汇总,使资料更加条理化和系统化,为进一步深入分析提供条件。 (2)资料整理应遵循三条原则: ①条理化。是指对资料进行分类从而为进一步的分析创造条件。

②系统化。是指从整体上考察现有资料满足研究目的的程度如何,有没有必要吸收补充其他资料。 ③统计汇总。是指将调查得到的各种数据进行初步的统计整理,以把握其总体上的数量特征。 (3)分类与分组 从严格的意义讲,分类和分组都是一种定性分类方法,即根据研究对象的某些特征将其区分为不同种类。分类适用于全部调查资料,分组只限于数量化的统计资料,习惯上将后者称为统计分组或称为统计分类。 ①分类的类型 a.现象分类法:根据事物外部特征或外在联系进行分类的方法; b.本质分类法:根据事物的本质特征或内部联系进行分类的方法。本质分类法也被称为科学分类法。 ②分类的意义 a.现象分类法可以帮助调查者建立资料存取系统,便于资料的存取、查找和利用。调查初期建立的往往是这种分类系统。 b.本质分类不仅是资料的存取、检索系统,而且是调查者对客观事物和规律认识的总结系统。它不是一个单纯技术性问题而是理论问题,反映出研究者的理论观点,并需要具体学科理论的指导。 (4)选择和确定分类标志的原则 ①分类标志的类别。分类标志可以分为品质标志和数量标志。按品质标志分类就是选择

Delphi调用WebService的实例(非常经典)

Delphi 调用webservice 经典实例 Dispatch: 派遣,分派 Invoke: 调用 Invokable: 可调用接口 TReomtable: WebService中自定义类都是继承自该类 TSOAPAttachment: Attachment:附件,一种流类型,可以返回流数据 CGI:(EXE) ISAPI:(DLL) Base64编码: uses EncdDecd; s := EncodeString(s); //加 base64 编码 s := DecodeString( str ); //解码 UTF8: UTF8 是8位的UNICODE字符,而ASCII是7位 ,gb2312和unicode是2字节/字,utf8是3字节/字utf8类似以前的8位转7位的编码,是为了在网络间不同系统的通讯方便而作的转换。几乎所有用.Net写的WebService只支持DOC方式、Delphi写的只支持RPC方式;J2ME目前对Web Service的支持仅限于RFC172,而 RFC172要求必须为DOC方式(sun怎么偏袒MS?)! 为了在设计中减少障碍,下面还介绍几个概念。 1) SOAP:SOAP是一种简单有效的数据传输协议,用于分布式网络环境下数据信息交换,它以XML 作为数据传输的格式,搭配Internet上标准的传输协议HTTP、SMTP、TCP等来传送信息。从本质上看,SOAP事实上只是将Request和Response经由XML格式把数据打包,达到双方沟通的目的。 2) WSDL:WSDL(Web Service Description Language)是一种以XML格式描述的Web Service语言,当Web Service Provider 要对外公布提供的 Web Service,就需要通过WSDL来构建描述语言。在WSDL中有两个非常重要的要素::此WSDL文件所要描述的Web Service集合;每一个Port代表外界Client可以和此Service沟通的一个进入点,一个Port会指定一个Binding方式。 3):处理中文乱码的问题: 将HttpRio的 Converter 的 Options 的 soUTF8InHeader 设为 True 将生成soap消息的HTTPSoapDispatcher控件,添加encoding为gb2312 https://www.doczj.com/doc/a715462122.html,eUTF8InHeader := True; 4)在Delphi中,能够传递的自定义类型的对象要继承TRemotable, 5:修正一个服务器端的一个Bug:将ISAPIThreadPool和ISAPIApp的次序变一下:ISAPIApp必须在 ISAPIThreadPool之前: uses ... ISAPIApp, ISAPIThreadPool 解决如下错误: Received content of invalid Content-Type setting:text/html -SOAP"expects"text/xml" 6:"XML document must have a top level element. Line: 0" 错误,我该如何解决??哈纳斯 (2002-08-05 17:26:00) 我也曾碰到同样的问题解决方法是:别设httprio的wsdllocation,设它的url 如http://localhost/mydir/project1.exe/wsdl/IFIRST mydir是你的可执行的虚拟目录,IFIRST是你定义的接口名 ********************************************************************* **************************

delphi7串口通信(spcomm控件)实例

Delphi7串口通信(spcomm控件)实例 最近在用delphi7做串口通信,网上找了很多例程,复制粘贴运行就没有能通过的,再次鄙视一下列位先行者,你们帮人倒是帮到底啊,没一个是拿过来能用的,太坑了,在N天的努力下(鄙人比较笨)终于通过串口接收到数据,希望给后来人予以帮助,程序如下: 功能简介 功能比较简单,只是从串口接收单片机发送的数据,给memo1 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms,

Dialogs, SPComm, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Comm1: TComm; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word); procedure Comm1ModemStateChange(Sender: TObject; ModemEvent: Cardinal); private { Private declarations } public { Public declarations } end; var

资料员需要整理的资料

第一部分开工前资料 1、中标通知书及施工许可证 2、施工合同 3、委托监理工程的监理合同 4、施工图审查批准书及施工图审查报告 5、质量监督登记表 6、质量监督交底要点及质量监督工作方案(监督站提供) 7、岩土工程勘察报告 8、施工图会审记录 9、经监理(或业主)批准的施工组织设计及专项施工方案 10、开工报告 11、质量管理体系登记表 12、施工现场质量管理检查记录 13、安全、技术交底记录 14、测量定位记录 15、原材料报验(审)表 第二部分质量验收资料 1、地基验槽记录 2、基桩工程质量验收报告 3、地基处理工程质量验收报告 4、地基与基础分部工程质量验收报告 5、主体结构分部工程质量验收报告 6、特殊分部工程质量验收报告 7、线路敷设验收报告 8、地基与基础分部及所含子分部、分项、检验批质量验收记录 9、主体结构分部及所含子分部、分项、检验批质量验收记录 10、装饰装修分部及所含子分部、分项、检验批质量验收记录 11、屋面分部及所含子分部、分项、检验批质量验收记录 12、给水、排水及采暖分部及所含子分部、分项、检验批质量验收记录 13、电气分部及所含子分部、分项、检验批质量验收记录 14、智能分部及所含子分部、分项、检验批质量验收记录 15、通风与空调分部及所含子分部、分项、检验批质量验收记录 16、电梯分部及所含子分部、分项、检验批质量验收记录 17、单位工程及所含子单位工程质量竣工验收记录 18、室外工程的分部(子分部)、分项、检验批质量验收记录 第三部分试验资料 1、水泥(进场)物理性能检验报告 2、砂、石检验报告 3、各强度等级砼配合比试验报告 4、砼试件强度统计表、评定表及试验报告 5、各强度等级砂浆配合比试验报告 6、砂浆试件强度统计表及试验报告 7、砖、石、砌块强度试验报告 8、钢材力学、弯曲性能检验报告及钢筋焊接接头拉伸、弯曲检验报告或钢筋机械连接接

delphi_三层架构简单例子.

delphi 三层架构简单例子(经测试成功2009-01-22 下午 02:45所谓三层: (1 客户端 (2 服务器端 (3 数据库在数据访问时,使得客户端必须通过服务器来访问数据库。提高了系统的安全性。在Delphi中可以使用Socket或者Dcom来连接他们相互间的通讯。如果使用Scocket在系统使用时必须提供Scocket连接器,而Dcom 则不用。客户端和服务器的连接需要Broker来联系。环境为winxp sp2 + delphi 7 + db7.(MSSQL2000 创建过程: 1、请不要新建application.file-new-activex-activex library,file --new--other,选择"Multitier"--"Remote data module"。在跳出来的对话框里面输入名称(任意),例如:AppSqlConn。选择确定,进入remote data module窗口。 2、加入组件:adodataset,点击connectionstring属性,点击后面的…,进入 设定连接窗口。选择:use connection string--build,在提供程序中选择:"Microsoft ole db provider for sql server",在连接中:服务器名称输入sql server的ip地址,登录信息中输入用户名和密码(sql server),在选择数据库中选择自己想要使用的数据库。一般只要地址正确、用户名和密码无误,肯定可以连接通过。确定退出。 3、在commandtext中点击后面的…,进入sql 语句设定,根据自己的要求设定。 4、将active属性设置为true。只要前面的设定是正确的,这里应该顺利通过。 5、加入组件:datasetprovider。设定其dataset属性为上面的adodataset。 6、到此服务器端已经设置完成。请保存并且运行一次,从而使服务注册。 7、运行delphi的bin目录下面的scktsrvr,因为下面要使用socket连接。运行后任务栏中出现socket server的图标。 8、新建程序(application),然后file--new--data module,会创建客户端的data module。 9、加入组件:socketconnection,在address中输入sql server的ip地址,然后在servername中输入刚才创建的remote data module的服务程序。程序会自动在serverguid中加入id。然后选择connected属性为true。只要 此处不报告错误,此程序基本成功了。 10、加入组件:clientdataset,选择remoteserver属性为socketconnection,选择providename为服务器程序的datasetprovider。然后选择active属性为true。 11、到程序的form窗口状态,首先选择file--use unit,选择上面创建的data module,确定。然后加入组件datasource 和dbgrid。选择datasourece的dataset属性为data module的clientdataset,选择dbgrid的datasource为这里的datasource组件。现在应该可以看到dbgrid的窗口中

调查资料的整理与分析

第7章调查资料的整理与分析 调查资料的整理 调查资料的分析 第一节资料整理的意义和一般步骤 一、资料整理的意义 二、资料整理的原则 三、资料整理的一般步骤 一、资料整理的意义 所谓资料整理,是指运用科学的方法,将调查所得的原始资料按调查目的进行审核、汇总与初步加工,使之系统化和条理化,并以集中、简明的方式反映调查对象总体情况的过程。 是对调查调查资料的全面检查,是进一步分析研究资料的基础,保存资料的客观要求 二、资料整理的原则:真实性;准确性;完整性;统一性;简明性 三、资料整理的一般步骤 1、资料的审核 2、资料的编码 3、资料的分组 4、资料的汇总 5、制作统计表和统计图 第二节资料的审核与汇总 一、资料审核的一般要求: 1、真实性:来源的客观性;本身的真实性 2、准确性:检查含糊不清、相互矛盾; 3、完整性:资料总体的完整性;每份调查资料的完整性 二、资料审核的方法 逻辑审核;计算审核 调查当天结束时,需要进行初步的整理,重点审核资料的真实性、准确性和完整性 三、资料的编码 将问卷或调查表中的信息转化成计算机能识别的数字符号。 举例:山东农村养老状况与需求调查 四、资料的分类和汇总 1)对量化资料进行分类和汇总 (1)分类标志应根据研究的目的和统计分析的要求而定 (2)使用的间隔要使最常出现的答案在中间 (3)分类间隔多比分类间隔少好 (4)学会使用复合分类,在不知道要做何种分析时,应该使用复合分类 2)对定性资料进行分类和汇总 (1) 在分类前,看是否有一定量的回答存在 (2) 使用的分类标准与其他的资料相适应,以利于比较 (3) 分类是简洁互斥的,每个回答只能放在一个间隔里 (4) 包容所有可能的回答。通常用“其他”来包括所有没有指出的答案选择

建筑行业所有资料的整理内容

1. 第一部分开工前资料 1、中标通知书及施工许可证 2、施工合同 3、委托监理工程的监理合同 4、施工图审查批准书及施工图审查报告 5、质量监督登记书 6、质量监督交底要点及质量监督工作方案 7、岩土工程勘察报告 8、施工图会审记录 9、经监理(或业主)批准所施工组织设计或施工方案 10、开工报告 11、质量管理体系登记表 12、施工现场质量管理检查记录 13、技术交底记录 14、测量定位记录 第二部分质量验收资料 1、地基验槽记录 2、基桩工程质量验收报告 3、地基处理工程质量验收报告 4、地基与基础分部工程质量验收报告 5、主体结构分部工程质量验收报告 6、特殊分部工程质量验收报告 7、线路敷设验收报告 8、地基与基础分部及所含子分部、分项、检验批质量验收记录 9、主体结构分部及所含子分部、分项、检验批质量验收记录 10、装饰装修分部及所含子分部、分项、检验批质量验收记录 11、屋面分部及所含子分部、分项、检验批质量验收记录 12、给水、排水及采暖分部及所含子分部、分项、检验批质量验收记录 13、电气分部及所含子分部、分项、检验批质量验收记录 14、智能分部及所含子分部、分项、检验批质量验收记录 15、通风与空调分部及所含子分部、分项、检验批质量验收记录 16、电梯分部及所含子分部、分项、检验批质量验收记录 17、单位工程及所含子单位工程质量竣工验收记录 18、室外工程的分部(子分部)、分项、检验批质量验收记录 第三部分试验资料 1、水泥物理性能检验报告 2、砂、石检验报告 3、各强度等级砼配合比试验报告 4、砼试件强度统计表、评定表及试验报告 5、各强度等级砂浆配合比试验报告 6、砂浆试件强度统计表及试验报告

DELPHIXE移动开发调用的例子方法

调用的例子方法: uses Androidapi.JNI.GraphicsContentViewText, FMX.Helpers.Android, https://www.doczj.com/doc/a715462122.html,; procedure Call_URI(const AAction : JString;const AURI: string); var uri: Jnet_Uri; Intent: JIntent; begin uri := StrToJURI(AURI); Intent := TJIntent.JavaClass.init(AAction, uri); {Intent.putExtra() 如果是要发短信等复杂的应用,需要传递各种其他的参数.要用到Intent.putExtra()传递多个参数. 这里只封装最简单的,具体Intent.putExtra()的用法,可以查询Java的资料.大把的 } SharedActivityContext.startActivity(Intent); end; //使用例子: //打电话 Call_URI(TJIntent.JavaClass.ACTION_CALL, 'tel:137114553XX'); //打开地图显示某个坐标点 Call_URI(TJIntent.JavaClass.ACTION_VIEW, 'geo:38.899533,-77.036476'); //发送电子邮件 Call_URI(TJIntent.JavaClass.ACTION_SENDTO, 'mailto:wr960204@https://www.doczj.com/doc/a715462122.html,'); //播放音乐 Call_URI(TJIntent.JavaClass.ACTION_VIEW, 'file:///sdcard/download/最炫民族风.mp3'); 调用的例子方法: ===========================我是分割线================================================== android 系统常用URI: android 系统常用URI: android 系统常用URI: android 系统常用URI: 显示网页: 1. Uri uri = Uri.parse("https://www.doczj.com/doc/a715462122.html,"); 2. Intent it = new Intent(Intent.ACTION_VIEW,uri); 3. startActivity(it); 显示地图:

0 Delphi专家群体法项目案例

1. 系统功能描述 教务管理主要完成以下功能: 对于教师而言,登录系统后,应提供以下功能:1)录入成绩:每位任课教师在学期末考试后拿到成绩表时,都应将每位学生的成绩准确的录入到教务系统中,方便学生查询。 2)个人课表:系统根据学校排课情况和教师的任课情况自动生成教师个人课表,以备教师查阅。 3)会议通知:系统实时更新和上传教师的会议通知,同时用该具备起草和发布通知的功能,起草和发布通知也应设定相应的权限。 4)个人日志:系统应为每位教师提供可用于个人记事的功能。 5)专业概况:每位教师都需知道自己所工作的专业的最新情况,系统应为教师提供可以了解专业信息的功能,在此功能中,教师还可以了解到其他同行教师的情况。 6)日程安排:该功能是系统设置用来为教师提醒每日行程的,由于权限的限制,每位教师可以对自己的个人行程进行删除和修改,也可定义提醒时间。 对于学生而言,登录系统后,应提供以下功能:1)网上选课:在此功能中,学生可以根据自已的情况分别网上选修体育课、非专业选修课和专业选修课。 2)活动报名:系统应及时更新、删除和修改由学校举办的各种活动的通知,以便学生及时查询和报名参加。同时,该功能应及时更新活动的现况,比如获奖情况、参赛名单、成绩公布以及后续情况。 3)教学质量评价:此功能提供给学生网上评教的方法。每学期期中,教师评价都尤为重要,除了教师之间可以进行评价以外,学生也必须为每个教师的教学情况进行评价。该功能也要有权限,只有当给每个教师均评教完后,方能生效。 4)信息维护: 5)信息查询:信息查询包括: a)专业推荐课表查询:在此项中,学生可以 查询所在专业班级的课表。 b)教师个人课表查询:在此项中,学生可以 在权限范围内查询学校教师的个人课表。 c)学生个人课表:在此项中,学生可以查询 个人课表。 d)学生考试查询:在此项中,学生可以查询 学期考试安排。 e)成绩查询:在此项中,学生可以查询自己 每学期的期末考试成绩及所修学分等。 f)等级考试查询:在此项中,学生可以查询 在校期间参加的所有等级考试的成绩。 g)培养计划:在此项中,学生可以查询有学 校举办的各种培养计划。 h)教室查询:在此项中,学生可以查询上课 所在教室的情况及空闲教室的使用情况。 i)课程介绍查询:在此项中,学生可以查询专业 课及非专业课的情况,便于选课。 j)学生补考考试查询:此项设有权限,只有参加过补考的学生可以查询其补考成绩。 2. 系统需求分析 高校教务管理系统需要完成教学资源管理、教师管理、学生管理、选课管理、考务管理、开课/选课管理、成绩管理和教学计划管理。 2.1 教学资源管理 1. 学年校历编排:给定学年起止日期,自动生成校历。并能对其进行人工调整。 2. 教室资源维护:对教室个数、可容纳人数、教室功能、教室属性(语音室、实验室、微机室、体育场馆等)、相应的管理人员进行维护。 2.2 教师管理 该子系统提供对每位教师的基本信息、教学考勤和教学工作量等信息的维护功能。 1. 教师基本信息:职称、姓名、性别、、年龄、教工号、所属系别。 2. 教师教学考勤:教师到课情况。 3. 教师工作量:教学总课时、专业班级、学生人数、个人课表。 2.3学生管理 该子系统提供对每位学生的档案管理、考勤管理、选课管理、学期/学年资格审核管理等功能的管理。 1. 学生档案管理:系统可从招办提供的电子档中导入学生档案,实现新生基本信息表,并能对基本信息表数据进行存档和维护。 2. 学生考勤管理:对学生每周上课的考勤情况进行登记,每周提交一次。开通班主任办公室/教学服务中心两个输入端口,只有教学服务中心对数据有更改权限。对有关考勤情况的按班级、时间段等不同类别的统计,并根据校规对违规学生进行标记。存在违规情况时,根据相关规定处理各违规学生,并生成备注存入个人临时档案。 3. 选课情况:学生可根据专业班级的不同进行选课,可选择体育课、专业选修课和非专业选修课,并将选课计入学年计划中。 4. 学期/学年资格审核管理:从成绩管理系统获得每学年的学生信息数据和学分信息数据,实现个人学分信息统计。实现对学生升级资格标准信息维护,系统对不符合要求的学生进行自动标记。最终输出学生学年资格审核信息报表。

资料整理及归档

资料整理及归档 前言 工程监理资料的重要性:监理单位作为独立于工程建设承包合同双方以外的第三方,对于工程建设有关的重要活动、记载工程建设主要过程和现状、具有保存价值的各种载体的文件,均应随工程进展及时收集、整理、归类,以备查阅。 工程监理资料的形式:工程监理档案是在工程建设监理活动中直接形成的,是具有保存价值的文字、图标、声像等各种形式的历史记录。其资料载体一般为纸质载体、缩微品载体、光盘载体、磁性载体等几种形式。 记录整理要求:作为工程档案资料的载体内容,应详尽准确,真实有效。其表格应采用统一表格。工程文件的纸张应统一用A4纸幅面。工程文件应采用耐久性强的书写材料如:碳素墨水、蓝黑墨水。 目录 一、工程监理资料整理的要求。 二、现场监理工作质量方面的内容。 三、现场监理工作安全方面的内容。 四、建筑节能方面内容。

一、工程监理资料整理的要求 1、及时整理、真实完整、分类有序并有可追溯性。 2、内容全面,格式统一,书写规范; 3、专业监理工程师应认真审核资料并签认,不得接受经涂改的报验资料,并在审核整理后存放; 4、在工程监理过程中,监理资料应按单位建立案卷盒(夹),分专业存放保管,以便于跟踪管理; 5、每个报验表后按表的要求必须有相应的附件; 6、监理资料的收发、借阅必须有相关人员签认手续; 7、监理资料应在各个阶段监理工作结束后及时整理归档。 二、现场监理工作质量控制方面的内容 (一)第一册内容 1、委托监理合同和施工合同(复印件); 2、施工许可证(复印件):一般情况下此许可证应附在开工报审表的后面,总监理工程师检查合格后批复开工报审表。 3、项目监理机构的组织形式、人员构成、总监理工程师的书面任命书(总监理工程师对总监代表的书面任命)。注意:总监代表应在总监授权范围内主持工作、行使权利并承担责任,其主要表现在材料签字方面。 4、合同争议处理意见 5、合同变更资料:包括施工过程中建设单位与承包单位的合同补充协议和合同解除有关资料。 (二)第二册内容 1、勘察设计文件(地质勘察报告及施工图纸)以上两项均由建设单位提供,此

delphi中dll综合运用的例子

delphi中dll综合运用的例子(动态加载插件) 2008年01月15日星期二 10:59 1,新建dll客户端模块 ---------------dll工程文件PlugIns.dll------------------------------- library PlugIns; { Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. } uses SysUtils, Classes, PlugInFrm in 'PlugInFrm.pas' {FrmPlugIns}; {$R *.res} //输出接口函数 exports ShowDLLForm,GetCaption; begin end. -------------新建模块PlugInFrm.pas的窗体文件--------------- unit PlugInFrm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFrmPlugIns = class(TForm) Label1: TLabel; private { Private declarations }

资料的审核与整理

主要内容 第一节资料的审核与整理 一、资料的审核 资料的审核是资料处理的第一步工作。资料的审核工作包含两方面的内容:一是检查出问卷资料中的问题;二是重新向被调查者核实。另一种做法是,先将资料全部收回,然后再集中时间进行审核。 二、资料的编码 编码就是用阿拉伯数字来代替问卷中每一个问题的回答,或者说是将问卷中的答案转换成数字的过程。要给不同的问题分配合适的栏码,即指定该问题的编码值在整个数据文件中所处的位置。编码手册,编码手册是研究者将编码的项目和问题一一列出,逐一规定它们的代码、宽度、栏码简要名称、答案赋值方式及其他特殊规定等等。 第二节文字资料的整理 社会调查中的文字资料有两大类,即实地观察、访问的记录和搜集的各种历史文献。整理文字资料的一般程序是:审查,分类,汇编。 一、审查 所谓审查,就是通过仔细推究和详尽考察,来判断、确定文字资料的真实性和合格性。 文字资料的真实性审查也称可靠性审查,它包括两个方面:一是文字资料本身的真实性审查,二是文字资料内容的可靠性审查。 文字资料本身的真实性审查,是指通过细究和考察以判明调查所得的文献资料、观察和访问记录等文字资料本身的真伪。 它一般采用两种方法: ①外观审查,即从作者、编者、出版者、版本、印刷技术、纸张等外在情况来判断文献的真伪。②内涵审查,即从文献的内容,使用的词汇、概念,写作的技巧和风格等内在情况来判断文献的真伪。 观察和访问记录等文字资料的真实性审查,还可从记录的时间、地点、内容、语言、字迹和所使用的墨水等情况来判断其真伪。实践证明,那些内容贫乏、时间重叠或不填时间、语言雷同、字迹和墨水相同的记录,则可能是观察员、访问员伪造的记录。 文字资料内容的可靠性审查,是指通过细究和考察以判明文字资料的内容是否真实地反映了调查对象的客观情况。 它一般采用三种方法:

第十一章 资料的审核与整理

资料的审核与整理是分析资料的基础,它是研究阶段的第一项工作,是保证资料客观性、准确性、条理性、完整性不可缺少的重要环节。 一资料的审核 1资料的审核:是对收集到的原始资料进行审查与核实的过程。 2资料审核的原则:真实性、标准性、准确性、完整性。 3审核工作和收集工作同步进行,边收集边审核,叫做实地审核(收集审核) 4在收集资料后集中时间进行审核,叫做系统审核 5对重要资料进行的反复的各种形式的审核,叫做多次审核 6对第一手资料的审核第一手资料指得是用观察法、访问法、问卷法所获得的资料。 (1)对观察、访问资料的审核是检查、核对资料的真实性、准确性和适用性。 (2)对用调查问卷和结构式访问获得的资料的审核: a资料的完整性 b有没有逻辑错误 c回答的可靠性 7对第二手资料的审核第二手资料包括书面文献和统计文献 (1)对书面文献要弄清:a文献的来源、背景 b编写的时间 c文献的真伪性、可信性 (2)对统计文献要注意:a指标的定义和分组的标准问题 b指标的统计总体范围 二资料的整理 1资料的整理是根据研究目的将经过审核的资料进行简化、分类、汇总,使资料更加条理化、系统化便于进一步深入分析的过程。 2资料整理的原则: 条理化即对资料进行分类 系统化即从整体上考察现有资料满足研究目的的程度如何,有没有必要 吸收补充其他资料 统计汇总对原始数据进行科学整理,是总体的数量特征和规律性显示出来3分类和分组:从严格意义讲,分类和分组都是一种定性分类方法,即根据研究对象的某些特征将其区分为不同种类。分类适用于全部调查资料,分组只限于统 计资料。 4按调查过程而言,调查资料的分类有: (1)前分类:在设计调查提纲、调查表格或问卷时,按照事物或现象的类别设计 指标,然后按分类指标收集资料、整理资料 (2)后分类:是指在调查资料收集起来以后,再根据资料的性质、内容或特征, 将它们分别集合成类 5分类的方法有两种,即现象分类方法和本质方法方法 (1)现象分类法:根据事物外部特征或外在联系进行分类的方法 (2)本质分类法(科学分类法):根据事物的本质特征或内部联系进行分类的方 法 6分类的意义: 现象分类法可以帮助调查者建立资料存取系统,便于资料的存取和查找、利 用。本质分类法不仅是资料的存取、检索系统而且是调查者对客观事物和规律 认识的总结系统。因此在整理资料的过程中力求从现象分类过渡到本质分类。7分类的关键在于选择和确定分类标志。 分类标志分为:按品质标志分类、按数量标志分类(两种表现形式:按单值分类、按组 距分类) 8要选择正确的分类标志,必须遵循的四条原则: (1)从研究目的出发选择标志 (2)从反映现象本质的需要去选择标志 (3)根据具体的历史条件去选择标志 (4)分类标志的确立必须坚持穷尽性和互斥性的原则

Delphi典型例子

procedure TForm1.Button1Click(Sender: TObject); begin if (edtName.Text='admin')and(edtPass.Text='123456') then begin showmessage('豋录成功。'); end else showmessage('姓名戓密码错。'); end;

var Form1: TForm1; implementation {$R *.dfm} const iname='user'; ipassword='00000'; procedure TForm1.Button1Click(Sender: TObject); begin if ( edit1.text=iname)and(edit2.text=ipassword) then ShowMessage( '欢迎使用学生管理系统') else MessageDlg( '用户名或密码不正确,请重新输入!',mtError,[mbOk],0); end; 习题3

var r,c,s:real; const pi=3.14159; // 常量的定义 begin r:=strtofloat(edit1.Text); c:=2*pi*r; s:=pi*sqr(r); label2.Caption:='该圆的周长为:'+floattostr(c)+' '+chr(13)+'面积为:'+floattostr(s); end; procedure TForm1.Button2Click(Sender: TObject); begin close; end; 习题4 if 2 > 1 then begin a:=A; end

delphi到处EXCEL代码例子

delphi dbgrid 导出Excel表 ///////// 利用剪贴板,速度很快!适合装有Excel的机器///////////////////// USES Clipbrd,ComObj; procedure TForm1.Button1Click(Sender: TObject); var str:string; i:Integer; excelapp,sheet:Variant; begin // lbl2.Caption:=DateTimeToStr(Now); str:=''; dbgrd1.DataSource.DataSet.DisableControls; for i:=0 to dbgrd1.DataSource.DataSet.FieldCount-1 do str:=str+dbgrd1.DataSource.DataSet.fields[i].DisplayLabel+char( 9); str:=str+#13; dbgrd1.DataSource.DataSet.First; while not(dbgrd1.DataSource.DataSet.eof) do begin for i:=0 to dbgrd1.DataSource.DataSet.FieldCount-1 do str:=str+dbgrd1.DataSource.DataSet.Fields[i].AsString+c har(9); str:=str+#13; dbgrd1.DataSource.DataSet.next; lbl1.Caption:=IntToStr(dbgrd1.DataSource.DataSet.RecNo); Application.ProcessMessages; end;//end while dbgrd1.DataSource.DataSet.EnableControls; clipboard.Clear; Clipboard.Open; Clipboard.AsText:=str; Clipboard.Close; excelapp:=createoleobject('excel.application'); excelapp.workbooks.add(1); // excelapp.workbooks.add(-4167) ; sheet:=excelapp.workbooks[1].worksheets[1]; https://www.doczj.com/doc/a715462122.html,:='sheet1';

相关主题
文本预览
相关文档 最新文档