Delphi
zhongguoren666
本人迄今已有近七年的工作经验,一直从事软件开发,曾涉彩票、教育、铁路、农业、门户网站等多个行业,个人认为最精深的要数彩票行业了。本人开发过程中最擅长的要数C 和DELPHI,当然,在SOCKET、COM 、WebServic、数据库、多线程、线程同步、线程池、数据库连接池、串口通讯、UI设计、进程间通信等等技术也有较深入的学习。本人自认充满活力、拥有激情、爱好学习、充满自信。衷心希望能提供大家一些有用帮助与建议!
展开
-
DELPHI之关于String的内存分配
函数、过程或者方法中定义一个字符串变量时,由于我们知道在函数、过程或者方法中定义的变量为局部变量,它的内存是在栈中分配的,但是这里有个小细节我们要注意,对于一个局部的字符串变量,它的大小为4字节,这个在栈中分配的4字节是不是就是字符串变量的全部呢?答案是否定的,它在栈中保存的只是这个字符变量的大小和字符变量的值在堆中的内存地址!,这就是说,该字符变量的值并不在对应的栈中,而是在堆中!我们了原创 2014-09-11 12:37:31 · 3887 阅读 · 0 评论 -
delphi 判断SQL Server 服务器是否安装与开启
1. 问题简介: 一般情况下,使用程序连接数据库的时候,当数据库服务器不存在,或者数据库服务器没有启动的时候,会导致数据库连接失败,所花费的时间很长。所以,在进行连接前,有必要对这些做出判断,然后返回给用户一个正确的提示信息,减少等待的时间。 2. 数据库服务器连接不上,可以分成以下几种情况:1>. 根本就不存在数据库服务器,及系统根本就没有安装数据库服原创 2011-11-25 14:27:58 · 3841 阅读 · 1 评论 -
Delphi COM编程技术二(COM接口和COM组件)
一、类厂(Class Factory)1、类厂的含义: 类厂是一种组件或者对象,它就是用于创建其他对象的。COM对象不是由程序直接实例的,COM使用类厂来创建对象。每一个COM都有一个相关的类厂,负责创建在服务器中实现的COM对象;类厂把COM从实际构造一个对象的过程中分离出来,COM没有对象构造过程,所以需要使用类厂来解决创建组件时的不灵活性。 2、类厂的创建和COM组件的原创 2011-11-22 16:47:10 · 2713 阅读 · 0 评论 -
Delphi COM编程技术五(ActiveX技术)
一、Active技术介绍:1、Active文档涉及到的接口1>、IOleDocument接口:此接口是ActiveX文档服务器中的接口,它使一个文档对象能够与其包容器进行通信,并用其数据去创建视图,该接口也可以使一个文档对象能够枚举其视图并为包容器提供相关信息,如是否支持多视等。2>、IOleDocumentView接口:使一个包容器程序能够通过文档对象的支持而与每一个视图进行通信。原创 2011-11-22 16:49:42 · 1426 阅读 · 0 评论 -
Delphi COM编程技术四自动化技术
一、自动化技术的基础1、 自动化名称介绍:1>、自动化: 是一种从应用程序的内部自动控制另一个应用程序的方法。 2>、自动化对象: 指的是实现了IDispatch接口的COM对象,IDispatch接口是自动化对象的一个重要标志。因此,可以通过QuereyInterface()函数查询组件是否包含此接口,来确定该组件是否是自动化对象。自动化对象包括属性和方法,其属性只能被读取不能被写入原创 2011-11-22 16:49:16 · 1452 阅读 · 0 评论 -
Delphi COM编程技术三类型库
在COM组件的使用和开发过程中经常需要获取有关组件的信息。而COM组件以二进制代码的形式发布,如果不借助特定的工具这些相关信息将难以被获取。通过访问类型库就可以查看COM组件的信息。一、类型库的基础知识介绍:1、类型库的定义:类型库:在类型库中以二进制的形式描述了一个或多个对象的类型信息。具体的类型信息包括:组件的CLSID、所支持接口的IID、接口的成员函数及其参数和返回值类型等。原创 2011-11-22 16:48:46 · 1677 阅读 · 0 评论 -
Delphi 编写COM+组件的知识和样例
一、COM组件的基础知识介绍:1、什么是COM COM是微软定的一种组件编写的规范,目的是为了实现组件的重用,不管你是用C、DELPHI、VB什么语言写的,只要遵守这种规范就是COM组件,就能相互之间调用。那这个规范是什么呢,最简单的,就是按规定使用接口,微软定了个IUnkown接口,只要实现了这个接口的类,就可以称为COM组件。在此基础上可以加上自己的接口,实现特定的功能原创 2011-11-22 16:51:05 · 1802 阅读 · 0 评论 -
Delphi 编写ActiveX控件(OCX控件)的知识和样例
一、ActiveX应用情况简介: ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分。ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32位应用编程接口(Win32 API)和组件对象模型的一系列扩充和增强,目标是把计算机桌面环境与因特网环境集成起来,同时保护在Windows技术中现有原创 2011-11-22 17:35:12 · 2120 阅读 · 1 评论 -
Delphi COM编程技术六(DCOM技术)
在Delphi中能实现远程调用的有DCOM或COM+,这两种方式实现起来非常的相似。DCOM属于旧版本的远程调用技术,非常实用,所提供的服务保存在应用程序工程中。COM+是新版本的远程调用技术,所提供的服务保存在动态库所在的工程中。一、DCOM技术介绍:1、DCOM的定义DCOM(分布式的COM服务器):是指该服务器可以处在网络的别处,并且可通过网络非常简单和透明地激活。原创 2011-11-22 16:50:14 · 2005 阅读 · 0 评论 -
Delphi COM编程技术一(COM编程基础知识)
在当今Windows世界中随处可见。随时涌现出来的大把大把的新技术都以COM为基础。各种文档中也充斥着诸如COM对象、接口、服务器之类的术语。一、COM编程基础知识介绍:1、COM的定义 所谓COM(Componet Object Model)即组件对象模型,是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。通过原创 2011-11-22 16:48:00 · 5696 阅读 · 4 评论 -
Delphi打开网址链接的几种方法
Delphi打开网址链接的几种方法:1:用默认浏览器打开,uses shellapiprocedure TForm1.Button2Click(Sender: TObject);beginShellExecut(Application.Handle, nil, 'http://cy03wqh.blog.163.com', nil, nil, SW_SHOWN原创 2011-10-25 16:54:17 · 16300 阅读 · 0 评论 -
delphi webbrowser与delphi互动
http://www.cnblogs.com/del/archive/2009/02/27/993840.htmlWebBrowser1.GoHome; //到浏览器默认主页WebBrowser1.Refresh; //刷新WebBrowser1.GoBack; //后退WebBrowser1.GoForward; //前进WebBrowser1.Navigate('...原创 2011-10-25 16:53:22 · 2896 阅读 · 0 评论 -
delphi中Webbrowser
1.获得网页中变量值 htm中 var currID=123 程序中可以这么调用 id := Form1.WebBrowser1.OleObject.Document.script.currID 值得说明的是,变量可以是javascript定义的,也可以是vbscript定义的,如果Webbrowser1中找不到该变量,调用会触发一个异常事件,即变量currID原创 2011-10-25 16:51:45 · 6382 阅读 · 0 评论 -
Delphi调试CGI或ISAPI
因为dll文件已驻留内存,可用intrabob进行调试,也可用PWS进行调试,不过要换文件。 IntraBob是资深程序员Dr.Bob编写的免费工具软件,用于测试Delphi编写 的CGI/WinCGI/ISAPI程序,它可以代替PWS/IIS等WWW服务器软件, 调试本地的CGI/WinCGI/ISAPI程序,其原理是模拟PWS/IIS接受WWW请求, 并根据您的设置将类原创 2011-11-08 16:08:13 · 2660 阅读 · 0 评论 -
Delphi WebService 的编写、调试、发布(IIS)、调用
Delphi WebService 的编写、调试、发布(IIS)、调用下面说明如何编写用于IIS发布的ISAPI类型的WebService。1、 New|Other|WebServices|SOAP Server Application|这里先选择建立Web App Debugger 类型的WebService,因为这种类型的WebService便于调试,当我们调试好它,准备原创 2011-11-08 15:47:27 · 3499 阅读 · 1 评论 -
delphi下COM+服务器代码调试的设置
以下设置的操作平台:操作系统:WindowsXP,工发工具:delphi7。一、操作系统COM+组件的设置1.打开“组件服务”: 控制面板-->管理工具-->组件服务 2.找到要设置的COM+组件: 在“组件服务”窗口的“控制台根目录”,依“组件服务-->计算机-->我的电脑-->COM+应用程序-->你要调试的COM+应用程序” 3.关闭C原创 2012-03-15 17:28:29 · 2955 阅读 · 0 评论 -
delphi调用webservice
如今 Web Service 已越来越火了,在DotNet已开发的Web Service中,Delphi 7如何方便的调用DotNet写的Web Service呢?方法有两种,一种是在Delphi 7中WSDLImp工具将DotNet写的Web Service转化为Interface 单元文件,另一种方法是用MS 提供的 Microsoft Soap Toolkit(MSST) 工具。原创 2012-02-28 13:40:39 · 4186 阅读 · 1 评论 -
Delphi中断点错位解决方法
在调试代码的时候遇到了断点错位的问题。F7进入这个方法的时候其实是上一条代码。经查问题如下:这个文件中的某一些地方的代码格式不是MS-DOS格式,可能是Unix或者什么的,主要就是回车换行什么的不正确。主要原因可能是从别的地方,比如网页上,或者别人在Unix/Linux下编写的源代码中拷贝过代码过来导致的。解决方法:用UltraEdit打开这个文件。提示原创 2011-12-30 18:35:24 · 2163 阅读 · 0 评论 -
怎样将TMemoryStream附值给一个string类型
转自:http://www.100test.com/html/537/s__D4_F5_D1_F9_BD_ABTMem_537682.htmvar s:TMemoryStream;str:string;begin ClientDataSet1.SaveToStream(s,dfXML). //但怎样将s附值给str.(str:=s)str := PChar(s.Po原创 2011-12-16 13:53:08 · 5028 阅读 · 1 评论 -
delphi Zlib 流压缩解压
procedure UnCompressionStream(var ASrcStream:TMemoryStream); //解压缩varnTmpStream:TDecompressionStream;nDestStream:TMemoryStream;nBuf: array[1..512] of Byte;nSrcCount: integer;beginASrcStr原创 2011-12-16 13:53:40 · 2736 阅读 · 0 评论 -
如何在Delphi6中调试web程序步骤
1.新建一个web工程,请选中最下面一项:Web App Debugger executable,Coclass name我们设为demo1;2.在弹出的WebModule2中右击,在弹出的Action编辑框中新建一个webaction,选中,设置Default属性为True,在其onaction事件中编写如下代码,输出一个仅显示‘hello,dephi!’的html页;3原创 2011-11-11 10:50:44 · 1194 阅读 · 0 评论 -
Delphi 6 Web Services初步评估之一(转)
Delphi 6 Web Services初步评估这是我刚到现在公司的时候(2001年8月份)所作的一份测试报告,现公布出来,希望能对大家有所帮助。因为当时d6刚刚发行,Web Service方面还存在一些问题,当前的update 1 for D6已经发布,主要就针对Web Service做了大量的修改,已经能与MS相关的Web Service兼容了。可能下面文章内提到的部分内容在Update原创 2011-11-11 10:38:18 · 1314 阅读 · 0 评论 -
Delphi调试WEB程序(ISAPI或CGI)
1.新建一个web工程,请选中最下面一项:Web App Debugger executable,Coclass name我们设为demo1;2.在弹出的WebModule2中右击,在弹出的Action编辑框中新建一个webaction,选中,设置Default属性为True,在其onaction事件中编写如下代码,输出一个仅显示‘hello,dephi!’的html页;3原创 2011-11-11 11:00:53 · 1673 阅读 · 0 评论 -
用Web App Debugger简单调试ISAPI
以isapi为例: 1、新建一个project,用isapi/nsapi; 2、remove这个project中所有的unit; 3、加进你用Web App Debugger调试出来的工程的unit ; (千万注意:不要把有form的unit加进去,不然不能运行) 4、建一原创 2011-11-11 10:45:39 · 2149 阅读 · 0 评论 -
Delphi 6 Web Services初步评估之三(转)
Delphi 6 Web Services初步评估之三(转)★ 测试总体印象:在整个测试中,对Delphi 6创建的Web Services有以下几个印象:1、 客户端应用程序连接服务器端Web Service的时候,第一次调用很慢,而以后的调用明显加快。图五显示了调用各个接口第一次和第二次的传输速率(每秒钟传输千字节数KB/S)。由此可以看出,第一次的方法调用非常耗时,可能达原创 2011-11-11 10:39:40 · 1825 阅读 · 0 评论 -
Delphi 6 Web Services初步评估之二(转)
★ 测试环境:CPU:PIII 550内存: 256MBOS: Windows2000 Server + SP2Web Server:IIS 5.0 + SP3开发环境:Borland Delphi 6.0 EnterpriseMicrosoft Visual Studio 7.0 Beta 2Microsoft SOAP TOOLKIT 2.0★ 基本测试过程:原创 2011-11-11 10:39:02 · 1384 阅读 · 0 评论 -
ADOQuery的速度优化
今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性。 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSourceA和DOQuery。用Button添加了一个事件,用来取消对checkbox的操作:ADOQuery.CancelBatch();可是只能取消最后一步的操作。检查了很长时间才发现在DBGridEh原创 2011-11-10 14:08:58 · 4243 阅读 · 0 评论 -
Delphi 代码优化
文章编目 [隐藏]1. 字符串优化1.1. 不重复初始化 1.2. 使用SetLength预分配长字符串(AnsiString) 1.3. 字符串与动态数组的线程安全(Thread Safety) 1.4. 避免使用短字符串 1.5. 避免使用copy原创 2011-10-08 17:22:22 · 1885 阅读 · 1 评论 -
error loading midas.dll问题
如果用的delphi在你的单元里用uses midaslib这个东西就可以把midas静态连接到你的程序楼上的也可以 在程序中使用winexec("regsvr32.exe midas.dll",SW_NORMAL);注册midas组件 可能是注册表中记录原创 2011-10-17 13:49:27 · 4736 阅读 · 0 评论 -
delphi网页数据抓取
简单:IdHttp:TIdHttp;Params:TStrings;BeginParams:=TStrinList.Create;IdHttp:=TIdHttp.Create(Nil);//提交网页的参数Params.Add('参数1=XXX');原创 2011-10-14 17:33:03 · 11633 阅读 · 0 评论 -
Delphi执行SQL提示“不正常地定义参数对象”,“提供了不一致或不完整的信息”错误
用AdoQuery从脚本文件读入内容,执行时提示“不正常地定义参数对象”,“提供了不一致或不完整的信息”之类的错误,本以为是SQL语句有问题,用查询分析器执行时没有发现错误,一切OK。但一到Delphi中执行就提示“不正常地定义参数对象”,“提供了不一致或不完整的信息”。用Goo原创 2011-09-02 15:09:08 · 5223 阅读 · 0 评论 -
Delphi中double类型真正实现四舍五入(保留两位)
在彩票行业许多年,这次对于竞彩玩法的计奖,让我很是头疼。Delphi中double类型的四舍五入总是出问题,小数点后1-4,6-9都没有问题,就是.5时总出现不进位的问题。 round函数用的是银行家算法,不好使。roundTo也不好使。什么Format呀,r原创 2011-08-04 14:22:06 · 20077 阅读 · 1 评论 -
delphi之模拟点击网页中的按钮
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, S原创 2011-08-02 14:35:29 · 3166 阅读 · 0 评论 -
delphi时间日期处理DateUtils时间单元
DateUtils时间单元,非常有用。 记得引用这个单元,不然不能用。CompareDate 比较两个日期时间值日期部分的大小CompareDateTime 比较两个日期时间值的大小CompareTime 比较两个日期时间值时间部分的大小DateOf 去除日期原创 2011-08-02 14:18:18 · 6147 阅读 · 0 评论 -
XP环境下在Delphi中调试COM+组件
现在应用系统流行用B/S开发,早几年前可是C/S的天下呢,我现在做的某航空公司货运结算维护工作,其系统就是利用Delphi开发的C/S应用程序!在日常的维护工作中,难免要对已经做好的COM+组件进行调试,以查看具体的处理逻辑! 本文就现在应用系统流行用B/S开发原创 2011-08-02 14:16:19 · 984 阅读 · 0 评论 -
IIS的ISAPI接口简介
ISAPI(Internet Server Application Programming Interface)作为一种可用来替代CGI的方法,是由微软和Process软件公司联合提出的Web服务器上的API标准。ISAPI与Web服务器结合紧密,功能强大,能够获得大量的信息,因原创 2011-08-02 14:09:35 · 914 阅读 · 0 评论 -
delphi IdTelnet的使用
拖入Indy Client集合里面的IdTelnet控件,在属性里面设好host和port.之后下面一段示例代码unit main;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Gra原创 2011-08-02 14:40:52 · 7037 阅读 · 2 评论 -
Delphi第三方控件安装卸载指南
基本安装1、对于单个控件,Componet-->install component..-->PAS或DCU文件-->install;2、对于带*.dpk文件的控件包,File-->Open(下拉列表框中选*.dpk)-->install即可;3、对于带*.bpl文件的原创 2011-08-02 14:20:53 · 1211 阅读 · 0 评论 -
Delphi实现网页表单数据的自动提交
本文介绍Delphi是任何实现网页表单数据的自动提交功能的,给初代码参考。MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素.MSHTML对象模型是由一些对原创 2011-08-02 14:38:43 · 5374 阅读 · 0 评论 -
Delphi下的COM编程技术简介
认识GUID、CLSID、IID 在一个复杂的系统中,可能充斥着大量的组件对象.每个组件对象可能又有大量的楼cJ为了保证这些接口彼此不会冲突,Microsoft规定用GUID来标识组件对象和接口。GUID是Globally Unique Identifier的缩写.意为原创 2011-08-02 14:11:05 · 917 阅读 · 0 评论