- 博客(44)
- 收藏
- 关注
原创 Delphi Canvas绘图时发生闪烁的解决办法
与Invalidate的区别:Canvas.Refresh 会强制立即重绘,而 Invalidate 方法会标记控件为“需要重绘”,但不会立即执行重绘操作。总的来说,Canvas.Refresh 是一个可以在特定情况下使用的工具,但要谨慎使用以避免出现不必要的闪烁问题。手动触发重绘:通常情况下,控件会在需要重绘时自动调用 OnPaint 事件,但是如果你希望在特定时刻手动触发重绘,可以使用 Canvas.Refresh。组件在绘图时可能会出现闪烁的问题,这通常是由于重绘频率过高或者未使用双缓冲技术导致的。
2023-10-21 16:40:48 1026
原创 Delphi cxGrid的FocusedRecordChanged事件
因为在GridMode=False的情况下,只要表格的数据源发生的变动(例如ADOQuery.Post),cxGrid为了刷新表格数据,会重新遍历整个数据源,导致多次触发了AfterScroll事件,很影响效率。事件可以平替ADOQuery的。Delphi cxGrid的。
2023-07-26 09:21:25 301
原创 cxGrid的GridMode属性相关知识
因为 GridMode 显示模式只加载当前可见区域的数据和一定数量的缓冲行,所以数据源的 Post 事件只会影响到当前可见的数据行,其他数据行不会立即更新。GridMode 是 cxGrid 中的一种轻量级显示模式,它通过减少资源使用来提高性能,并且支持按需加载数据,只有在需要显示的数据进入可见区域时才会加载,而不是一次性加载所有数据。高性能显示: GridMode 是 cxGrid 中的一种轻量级显示模式,使用更少的资源,因此在处理大量数据时,可以更高效地显示数据,减少界面卡顿和响应延迟。
2023-07-25 17:32:39 289
转载 解决SQL Server 2022提示找不到请求的 .Net Framework Data Provider
SSMS][Visual Studio] 解決 - Unable to find the requested .Net Framework Data Provider. It may not be installed。原文出自:http://www.dotblogs.com.tw/yc421206/archive/2014/06/11/145502.aspx。打开Machine.config ,搜索DbProviderFactories,删除多余节点,保存,重启SSMSh恢复正常。
2023-05-20 11:06:07 1969
原创 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 945
转载 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 6246
原创 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 880
原创 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 784
原创 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 1537
转载 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 543
原创 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 4624
原创 Delphi cxGrid 获取表中的各种数据
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号cxGrid1DBTableView1.Controller.FocusedRow 当前行cxGrid1DBTableView1.Controller.FocusedColumn 当前列cxGrid1DBTableView1.Controller.FocusedColumnIndex 当前列号cxGrid1DBTableV
2021-09-04 17:30:13 1045
原创 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 760
原创 Delphi 屏幕坐标转换窗口坐标
var MouseXY: TPoint;begin GetCursorPos(MouseXY); MouseXY := ScreenToClient(MouseXY); Showmessage(IntToStr(MouseXY.X) + ',' + IntToStr(MouseXY.Y))end;
2021-09-03 11:36:13 537
原创 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 559
原创 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 762
原创 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 905
原创 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 703
原创 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 1156
原创 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 1041
原创 Delphi cxImage控件隐藏选中时的边框
//鼠标点击时是否显示边框cximage1.Properties.ShowFocusRect := False;
2021-09-03 11:10:52 233
原创 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 466
原创 Delphi 替换字符串函数StringReplace
//替换字符串的函数 参数 str:原串; s: 将被替换掉的字符; 替换成的newstr; //[rfReplaceAll]全部替换(替换类型)StringReplace(str,oldstr,newstr,[rfReplaceAll])
2021-07-17 09:53:52 2478
原创 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 708
原创 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 739
转载 Delphi 数据类型列表
Delphi 数据类型列表 分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 2147483647 4 有符号32位 Cardinal 0 .. 4294967295 4
2021-07-12 14:06:40 220
原创 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 348 1
转载 Delphi 指针应用
Delphi 的指针分为 “类型指针” 和 “无类型指针” 两类.Delphi 中的类型, 常用的也得有几百个, 我们可以给每种类型定义相应的类型指针.其实 Delphi 已经为很多类型预定义了指针, 譬如数据类型:Integer 有对应的 PInteger;Char 有对应的 PChar;string 有对应的 PString;再譬如:TPoint 有对应的 PPoint;TColor 有对应的 PColor 等等.另外, 指针也可以有指针, 譬如: PChar 是字符指针, PPCha
2021-07-12 13:53:38 307
吉信通(融合通信)短信开发包
2022-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人