- 博客(57)
- 资源 (15)
- 收藏
- 关注
原创 Delphi语言怎样对自己定义类进行持久化保存及恢复 (性能远比json/xml高)
Delphi的RTL自身就带有一套非常好的资源持久化保存(IDE设计窗口时,保存为DFM格式及编译到EXE里面的资源文件)及恢复机制(EXE启动时对窗口资源的载入),那么应不是必需再额外用xml/json格式保存程序的參数了。我们大能够将參数集中在一个參数类里面,然后通过这套机制进行保存及恢复。
2023-11-30 00:06:26
478
原创 Delphi消息的广播方式(先RegisterWindowMessage,后SendMessage HWND_BROADCAST,最后改写接收窗口的WndProc)
///////消息广播只能将消息传递到接收消息的主程序中,MDIChild窗体不能接收到广播消息;/////////
2023-09-28 21:54:30
397
原创 使用 ISuperObject 库json的 Delphi7 应用程序示例
使用 ISuperObject 库json的 Delphi7 应用程序示例
2023-06-25 14:21:26
816
原创 Delphi 支持共享内存的概念,可以通过 TSharedMemory 类来实现两个程序之间的共享内存。
请注意,两个程序必须使用相同的共享内存名称来访问同一个共享内存块。在上面的示例中,我们使用了“MySharedMemory”作为共享内存名称。确保在两个程序中都使用相同的名称才能使它们共享相同的内存块。Delphi 支持共享内存的概念,可以通过 TSharedMemory 类来实现两个程序之间的共享内存。
2023-03-16 17:51:22
957
1
原创 Cross函数,通过Variant体自动区分传入的是数组还是数字类型CROSS(A,0,2)
Cross函数,通过Variant体自动区分传入的是数组还是数字类型CROSS(A,0,2)
2023-03-10 15:56:09
137
原创 Delphi取整函数
floor 和 ceil 是 math unit 里的函数,使用前要先 Uses Math。trunc 和 round 是 system unit 里的函数,缺省就可以用。floor 直接往小的取,比如 floor(-123.55)=-124,floor(123.55)=123trunc 直接切下整数,比如 trunc(-123.55)=-123, floor(123.55)=123ceil 直接往大的取,比如 ceil(-123.55)=-123, ceil(123.55)=124round .
2022-03-23 12:23:22
1835
原创 竖表格中,根据策略名称,在cxdbvrtclgrd1中自动增加对应的字段
procedure SettVar(CLName:string); //根据策略名称 让参数显示对应的选项 ////根据策略名称,在cxdbvrtclgrd1中增加对应的字段 var// CLName:string; //策略名称 list,list2:TStringList; ifor,ifor2:integer; Names,FieldNames:string; editproperties:string; //设置表格数据类型 I: Integer; AIte.
2021-12-21 14:26:28
107
原创 CxGrid查询第几行第几列的值
i:=TableViewA.Controller.FocusedRowIndex;// 当前行号// ShowMessage('当前行号'+IntToStr(i2)); V_Nob_Cctable:=TableViewA.DataController.Values[i,9] ; //查询第几行第几列的值// nob:=TableViewA.DataController.Values[行,列] ; //查询第几行第几列的值// ShowMessage('查询第几行第几列的值...
2021-10-15 14:39:58
248
原创 CxGrid 表格列内容居中
CxGrid 表格列内容居中首先每一列 Cxgrid 都不知道要当成什么来出来,所以每一列都有个properties 让你来设置,告诉cxgrid 这列的内容是什么,然后根据你给出的内容 再来决定用什么居中方式;就是说 官方再设计的时候,想的是 居中的方式与你所认为这列的内容格式有关,因为如果是字符串、数值类型,那么可以居中,如果是个进度条呢,那么就没有必要居中;如果是图片呢,等等;不同的格式的居中方式也可能不同,所以官方先让你设置下这列的格式属性。举例:如果内容是普通文本,那么你可以用TextE
2021-09-15 15:52:46
601
原创 CXGrid 根据指定条件进行合并单元格
设置 cxGrid 的某列的 CellMerging 属性可使这一列相同值的单元格合并。1)cxGridDBTableViewColumn1.Options.CellMerging:=true 2)编写代码procedure cxGrid1DBBandedTableView1PAB01CompareRowValuesForCellMerging( Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEdi
2021-09-15 15:32:30
875
原创 Delphi 鼠标模拟点击
//Delphi 鼠标模拟点击1.把句柄窗口设置成顶置窗口2.保存鼠标当前位置3.把鼠标移动到新的位置4.执行右键或左键操作5.鼠标移动到原来位置procedure TForm1.btn2Click(Sender: TObject);var oldPoint,newPoint:TPoint; hw2:HWND; r:TRect; //获取句柄窗口鼠标位置begin GetCursorPos(oldPoint); //保存当前鼠标位置。 hw2:=StrToInt(edt
2021-09-10 12:13:51
1985
原创 Delphi CxGrid 用法详解说明
1. 去掉cxgrid中抬头的box,在tableview1的ptionsview的groupbybox=false;1.1类似PageControl显示 解决:增加一个Level,将cxGrid1->RootLevelOptions->DetailTabsPosition设为dtpTop,然后相应的设置cxGrid1Level1,和cxGrid1Level2的Caption值 2. 在GRID footer 中加入sum(列),tableview1的optionsview的fo
2021-08-03 17:43:24
2592
1
原创 delphi char数组、string和Pchar的相互转换
delphi char数组、string和Pchar的相互转换因为要调用windows的api或者给vc++写接口,很多地方都要用到pchar,现在将char数组、string和pchar之间的相互转换都列出来,都是网上找的资料,我总结一下,先直接上代码,再讲原理。1.string转换成pchar 可以使用pchar进行强制类型转换,也可以使用StrPCopy函数复制代码var s:string; p,p1:PChar;begin s:='Hello Delphi';
2021-07-21 01:26:16
2956
原创 2021-07-20
RzTrayIcon1.Icons := ImageList1; //RzTrayIcon1 使用的图标列表 RzTrayIcon1.Interval := 1500; //动画显示图标的时间间隔; RzTrayIcon1.Animate := True;//图标开始动了咯 {关键就是图标 ImageList ,里面要放多个图标,这样图标就会转啊转的}TTrayIcon 的主要属性:TrayIcon.Icon指定托盘图标, 有几种用法:1、设计时选择; 2、把一个 T...
2021-07-20 16:01:28
185
原创 BMDThread通过var Data: Pointer传递参数
BMDThread通过var Data: Pointer传递参数procedure TForm1.bmdthrd1Start(Sender: TObject; Thread: TBMDExecuteThread; var Data: Pointer); var s1:string;begin s1:='abcd'; Data:=Pointer(S1);end;procedure TForm1.bmdthrd1Execute(Sender: TObject; Thread
2021-07-20 15:25:53
240
原创 delphi OnException捕捉全局异常错误的方法
软件总有想不到的异常发生,比如网络访问不了。。。如果系统弹出错误窗体,软件有可能就会终止运行,特别是那些不是人工守着的软件,这个delphi源代码就让所有的窗体显示在软件本身的文本框中,而不能让它弹出来,软件不会中断将继续运行!private { Private declarations } public procedure GlobalExceptionHandler(Sender: TObject; E: Exception); { Public declarations }
2021-07-20 00:02:10
1217
原创 DELPHI动态创建窗体
//第一种方式procedure TForm1.btn1Click(Sender: TObject);beginWith TForm2.Create(Application) doTry ShowModal;finally free;end;end; //第二种方式procedure TForm1.btn2Click(Sender: TObject);begin if not assigned(Form2) then begin Form2:=TForm2.
2021-07-17 23:19:50
913
原创 AlphaControls窗口有阴影
procedure TFCjbcUi.FormCreate(Sender: TObject);begin//<<AlphaControls窗口有阴影sknmngr1.ExtendedBorders:=true;sknprvdr1.AllowExtBorders:=true;sknprvdr1.UWPMode:=True;//>>AlphaControls窗口有阴影end;
2021-07-17 15:02:23
124
原创 delphi MessageBox 退出
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);begin if MessageBox(Form1.Handle,' ------亲.真的需要退出吗?------','退出程序',MB_OkCancel + MB_DEFBUTTON2 + MB_ICONASTERISK )= idOk then begin CanClose := True; end ELSE begin CanClo
2021-07-17 01:38:52
283
原创 Delphi 复制粘贴
//需要用到Clipbrd,单元 //剪贴板的读写和清除功能 Clipboard.SetTextBuf(PChar(edt5.Text)); //复制到剪切板 edt1.Text:=(Clipboard.AsText); //粘贴 //===========================================procedure TForm1.Button1Click(Sender: TObject);beginMemo1.SelectAll;Memo1.CopyToClip.
2021-07-17 01:19:59
885
原创 Delphi 打开文件对话框 OpenDialog使用方法
var OpenDlg: TOpenDialog; strFileName: string;begin OpenDlg := TOpenDialog.Create(nil); try OpenDlg.Filter := '协议文件(*.EXE)|*.EXE|全部文件(*.*)|*.*'; OpenDlg.DefaultExt := '*.EXE'; if OpenDlg.Execute then begin strFileName := Trim
2021-07-13 12:50:20
2843
原创 delphi窗口跟随
procedure TForm1.FormPaint(Sender: TObject);begin fSQLMon.Show; fSQLMon.SetBounds(Left + Width + 10, Top, 300, Height);end;
2021-06-28 12:17:59
241
原创 Delphi单元文件Unit详解
Delphi单元文件Unit详解`有时随着项目改变开发语言也要换,今天用C#,明天可能就用DELPHI,在此把DELPHI文件结构备忘一下unit Unit1; interface {接口部分开始} uses {引用单元列表,这是可选的,如果包含必须紧跟interface关键字} {接口部分声明常量/类型/变量/过程和函数,这些声明对引用单元就像自己的声明一样} {在接口部分声明的过程和函数,就像使用了forward关键字}
2021-06-22 18:36:29
942
原创 DELPHI idhttp
//试下用idhttpuses IdHTTP;function GetWebPage(const Url :string; IsUtf8 :Boolean = False):string;varidp :TIdHTTP;beginResult := '';idp := TIdHTTP.Create(Application);tryidp.HandleRedirects := True;idp.Request.UserAgent := 'Mozilla/5.0';Result := id
2021-06-22 11:30:58
165
原创 delphi DBNaVigator组件的使用方法
DBNavigator组件用于在数据集进行记录导航,当用户单击DBNaVigator组件的某个按钮时,可实现记录指针的前移、后移,插入‘删除、修改当前记录等操作,而无须编写任何程序代码。 DBNavigator组件按钮功能First按钮 将指针移到数据表的第一条记录。Previous按钮 将指针前移一条记录oNext按钮 将指针后移一条记录。Last按钮 将指针移到数据表的最后一条记录。Insert按钮 在当前记录前插入一条新记录,并将数据集组件置于插人状态。Dele
2021-06-09 17:30:38
1347
原创 Delphi数据库技术中Disablecontrols和Enablecontrols的功能
一般来说,用来扫描整个数据库表并修改每个记录的某一个字段的程序如下所示:with Table DobeginDisableControls;{在修改记录的过程中,使其它部件无效}First; {将记录指针指向第一条记录}while not EOF dobegin<读取记录的一个字段值到一个变量中><做适当的修改>Edit; {将TTable部件置成编辑状态}<将修改后的字段值写回到其对应的字段>post; {将修改后的记录写回数据库}next; {
2021-06-02 11:55:07
468
转载 delphi web script II(DWSII)控件源码及使用文档
delphi web script II(DWSII)控件源码及使用文档来源于网址http://sourceforge.net/projects/dws/files/,适合Delphi5,Delph6,Delphi7环境下编译安装
2021-04-30 17:23:58
405
1
原创 Delphi Random() 随机函数
Delphi Random() 随机函数函数原型:function Random ( Range: Integer) :integer;参数:Range:整数,返回值:整数,其范围为:0 <= Random(Range) < Range (指定Range)0 <= Random< 1 (不带参数Range)Random()生成随机数。(运行几次会发现取得的随机数一样,因为系统的随机种子没有改变,Ramdomize; 用来改变随机种子)。例:begin Ra
2020-12-11 17:28:49
1167
MCJSON-my for delphi 新增了 AsJSON-NoFirstKey-my函数
2024-09-12
delphi 自定义结构数据通过内存流方式读取与保存到本地 TMemoryStream
2023-11-30
最精简使用MORMOT
2022-05-06
delphi 7 SQLMemTable_Thread多线程读写同一个内存表
2022-04-23
AlphaControls_v16.21_Stable_DCU_for_DX10Rio.rar
2021-12-24
superobject1.5.rar
2021-06-30
内存表,,json,Tstringlset查询速度比较.rar
2021-06-25
Delphi 线程控件BMDThread2.1(D5-XE10,XE10.3).rar
2020-07-08
delphi EhLib 9.5.012 Full Source 专业版 .rar
2020-06-17
可用AlphaControls v14.04 Beta FOR Delphi7 or 10.23.rar
2019-11-26
StyleControls_v4.50.zip
2019-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人