Delphi技术专题
jing12
这个作者很懒,什么都没留下…
展开
-
FASTREPORT超过4位小数位不显示
Fastreport 显示小数问题原创 2022-11-09 09:35:22 · 896 阅读 · 2 评论 -
delphi实行ping功能
unit ping;interfaceuses Windows, SysUtils, Classes, Controls, Winsock, StdCtrls;type PIPOptionInformation = ^TIPOptionInformation; TIPOptionInformation = packed record转载 2009-12-31 13:54:00 · 782 阅读 · 0 评论 -
Delphi模拟键盘控制Caps Lock(keybd_event)
以Caps Lock键举例,其它(VK_NUMLOCK),类同: 判断状态: 方法1Level: integer; Level := GetKeyState(VK_CAPITAL);if Level = 0 then //没亮else//亮了(1) 方法2KeyState : TKeyBoardState; GetKeyboardS原创 2009-12-24 11:09:00 · 3375 阅读 · 1 评论 -
用Delphi实现网络驱动器的映射和断开(WNetAddConnection2)
大家在运用Delphi编写网络应用程序时可能会遇到这样一个问题:在一个由Windows NT和Novell Netware组成的网络环境中,应用程序需要使用Novell网上的某些数据,如果每次都手工在Windows资源管理器中映射,断开网络驱动器,不仅繁琐而且显得不够专业。本文将介绍在Delphi中使用Windows32 API函数解决这一问题。 一、 基本原理 在Microsoft转载 2009-12-23 10:30:00 · 3356 阅读 · 0 评论 -
软件保护技术(软件注册机制)
1 序列号保护 数学算法一项都是密码加密的核心,但在一般的软件加密中,它似乎并不太为人们关心,因为大多数时候软件加密本身实现的都是一种编程的技巧。但近几年来随着序列号加密程序的普及,数学算法在软件加密中的比重似乎是越来越大了。 看看在网络上大行其道的序列号加密的工作原理。当用户从网络上下载某个shareware——共享软件后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须转载 2010-02-02 17:44:00 · 1215 阅读 · 0 评论 -
在Delphi程序中操作注册表(转)
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。 一、创建和释放TRegistry对象 1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Create; 2.释放TRegistry对象。对注册表操作结束后,应释放TRe转载 2010-02-02 17:35:00 · 444 阅读 · 0 评论 -
dxDBGrid使用集锦
一、如何设定可以多列自动排序? 只能使用分组:如按a1,a2,a3,a4排序 先按a1分组,再a2,再a3 然后设置a4的排列(升/降)二、如何设定左边几列,不能滚动? 建立Band0,Band1 Band0的Fixed=tfLeft Band1的Fixed=tfnone 设置要锁定的字段的BandIndex=0,其它为1三、如何访问,显示字段的对象,控制转载 2009-11-10 16:54:00 · 1657 阅读 · 0 评论 -
Visual Source Safe(简称VSS项目文件的管理)
VSS 的全称为 Visual Source Safe 。作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。 源代码版本控制机制是现代软件开发中必不可少的管理机制之一,通常借助版本控制软件即Source Code Management(SCM) systems或者Version Control systems来实现。版本控转载 2009-09-08 09:59:00 · 1047 阅读 · 0 评论 -
Delphi取局域网上所有的SQL服务器名称
unit GetSQLServerUnt;interfaceuses ADODB, OleDB, ActiveX, ComObj, ADOInt, ADOConst, Classes, Windows, SysUtils, DB;const CLSID_SQLOLEDB_ENUMERATOR: TGUID = {DFA22B8E-E68D-11d0-97E4-转载 2009-08-21 10:47:00 · 1656 阅读 · 2 评论 -
Delphi文件夹复制
Function DoCopyDir(sDirName:String;sToDirName:String;flag:boolean):Boolean;var F: TSearchRec; //hFindFile:Cardinal; t,tfile:String; sCurDir:String[255]; FindFileData:WIN32_FIND_原创 2008-11-05 17:14:00 · 1637 阅读 · 0 评论 -
dxDBGrid一些设定
针对TdxDBGrid 仅仅设置一些属性,就可以到达很好的效果:前提:先设置DataSource、ADODataSet、以及TdxDBGrid 的属性后,设置ADODataSet 的Active=true;然后才能在TdxDBGrid中的鼠标右键->column-> Add all Fields; 注意:一定要设置TdxDBGrid 控件的属性keyField、并设置OptionsDB 中edgo转载 2008-03-10 12:06:00 · 1394 阅读 · 0 评论 -
delphi调用腾讯通发即时消息
1. 确认安装RTX Server SDK在开发的机器上必须确认已经安装了RTX Server SDK,并且与RTX Server的版本要一致。该计算机后面我们简称SDK计算机。2. 步骤2、放开IP地址的限制您的RTX Server SDK与 RTX Server安装在不同的机器上,必须保证两台机器网络是互通的。并且保证相应的端口是打开的,假如装有放火墙,COM方式调用SDK新接口需要打原创 2009-12-31 17:16:00 · 2537 阅读 · 0 评论 -
括号匹配(delphi)-转
type TCharStack = class(TStack) private function GetTop: Char; public function Pop: Char; function Push(Item: Char): Char; property Top: Char read GetTop;转载 2010-01-08 11:34:00 · 709 阅读 · 0 评论 -
fastreport 转PDF 中文 乱码 ARIAL
fastreport 转PDF中文乱码,百度绝大部分方法是:把字体设为宋体,设为中文字体等这的确可以解决,但是为了解决这个问题,牺牲字体,牺牲美观,宋体实在是太丑了,这个问题困扰了很久,今天终于找到最佳的解决方法,要用ARIAL字体(其它字体方法类似),解决方法:百度并下载:“Arial Unicode MS” 字体,安装此字体,并在报表中选择该字体导出PDF时,选择“嵌入字体”,原创 2015-07-19 20:10:25 · 4880 阅读 · 1 评论 -
FASTREPORT 预览 编辑页
希望在FASTREPORT预览界面对报表项进行调整,并对调整结果再次打印,已开发“编辑页功能”,但点开“编辑页”,进行修改后无法再次预览,只有“保存”按钮可用,预览按钮为灰色的,保存是把结果保存为一个报表文件,与我的想法不一致。解决方法如下:直接修改后点右上角的关闭的那个叉,提示“保存变更至预览界面?”,选“是”即可实现功能很简单,但是会容易忽略,会用的人请勿笑,我是一直没有注意到原创 2015-07-19 20:17:20 · 2146 阅读 · 0 评论 -
CXGRID增加选择列
在CXGRID中增加一列做选择列,且不绑定字段,关键代码cxGrid1DBTableView1.Columns[0].DataBinding.ValueType := 'Boolean';cxGrid1DBTableView1.DataController.DataModeController.SmartRefresh := True;cxGrid1DBTableView1.Dat原创 2015-03-22 21:53:43 · 1081 阅读 · 0 评论 -
Delphi操作Word,Excel替换
有的时候想把数据库里的内容写在Word,Excel按某种格式原创 2014-09-14 14:46:40 · 2753 阅读 · 0 评论 -
INNO SETUP-批处理
CD/D i:\Program Files\Inno Setup 5Compile32 /cc I:\Install\setup_tmp.iss原创 2012-08-16 15:04:15 · 1055 阅读 · 0 评论 -
VSS取源码-批处理命令
1、切换到源码路径CD/D I:\源码\Source 2、变量加入环境变量PATH=%PATH%;I:\program files\vss\win323、设置变量SET SSUSER=VSS用户名SET SSPWD=VSS密码SET SSDIR=登录VSS的路径,即Open SourceSafe DataBase中的Path4、取源码,%VSSSOUR%:为VS原创 2012-08-16 14:12:48 · 651 阅读 · 0 评论 -
Delphi自动编译-批处理
1、切换到项目文件路径下CD/D I:\源码\Source\PrjMain2、编译"F:\Program Files\Borland\Delphi7\Bin\delphi32.exe DCC32.exe" "prjMain.dpr" -D -B 注意:项目文件的cfg文件,将里面的相对路径全部换为绝对路径,并将 -U -O -I -D中加入所使用控件的路径 常用批原创 2012-08-16 14:49:32 · 1360 阅读 · 0 评论 -
delphi 选择文件夹
uses ...ShlObj, ActiveX;function BrowseCallbackProc(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer; stdcall;begin if uMsg = BFFM_INITIALIZED then begin SendMessage(Wnd, BFFM_原创 2010-04-17 22:30:00 · 781 阅读 · 0 评论 -
delphi-cxgrid-cxtreelist加行序号
OptionsView.Indicator = TrueOptionsView.IndicatorWidth = 40//宽度procedure cxGridCustomDrawIndicatorCell( Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewI原创 2012-06-27 22:29:19 · 1841 阅读 · 0 评论 -
delphi自动编译(Vss自动下载)
<br />批处理文件: <br />@echo off<br />Echo 正在打包,请稍候。。。<br />rem 变量设置<br />set CompPath = <br />set DelphiPath =<br />set SourcePath = <br />set ExePath =<br />set VssPath =<br />set VssDir =<br />set VssSourcePath =<br />set VssUser =<br />set VssPassword = <b原创 2010-12-26 14:46:00 · 636 阅读 · 0 评论 -
ntdll.dll问题
ntdll.dll问题请下载升级包:delphi7.1.update安装后问题解决! 下载地址:http://mirror1.2ccc.com/downloads/tools/developer/delphi7.1.update.rar原创 2007-11-26 14:06:00 · 2058 阅读 · 0 评论 -
判断窗体状态
最大化: if form1.WindowState = wsMinimized then普通: if form1.WindowState = wsNormal then最小化: if Boolean(IsIconic(Application.Handle)) then //主窗体 if Boolean(IsIconic(form1.Handle原创 2007-11-16 11:18:00 · 482 阅读 · 0 评论 -
StringGrid中加列表框类的控件
StringGrid中加列表框类的控件(其它控件类似):procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);begin if ( gdFocused in State ) then begin原创 2007-11-02 17:41:00 · 661 阅读 · 0 评论 -
设置Delphi程序的自启动功能
自启动注册表项:HKEY_LOCAL_MACHINE/Software/Microsoft/CurrentVersion/Run先加入“Registry”单元。再用如下代码:var Reg: TRegistry; KeyName: string;begin Reg := TRegistry.Create; KeyName := ExtractFileName原创 2007-09-11 15:34:00 · 640 阅读 · 0 评论 -
OffsetRect的用法
格式:NewRectangle:=OffsetRect(Rectange,x,y);说明:该函数是的作用是按照Rectange的形状复制一个矩形,矩形的位置由原矩形的位置和参数x,y来决定。参数x,y是新矩形相对原矩形移动的位置,当x大于零时,新矩形在原矩形的右边,当y大于零时,新增矩形在原矩形的下方;当参数小于零时,位置相反翻译 2007-09-11 15:32:00 · 3159 阅读 · 0 评论 -
回车键代替Tab键下移焦点
1、在窗体的OnKeyPress(or OnKeyDown)中加入if key=#13 then //如果加在KeyDown中,则为13 or VK_RETURNbegin //此处可加条件,若有不需用回车代替的控件,如TstringGrid //if not (ActiveControl is TstringGrid) then key:=#0; Perfo原创 2007-09-11 15:24:00 · 888 阅读 · 0 评论 -
Edit右对齐
1、在窗体的OnCreate或OnShow 中加入(适合少数Edit右对齐情况):SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_right);2、如经常需要可编写继承控件,只需继承Tedit并重载CreateParams方法即可。procedure TMyEdit.原创 2007-09-11 15:22:00 · 607 阅读 · 0 评论 -
如何操作INI文件
如何操作INI文件? INI 文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如 VB、VC、VFP、Delphi 等都提供了读写 INI 文件的方法,其中Delphi中操作 INI 文件,最为简洁,这是因为Delphi3提供了一个 TInifile 类,使我们可以非常灵活的处理 INI 文件。 一、有必要了解 INI 文件的结构:;注释 [小节名] 关键字转载 2007-09-11 15:44:00 · 605 阅读 · 0 评论 -
TTreeView遍历
function AllOverTreeView(node:TTreenode):TTreenode;begin while node begin if node.HasChildren then begin node:=node.GetFirstChild; AllOverTreeView转载 2007-09-11 15:42:00 · 653 阅读 · 0 评论 -
屏蔽右键菜单的几个方法
1、绑定菜单法:将某可视控件的PopubMenu属性设置为一个没有菜单项的PopubMenu控件。2、编写事件法:在某控件的OnContextPopup事件中写入Handled := true,如某控件没有此事件,编写事件方法,再用祖先类调用。3、拦截系统消息法:Procedure Tform1.MouseRightMessage(var Msg: TMsg; var Handled:转载 2007-09-11 15:38:00 · 939 阅读 · 0 评论 -
在DBGrid中改变第n列的颜色
在DBGrid的OnDrawCell事件中加入:If Column=DBGrid1.Columns[n] then //也可用Column.FileName=字段名 DBGrid1.Canvas.brush.Color:=clRed;DBGrid1.DefaultDrawDataCell(Rect,Column,Field,State);原创 2007-09-11 15:30:00 · 510 阅读 · 0 评论 -
StringGrid颜色
1、换整个背景色用Font属性。2、不同行不同色情况(例隔行换色)Procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);Begin With StringGrid1 Do Begin If aco原创 2007-09-11 15:20:00 · 1094 阅读 · 0 评论 -
设置Delphi打开及保存初始路径
右键占击Delphi快捷方式,设置“属性”中的“开始位置”为你的预设路径。原创 2007-06-06 14:08:00 · 1474 阅读 · 0 评论 -
Delphi文件管理相应函数
以下目录名及文件名,若没有指定路径,则默认当前目录。1、Chdir(目录名):指定当前目录,如chdir(‘C:/’),指定当前目录为C盘根目录。2、Mkdir(目录名):创建新目录,如mkdir(‘tmp’),在当前目录下创建tmp文件夹。3、Rmdir(目录名):删除指定的目录。4、RenameFile(原文件名,新文件名):改文件名。5、FileExists(文件名):判原创 2007-09-11 15:39:00 · 565 阅读 · 0 评论 -
DBGrid列移动
如何使DBGrid列宽可调整,但列不可移?答:TStringGrid(DBGrid1).Options:= TStringGrid(DBGrid1).Options-[goColMoving];原创 2007-09-11 15:46:00 · 744 阅读 · 0 评论 -
取得鼠标位置
Var P: Tpoint; //定义点变量GetCursorPos(P); //将当前鼠标位置赋给变点PPopupMenu1.Popup(P.x, P.y); //在点P处弹出快捷菜单原创 2007-09-11 15:36:00 · 363 阅读 · 0 评论 -
循环设置控件属性
Uses typInfo;var i: integer; pi: PPropInfo; ex: TADOConnection; //示例类型begin for i := 0 to self.ComponentCount - 1 do begin pi := GetPropInfo(Components[i].ClassInfo, pName); if pi原创 2007-11-01 14:41:00 · 582 阅读 · 0 评论