Delphi笔记
pnzebin
这个作者很懒,什么都没留下…
展开
-
Delphi 堆内存分配和释放方法
Delphi中几种常见的方法来申请堆内存(动态分配内存),每种方法都有对应的释放方法。原创 2023-09-02 11:36:35 · 830 阅读 · 0 评论 -
Delphi cxGrid的FocusedRecordChanged事件
因为在GridMode=False的情况下,只要表格的数据源发生的变动(例如ADOQuery.Post),cxGrid为了刷新表格数据,会重新遍历整个数据源,导致多次触发了AfterScroll事件,很影响效率。事件可以平替ADOQuery的。Delphi cxGrid的。原创 2023-07-26 09:21:25 · 228 阅读 · 0 评论 -
cxGrid的GridMode属性相关知识
因为 GridMode 显示模式只加载当前可见区域的数据和一定数量的缓冲行,所以数据源的 Post 事件只会影响到当前可见的数据行,其他数据行不会立即更新。GridMode 是 cxGrid 中的一种轻量级显示模式,它通过减少资源使用来提高性能,并且支持按需加载数据,只有在需要显示的数据进入可见区域时才会加载,而不是一次性加载所有数据。高性能显示: GridMode 是 cxGrid 中的一种轻量级显示模式,使用更少的资源,因此在处理大量数据时,可以更高效地显示数据,减少界面卡顿和响应延迟。原创 2023-07-25 17:32:39 · 211 阅读 · 0 评论 -
Delphi 限制Edit框只能输入数字和小数点
【代码】Delphi 限制Edit框只能输入数字和小数点。原创 2023-01-05 09:06:37 · 611 阅读 · 0 评论 -
Delphi连接Oracle数据库的一些经验
Delphi连接Oracle数据库的一些经验原创 2022-11-14 15:44:24 · 2145 阅读 · 0 评论 -
Delphi TStringList 属性/用法
Delphi TStringList 用法转载 2022-07-13 15:21:58 · 4252 阅读 · 0 评论 -
Delphi ScrollBox 响应鼠标滑轮事件
Delphi ScrollBox 响应鼠标滑轮事件原创 2022-07-13 15:18:08 · 594 阅读 · 0 评论 -
Delphi 遍历窗口所有控件函数
//显示窗体中所有控件的函数function GetCtrls(Control: TWinControl; List: TStringList): Boolean;var i: Integer; obj: TWinControl;begin for i := 0 to Control.ControlCount-1 do begin obj := TWinControl(Control.Controls[i]); List.Add(obj.Name);//如果控件中包含其他控件,原创 2021-10-08 17:48:28 · 883 阅读 · 0 评论 -
Delphi 读取&预览Word文档内容
预览(转换成rtf文件加载到richedit)原创 2021-09-04 17:45:44 · 1685 阅读 · 0 评论 -
Delphi 操作Excel方法大全
Delphi操作Excel大全原文地址:http://blog.csdn.net/lailai186/article/details/6664110Delphi 控制Excel(一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( ‘Excel.Application’ );显示当前窗口:ExcelApp.Visible := True;更改 Excel 标题栏:Ex转载 2021-09-04 17:43:27 · 6053 阅读 · 0 评论 -
Delphi 等待外部程序执行完毕
Delphi 等待外部程序执行完毕再进行下一步操作unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); priv原创 2021-09-04 17:42:07 · 806 阅读 · 0 评论 -
Delphi 基本算法
基本算法模块一、数论算法1.求两数的最大公约数function gcd(a,b:integer):integer;beginif b=0 then gcd:=aelse gcd:=gcd (b,a mod b);end ;2.求两数的最小公倍数function lcm(a,b:integer):integer;beginif a<b then swap(a,b);lcm:=a;while lcm mod b>0 do inc(lcm,a);end;3.素数的求法A原创 2021-09-04 17:41:02 · 721 阅读 · 0 评论 -
Delphi 读取txt文件
procedure TForm1.Button1Click(Sender: TObject);var F: TextFile; S: string;begin if OpenDialog1.Execute then { Display Open dialog box } begin AssignFile(F, OpenDialog1.FileName); //绑定文件到文件类型变量 Reset(F);//打开一个存在的文件,另Rewrite创建文件并原创 2021-09-04 17:37:34 · 1429 阅读 · 0 评论 -
Delphi 消息事件大全
Delphi Window 消息大全使用详解WM_CTLCOLORSTATIC = $0138;当一个静态控件将要被绘制时发送此消息给它的父窗口;通过响应这条消息,所有者窗口可以通过使用给定的相关显示设备的句柄来设置静态控件的文本和背景颜色WM_MOUSEFIRST = $0200;WM_MOUSEMOVE = $0200;// 移动鼠标WM_LBUTTONDOWN = $0201;//按下鼠标左键WM_LBUTTONUP = $0202;//释放鼠标左键WM_LBUTTONDBLCLK转载 2021-09-04 17:36:45 · 495 阅读 · 0 评论 -
Delphi 异常处理try except语句和try finally语句
一、异常的来源 在Delphi的应用程序中,下列的情况都比较有可能产生异常。 (1)文件处理 (2)内存分配 (3)Windows资源 (4)运行时创建对象和窗体 (5)硬件和操作系统冲突 二、异常的处理 (1)try…except…end; 在try体内的代码发生异常时,系统将转向except部分进行异常的处理。这是Delphi处理异常的最基本的方式之一。 (2)try…finally…end; 这种异常处理结构一般用于保原创 2021-09-04 17:34:42 · 4228 阅读 · 0 评论 -
Delphi cxGrid 获取表中的各种数据
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号cxGrid1DBTableView1.Controller.FocusedRow 当前行cxGrid1DBTableView1.Controller.FocusedColumn 当前列cxGrid1DBTableView1.Controller.FocusedColumnIndex 当前列号cxGrid1DBTableV原创 2021-09-04 17:30:13 · 960 阅读 · 0 评论 -
Delphi dxRibbon 风格窗体去掉标题栏
原创 2021-09-04 17:23:10 · 326 阅读 · 0 评论 -
Delphi 判断文件是否被占用中
Delphi 判断文件是否被占用中unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm2 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private原创 2021-09-04 17:23:34 · 707 阅读 · 0 评论 -
Delphi 屏幕坐标转换窗口坐标
var MouseXY: TPoint;begin GetCursorPos(MouseXY); MouseXY := ScreenToClient(MouseXY); Showmessage(IntToStr(MouseXY.X) + ',' + IntToStr(MouseXY.Y))end;原创 2021-09-03 11:36:13 · 498 阅读 · 0 评论 -
Delphi 一次性执行多条DOS命令行的方法
Delphi 一次性执行多条CMD命令行的方法用 "&"连接符连接ShellExecute(Handle,nil,'cmd.exe' , PChar('/c "C:/Program Files/WinRAR/WinRAR.exe" a c:\1.rar E:\RX_OHSS201512050915\PDFfile & pause') , nil,SW_show);原创 2021-09-03 11:35:20 · 499 阅读 · 0 评论 -
Delphi 执行DOS命令行
Delphi 执行CMD命令行ShellExecute(Handle,nil,'cmd.exe',PChar('/c "C:/Program Files/WinRAR/WinRAR.exe" a c:\1.rar E:\RX_OHSS201512050915\PDFfile & pause'),nil,SW_show);原创 2021-09-03 11:33:10 · 701 阅读 · 0 评论 -
Delphi 判断一个点(Point)是否在矩形之内
PtInRect();原创 2021-09-03 11:31:26 · 246 阅读 · 0 评论 -
Delphi 动态创建、释放控件(批量)
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); proced原创 2021-09-03 11:28:07 · 822 阅读 · 0 评论 -
Delphi 捕获窗体调整大小、移动时的消息(事件)
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; private procedure WMEnterSizeMove(var Message: TMessage) ; message WM_ENTER原创 2021-09-03 11:27:03 · 629 阅读 · 0 评论 -
Delphi 窗体创建与释放的顺序
原创 2021-09-03 11:25:45 · 194 阅读 · 0 评论 -
Delphi StrToIntDef 函数(字符串转整形,失败时返回默认值)
函数定义:function StrToIntDef(const S: string; Default: Integer): Integer;引用单元:SysUtils.pas功能:将字符串转换成整形,如果字符串无法转成整形的话则返回预设的默认值代码示例://返回Edit1.Text的数字,如果不成功返回0SpinEdit1.Value := StrToIntDef(Edit1.Text, 0); ...原创 2021-09-03 11:21:15 · 1103 阅读 · 0 评论 -
Delphi 获取异常错误信息(捕获异常)
Delphi 捕获代码抛出的异常信息try //业务代码except on e:exception do begin application.MessageBox(pchar(e.ClassName), '错误类型', 0); application.MessageBox(pchar(e.Message), '错误信息', 0); end;end;原创 2021-09-03 11:14:29 · 907 阅读 · 0 评论 -
Delphi cxImage控件隐藏选中时的边框
//鼠标点击时是否显示边框cximage1.Properties.ShowFocusRect := False;原创 2021-09-03 11:10:52 · 208 阅读 · 0 评论 -
Delphi 遍历枚举类型
遍历枚举元素名称及枚举值unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, TypInfo;type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: T原创 2021-07-17 09:56:37 · 409 阅读 · 0 评论 -
Delphi 替换字符串函数StringReplace
//替换字符串的函数 参数 str:原串; s: 将被替换掉的字符; 替换成的newstr; //[rfReplaceAll]全部替换(替换类型)StringReplace(str,oldstr,newstr,[rfReplaceAll])原创 2021-07-17 09:53:52 · 2338 阅读 · 0 评论 -
Delphi ADOQuery事务回滚
procedure TForm1.Button1Click(Sender: TObject);begin with ADOQuery1 do begin try ADOConnection1.BeginTrans; Close; SQL.Text:='delete ss_HJjchz where shz_pch=''1201201510150003'' '; ExecSQL; SQL.Text:='delete @#$%^&*()';//无法执原创 2021-07-17 09:37:04 · 646 阅读 · 0 评论 -
Delphi cxLookupComboBox 获取其它列的值
cxLookupComboBox1.Properties.Grid.DataController.Values[cxLookupComboBox1.Properties.Grid.FocusedRowIndex, 0]cxLookupComboBox1.Properties.Grid.DataController.Values[cxLookupComboBox1.Properties.Grid.FocusedRowIndex, 1]cxLookupComboBox1.Properties.Grid.Da原创 2021-07-12 14:11:37 · 680 阅读 · 0 评论 -
Delphi 数据类型列表
Delphi 数据类型列表 分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 2147483647 4 有符号32位 Cardinal 0 .. 4294967295 4转载 2021-07-12 14:06:40 · 199 阅读 · 0 评论 -
Delphi DBGridEh保存表格调整到ini文件中
打开窗口时还原上次关闭时DBGridEh的样子procedure DBGridEhConfigIni(DBGEH:TDBGridEh;FormName:String;CallType:Byte); //关闭窗口时记录DBGridEh的调整 下次打开窗口时还原上次关闭时的样子 (uses DBGridEh)var MyRestoreParams :TDBGridEhRestoreParams;begin if CallType=0 then //为0时写入 为1时读取 begin原创 2021-07-12 13:58:51 · 302 阅读 · 1 评论 -
Delphi 指针应用
Delphi 的指针分为 “类型指针” 和 “无类型指针” 两类.Delphi 中的类型, 常用的也得有几百个, 我们可以给每种类型定义相应的类型指针.其实 Delphi 已经为很多类型预定义了指针, 譬如数据类型:Integer 有对应的 PInteger;Char 有对应的 PChar;string 有对应的 PString;再譬如:TPoint 有对应的 PPoint;TColor 有对应的 PColor 等等.另外, 指针也可以有指针, 譬如: PChar 是字符指针, PPCha转载 2021-07-12 13:53:38 · 280 阅读 · 0 评论 -
Delphi DBGridEh部分常用属性
常用属性FooterRowCount:表格底部的合计栏行数Columns[i].HideDuplicates:合并重复数据行Columns[i].Footer.ValueType:字段合计类型Options:dgEditing:编辑表格(dgRowSelect为True时才能打开)dgTitles:显示列标题dgIndicator:显示指示器dgMultiSelect:支持多选...原创 2021-07-12 11:58:34 · 280 阅读 · 0 评论 -
Delphi 控件的集合类型的属性赋值方法
Delphi 控件的集合类型的属性赋值方法//从集合中增加元素,方法一DBGridEh1.Options:=DBGridEh1.Options-[dgRowSelect];//从集合中增加元素,方法二Include(DBGridEh1.Options, dgRowSelect);//从集合中删除元素,方法一DBGridEh1.Font.Style:=DBGridEh1.Font.Style+[fsBold];//从集合中删除元素,方法二Exclude(DBGridEh1.Font.St.原创 2021-07-12 11:54:06 · 498 阅读 · 0 评论 -
Delphi DBGridEh根据单元格内容改变表格某一行的背景颜色
写在 GetCellParams 事件中begin if adoQuery.FieldByName('column').AsString<>'' then Background:=clMoneyGreen;end;原创 2021-06-29 15:17:38 · 541 阅读 · 0 评论 -
Delphi DBGridEh根据单元格内容改变某个单元格的背景颜色
Delphi DBGridEh根据单元格内容改变某个单元格的背景颜色写在 DrawColumnCell 事件中with (Sender as TDBGridEh) do begin Canvas.Font.Color := clBlack; if (Column.FieldName = '字段名') then begin if query.fieldByName('字段名').AsString = '你好' then begin原创 2021-06-29 15:06:43 · 1041 阅读 · 0 评论