
DELPHI组件技术
文章平均质量分 58
aroc_lo
这个作者很懒,什么都没留下…
展开
-
编写复合型控件遇到的问题
组合控件开发原创 2025-03-26 09:48:33 · 758 阅读 · 0 评论 -
ADOQuery中使用Resync解决读取lookup数据不正确的问题
但仍然不完美,使用 Resync 会遍历QRY1 的每一行数据,最终会定位到最后一行数据。在 ADOQuery的fields 属性中,增加两个lookup字段 L_NAME ,L_QTY ,LOOKUP数据集 QTY_LOOK 到QTY1中。此时虽然可以刷新(相当于重新统计QRY1)的数据,但是这要重新在后台执行那个存储过程来”重置“QRY1的数据是可以解决这个问题。在使用 Delphi2007 的ADOQuery时,遇到一个看到的数据与读取 lookup 数据不一样的问题。就完美的解决了这种“原创 2024-06-14 15:45:33 · 470 阅读 · 0 评论 -
D2007使用DBGridEH导出EXCEL时中文乱码的解决方法
导出excel原创 2024-06-07 09:13:24 · 221 阅读 · 0 评论 -
DataSnap 2009的简单使用
DataSnap 2009是从Delphi2009开始提供的新的DataSnap,对原有DataSnap大副改进,虽然保留了原来的基于COM的方式,但默认是使用新的不基于COM的方式,这使得它成为轻量级的、灵活的多层应用技术。这也为将来的跨平台提供了基础。Delphi2010继续新的DataSnap,应该叫DataSnap 2009呢?还是DataSnap 2010?命名不太明确。转载 2010-02-14 00:46:00 · 1984 阅读 · 0 评论 -
基于Delphi的接口编程入门
为什么使用接口? 举个例子好了:有这样一个卖票服务,电影院可以卖票,歌剧院可以卖票,客运站也可以卖票,那么我们是否需要把电影院、、歌剧院和客运站都设计成一个类架构以提供卖票服务?要知道,连经理人都可以卖票,很显然不适合把经理人也包括到卖票服务的继承架构中,我们需要的只是一个共通的卖票服务。于是,卖票的服务是个接口,电影院、歌剧院什么的只要都遵循这样一个服务定义就能很好地相转载 2010-04-03 23:22:00 · 1021 阅读 · 0 评论 -
修改 PageControl 控件的 TAB 按钮的文字与颜色
首先将pagecontrol的ownerdraw设为true再在它的onDrawTab事件里写如下代码:var TmpRect: TRect;begin with PageControl1.Canvas do begin Brush.Color := $00E6F6F8; Font.Color := clblack; FillRect(Rect); TmpRect原创 2010-08-02 10:26:00 · 2475 阅读 · 1 评论 -
delphi MDI 闪烁问题
<br />用Delphi自带的MDI模板自动建立一个多文档工程,然后做如下修改,可使屏幕不闪烁<br /><br />procedure TMainForm.CreateMDIChild(const Name: string);varChild: TMDIChild;begin{ create a new MDI child window }Perform(WM_SETREDRAW, 0, 0); //锁屏幕Child := TMDIChild.Create(Application原创 2010-09-19 21:19:00 · 2259 阅读 · 1 评论 -
读一读Scktsrvr.exe的源程序
读一读Scktsrvr.exe的源程序使用DELPHI做多层开发的朋友们都应该对Scktsrvr.exe这个程序不陌生的,Borland公司在DELPHI中给出了它的源代码。这是一个900来行的程序,程序不算长,现在我只选其中部分仔细读一读。走的线路大致是,从服务器接到客户端连接,处理客户端的一个请求(这儿选了客户端向服务器发出的'取应用服务器列表'请求)服务器接受转载 2013-06-25 15:14:42 · 966 阅读 · 0 评论 -
TTreeView技巧二则
TTreeView使用中经常需要给节点绑定数据,一般有两种方法:方法一、用指针。定义一个结构体指针绑定到TTreeNode的Data属性上。比如: Type PNodeData=^TNodeData; TNodeData=Record ID:Integer; aName:string;转载 2013-07-29 16:08:25 · 827 阅读 · 0 评论 -
adoquery + dsp + clientdataset + dbgrideh 数据排序的问题;
在维护COM+结构的三层结构的软件时,如果在服务端使用adoquery 查询后由 DSP 打包再传到客户端。这种方式,效率很低,,通常查询结果,是不再需要 apply 到服务器的。所以,我自己采用的方式,是在服务器端用 adoquery 查询,然后直接将 ADO结果直接传到客户端(不再经过DSP),然后再在客户端使用 adoquery 来接收数据;这样数据高效。但是在客户端直接使用da原创 2013-12-24 15:27:00 · 1499 阅读 · 0 评论 -
delphi 各版本編譯器判斷
Delphi conditional VER<nnn>ProductProduct VersionPackage VersionVER300Delphi Seattle / C++Builder Seattle(Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Andr...转载 2018-05-01 11:09:52 · 1303 阅读 · 0 评论 -
TreeView使用笔记
TreeView由节点构成,建树通过对TreeView.items属性进行操作。Items是一个TTreeNodes对象,这是一个TTreeNode集。一、针对TTreeNodes,也就是 TreeView.Items,有这些属性:1、count,节点个数。2、item[index] ,通过index得到节点。二、针对TTreeNodes,也就是 TreeView.Item转载 2010-02-07 22:17:00 · 625 阅读 · 0 评论 -
delphi 遍历treeview某个节点下所有节点的函数
原创 delphi 遍历treeview某个节点下所有节点的函数 收藏function treeallnode(anode:Ttreenode):string; var i:integer; mystr:string;beginfor i:=0 to anode.Count-1 do begin if mystr<> then mystr:=mystr转载 2009-12-07 00:41:00 · 2121 阅读 · 0 评论 -
delphi的万能数据库操作
好多人都抱怨delphi没有提供一个可以把任意数据放入数据库的控件,虽然说用代码实现也不难,但是有控件会更方便,这次我终于还是抽出空来做了这么个控件,以后就可以直接拖放了。它支持把任意数据类型写入数据库,也可以从数据库读出到流,或是直接保存为文件。另外,我加了一些对常用图像的处理,保存jpg或是gif格式的图像很方便,并且可以直接显示到image上。unit RaDBOLE;int转载 2010-01-17 10:07:00 · 1148 阅读 · 0 评论 -
编写控件的高级技巧
在DELPHI中编写控件,即如何定义一个新的属性类型,来实现自己的目的?例如有的控件在DELPHI的IDE中的属性窗口中加上作者的信息或者双击控件弹出关于窗口等。下面就以“关于”窗口来说明该技巧的实现方法。 先定义一个新的控件“TTestComponent”。所有代码均在里面加入。 1、让我们先定义一个新的属性类型“TTestAbout”。type TTestAbout转载 2008-10-13 00:09:00 · 786 阅读 · 0 评论 -
Delphi自定义组件(1)
组件是Delphi应用程序的基本元素。尽管大多数组件代表用户界面的可见元素,但组件也可以是程序中的不可见元素,如数据库组件。在前面的学习中,我们已经能够根据程序功能需要,合理地选择和应用Delphi提供的组件,同时,Delphi中也允许用户自己定义组件,实现相关的功能。8.4.1 组件基础知识Delphi的组件都是VCL(Visual ComponentLibrary,可视组转载 2008-10-13 17:42:00 · 1274 阅读 · 0 评论 -
在Delphi中编写控件的基本方法(1)
作为Delphi程序员,要想进一步提高编程水平就必须掌握控件的编写方法,本篇文章将通过一个简单的例子来为初学者介绍编写控件的一些基本方法和模式。 这个例子控件叫TLeiLabel,是在TLabel的基础上增加两个实用的功能:一是使文字具有立体形状,二是使文字具有超链接属性。下面就让我们一步步来实现这些功能。转载 2008-10-13 00:07:00 · 691 阅读 · 0 评论 -
如何用Delphi编写自己的可视化控件
可视化控件(VisualComponent)实际上就是一个类(class),要编写一个类,可以直接在*.pas文件中编写。但是要编写控件,则必须使用包(package)。从File菜单中选择New,新建一个Package,这就是存放和安装控件用的包。然后单击Package窗口中的Add按钮,添加一个元件(Unit)。 在弹出的对话框最上方选择NewComponent。因为一转载 2008-10-13 00:11:00 · 1061 阅读 · 0 评论 -
Delphi 组件编写--扑克牌组件
在网上看了不少关于扑克牌组件的编写,大多是调用Windows/system32下的cards.dll其实我们如果不调用这些函数也是可以作一个很好扑克牌组件。具体步骤如下: 1、首先做一个位图文件,符合如下格式,所有的扑克牌均为同样大小,每种花色排一行,从A到K排列,花色按黑桃、红桃、方块、梅花排列。如果不想做可以从QQgame 下的CardRes.dll中导出,本组件就用的就转载 2008-10-13 17:45:00 · 1137 阅读 · 0 评论 -
DBGrid 应用全书
在 Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一。但是 DBGrid 缺省的外观未免显得单调和缺乏创意。其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观的目的。通过编程,我们可以改变 DBGrid 的表头、网格、网格线的前景色和背景色,以及相关的字体的大小和风格。 以下的示例程序演示了对 DBGrid 各属性的设置,使 Delphi 显示的表转载 2008-10-30 23:25:00 · 2345 阅读 · 0 评论 -
Delphi2007中Combox控件中文乱码问题解决办法
方法1.把combobox的autocomplete属性设为false可以解决乱码问题。方法2.乱码是因为你使用了TXPMan控件,且在NT系统中使用。 在KeyPress事件中执行ComboBox_XPMan_KeyPress可解决北问题。 function IsNTSystem:Boolean;varinfo:OSVERSIONINFO;begininfo.dwOSVersionI原创 2008-11-07 16:37:00 · 2365 阅读 · 0 评论 -
delphi透明组件开发
透明的控件, 一般继承自TGraphicControl的(就是那些没有handle属性, 不能有focus的控件, 如image)都有Transparent属性. 对TWinControl类的控件, 要实现透明只要完成以下四步基本上就成了.1.在Create中设定ControlStyle :=ControlStyle - [csOpaque]; 2. override 它的CreateParams转载 2009-02-04 08:17:00 · 1380 阅读 · 0 评论 -
Bpl的使用以及与Dll的区别
Bpl就是Dll,这句话当然没错。 简单的例子,当然可以做,而且可以做得很好,我就曾把左兄的离线浏览器改成了这样一个版本: 实现多个数据连接方式,ADO、DOA、ODAC、IBX、KAO,每个连接对应它的特定数据库,都以一个独立的BPL来实现;主程序没有任何连接数据库的代码,主窗体切换版本时只要这样一段代码就行了: class function TfrmMain.SelectVersio转载 2009-04-14 00:39:00 · 1781 阅读 · 0 评论 -
控件编写:增强 TMEMO (一)
相信没有什么人对 MEMO 陌生了吧。尽管其组件的功能不错。但是,对它进行一些功能的改进,可以更好的使用。 有的时候,我们想要知道,当前的坐标是什么?甚至,想要在 滚动条滚动时触发一些事件。 但,TMemo 本身并没有这样的功能。那我们就要扩展它; 那我们现在就来作: file -> new -> other -> package 在 dpk 窗口上,原创 2008-10-14 22:05:00 · 1121 阅读 · 0 评论