![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
delphi
文章平均质量分 60
xiexuan2007
这个作者很懒,什么都没留下…
展开
-
delphi 接口
1.1 为什么使用接口? 举个例子好了:有这样一个卖票服务,电影院可以卖票,歌剧院可以卖票,客运站也可以卖票,那么我们是否需要把电影院、、歌剧院和客运站都设计成一个类架构以提供卖票服务?要知道,连经理人都可以卖票,很显然不适合把经理人也包括到卖票服务的继承架构中,我们需要的只是一个共通的卖票服务。于是,卖票的服务是个接口,电影院、歌剧院什么的只要都遵循这样一个服务定义就能很转载 2014-07-30 11:32:24 · 575 阅读 · 0 评论 -
Windows消息大全
Windows消息目录1. WM_NULL=$0000:2. WM_CREATE=$0001: 应用程序创建一个窗口3. WM_DESTROY=$0002: 一个窗口被销毁4. WM_MOVE=$0003: 移动一个窗口5. WM_SIZE=$0005:改变一个窗口的大小6. WM_ACTIVATE=$0006: 一个窗口被激活或失去激活状态;7. WM_S转载 2014-08-07 15:11:56 · 535 阅读 · 0 评论 -
如何把TUniQuery的查询数据保存到TClientDataSet
可以通过TDataSetProvider赋值,把TClientDataSet的属性 unqry1.SQL.Clear; unqry1.SQL.Add('select * from TB1'); unqry1.Execute; cds1.Data := dtstprvdr1.Data;原创 2014-08-27 16:23:41 · 1911 阅读 · 0 评论 -
Delphi DLL使用接口和调用的方法
Delphi对接口采用引用计数的方法管理对象生命周期,但是DLL中输出的对象可能不是被Delphi调用,其引用计数不一定正确,因此DLL中接口对象的生命周期不由Delphi编译器自动生成的代码管理,而是程序员自己控制,所以上面的工厂包括构造和解析两个接口对象的生命周期管理方法。所有接口对象应该集成自下面的接口,而不应该继承自Delphi自带的TInterfacedObject:原创 2015-03-02 15:38:09 · 4262 阅读 · 0 评论 -
delphi类与对象的转化
TClassBase = class(TPersistent) private { Private declarations } protected function SelfObj: TClassBase; virtual; procedure ShowMsg; virtual; public { Public declarati原创 2015-04-30 10:36:36 · 1021 阅读 · 0 评论 -
Delphi 在多线程下面调用远程服务端的方法(TSocketConnection )
1.可以通过同步的方法。 把线程中调用原创 2014-09-02 14:33:53 · 3229 阅读 · 0 评论 -
对WM_NCHITTEST消息的了解+代码实例进行演示
这个消息比较实用也很关键,它代表非显示区域命中测试。这个消息优先于所有其他的显示区域和非显示区域鼠标消息。其中lParam参数含有鼠标位置的x和y屏幕坐标,wParam 这里没有用。Windows应用程序通常把这个消息传送给DefWindowProc,然后Windows用WM_NCHITTEST消息产生与鼠标位置相关的所有其他鼠标消息。通俗的讲从消息产生消息。case WM_NCH转载 2016-01-13 10:46:10 · 763 阅读 · 0 评论 -
百度pcs关闭服务怎么办?
因为最近我们的项目(数据观)需要用到百度pcs,但百度已经关闭了pcs的申请,以为没有办法了无意中发现了wp2psc,测试了一下,非常OK。第一步:oauth认证,链接是:http://openapi.baidu.com/oauth/2.0/authorize?response_type=token&client_id=CuOLkaVfoz1zGsqFKDgfvI0h&redire转载 2016-02-01 11:21:07 · 9037 阅读 · 3 评论 -
无边框窗体拖动大小
今天有一个朋友问我怎样可以拖拽一个没有边框的窗体,使其改变大小。于是很快想到一个消息WM_NCHITTEST该消息用来描述,当关标移动或当按下或当释放了鼠标按扭的时候,就会发送一个WM_NCHITTEST消息给一个窗口若鼠标未被捕获,则这条消息发送给光标所在的窗口。否则,这条消息公布给捕获鼠标的窗口。参数 xPos = LOWORD(Lparam);//LParam低位字的转载 2016-01-13 10:55:49 · 861 阅读 · 0 评论 -
delphi调用C#webservice接口的中文编码问题
在webservice是用的utf-1需要在生成的接口中添加:var RIO: THTTPRIO;begin Result := nil; if (Addr = '') then begin if UseWSDL then Addr := defWSDL else Addr := defURL; end;原创 2016-06-28 15:39:18 · 3163 阅读 · 0 评论 -
Client:TSocketConnection 和Server: Scktsrvr关系----压缩数据传输方案
一直用SocketConnection和服务端的传输数据在三层数据库中,从来没有注意到它们之间的数据传输,只是想着,管它了,网络的事,前段时间在Delphi中的Demos中发现Demos/Midas/Intrcpt.dpr例子,呵呵,再看了半天的VCL发现可以将Client端发送的给Server的数据,和Server发送给Client的数据是可以进行压缩的。呵呵,不敢藏私,Share给大家。转载 2014-08-04 09:15:12 · 466 阅读 · 0 评论 -
BPL包无法调试的问题
由于系统结构是Host主程序动态加载BPL包的模式。所以用到了Package的调试,但无论如何有一个包就是无法调试(加断点不起作用)。经过N久的查找,发现: 1.包Package在编译,生成的时候会自动产生DCP和BPL文件,缺省产生到Delphi/Projects/BPL下。 2.BPL文件的生成路径可以在Project/Options/Directories中修改转载 2014-07-08 11:16:53 · 1868 阅读 · 0 评论 -
Win2003--DELPHI安装后只有一个控件面板[standard] Delphi中打开project/options 出错
重新安装DELPHI 7.0 以后,只有一个控件面板“standard”,不知道什么原因,经查可以这样解决: 关闭Delphi,然后编辑注册表,删除 HKEY_CURRENT_USER\Software\Borland\Delphi 这个键,然后重启Delphi即可。它会重建这个键,并恢复默认设置。刚安装的Delphi6中打开project/options 出错转载 2014-05-29 11:37:47 · 1393 阅读 · 0 评论 -
以Delphi Package架构多人开发应用程序环境
印象中的Package 在一般的AP开发时,我们知道在Delphi7.0整合环境中将Project->Options->选到Packages卷标页,Builder with runtime packages选项打勾,就会让编译出来的执行文件Size变小很多(以空白的Form1为例,编译出来的Size由367kb变成20kb),因为它把一些VCL共享模块的Loding放到*.bpl中;换句话转载 2013-12-20 12:24:59 · 1775 阅读 · 0 评论 -
用Delphi编写Windows服务程序
一、Windows服务简介 服务程序(Service Application)是一种运行于WinNT的后台程序,每个服务程序(Service Application)中可能包含若干个服务(Service),每个服务就是其中的一个线程(该服务也可以创建多个子线程)。采用服务,应用程序可以获得特殊的权限,而且不会被用户通过Win2000的任务管理器直接结束程序,所以服务常常用来实现一些特殊的转载 2014-01-06 11:51:36 · 7267 阅读 · 0 评论 -
delphi自定义鼠标移入移除和点击后控件的图片改变
uses Windows, Messages, SysUtils, Classes, Graphics, ExtCtrls, Controls; type TWMSPanel = class(TCustomControl) FPicMouseLeave: TPicture; // 鼠标移出切换的图片 FPicMouseEnter原创 2014-01-15 11:31:58 · 2707 阅读 · 0 评论 -
图形处理相关
GetClientRect、ClientRect 获取的是窗口的客户区矩形; 控件本身的区域GetWindowRect、BoundsRect 是获取窗口矩形;控件区域相对父类区域的坐标绘制位图听起来似乎很难,然而如几次所见到的那样,绘制位图非常容易。TCanvas类具有几种方法绘制位图,最常用的方法是Draw方法,这种方法只是在画布上指定位置绘制位图。用户已原创 2014-01-15 18:03:24 · 785 阅读 · 0 评论 -
delphi Window 消息大全使用详解
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg, 它在Windows单元中是这样声明的:转载 2014-01-16 16:12:04 · 848 阅读 · 0 评论 -
自定义消息发送字符串
定义消息const WM_WMS_ACTIONBTN = WM_USER + 1;发送消息var aControlName: string;begin aControlName := Self.Name; SendMessage(Parent.Handle, WM_WMS_ACTIONBTN, 0, Integer(PChar(aControlN原创 2014-01-16 12:06:38 · 1107 阅读 · 0 评论 -
Delphi GDI对象之绘制文本
基本绘图操作(Basic Drawing Operations)现在大家已经知道Rectangle方法用来画正方形和矩形,Ellipse方法用来画圆和椭圆,MoveTo和LineTo方法则用来画线。还有Arc方法用于画弧,Pie方法用于画饼形,一切一切都是非常基础的,没有太大的必要详细了解TCanvas的这些方法,下面开始更有趣的图形操作,这些图形操作在编写Delphi应用程序时很转载 2014-01-16 14:35:02 · 1437 阅读 · 0 评论 -
Delphi“流”实现文件加密器
数据流是面向对象程序设计语言中面向对象思想的典型体现,它彻底地取代了早期的利用函数实现输入输出的功能,克服了用函数实现输入输出功能的诸多弊端。简单来说,流就是建立在面向对象基础上的一种抽象的处理数据的工具。在流中,可定义一些处理数据的基本操作,如读取数据、写入数据等,程序员是对流进行操作,而不用关心流的另一头数据的真正流向。流不但可以处理文件,还可以处理动态内存、网络数据等多种数据形式。掌握好对流转载 2014-03-03 12:02:05 · 1233 阅读 · 0 评论 -
ClientDataSet加上TDataSetProvider的数据保存问题
前台:D7或D2005; DBExpress连接组件:TSqlConnection,TSqlQuery ,TDataSetProvider,TClientDataSet;后台:SQL Server 2000;更新数据的命令:DataSetProvider.ApplyUpdates(ClientDataSet.Delta , -1 , ErrorCount);设置DataSetP转载 2014-05-10 23:49:29 · 1561 阅读 · 0 评论 -
delphi笔记
变体和流之间的相互转换Procedure VariantToStream(const v: Variant; Stream: TStream);var p: pointer;begin Stream.Position := 0; Stream.Size := VarArrayHighBound(v, 1) - VarArrayLowBound(v, 1) + 1;原创 2014-05-27 13:51:23 · 421 阅读 · 0 评论 -
Delphi XE 10 跨平台三层数据库应用 datasnap
(1)生成DataSnap服务器的框架初学者都是呆子,还是用向导吧,主菜单“File”->“New”->“Other…”得到“New Items”向导对话框。见图一。图一、向导一般选择有窗口的Forms程序,如果是正式场合,建议Service程序。见 图二。图二、选择应用类型 如果服务器程序运行在Windows平台就选“VCLappl原创 2017-09-19 18:26:55 · 10029 阅读 · 4 评论