![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
delphi
delphi 缘
黑贝是条狗
这个作者很懒,什么都没留下…
展开
-
delphi 跨平台数字1234等转中文大写
tts播报时,666,888会播报为6百6十六,八百八十八,转成中文六六六后就正常了,有些客户比较纠结,于是有了这个过程,因要跨平台。原创 2024-07-02 15:27:12 · 110 阅读 · 0 评论 -
delphi 动态数组与静态数组
动态数组则必须指定数组的开始位置,也就是下标[0]静态数组 下标默认0开始 拷贝无需指定下标。2,数组内存copy。原创 2024-05-24 08:41:20 · 122 阅读 · 0 评论 -
delphi fastreport 脚本里修改 font style
群里有人在问:fastreport 脚本里的文字样式 修改。原创 2024-03-25 16:46:52 · 195 阅读 · 0 评论 -
使用InnoSetup实现Setup安装程序界面美化
之前我写过一篇《Unity发布PC版,使用Inno Setup制作安装程序》,建议先看那一下那篇文章。今天,我要讲讲通过InnoSetup如何实现Setup安装程序的界面美化。类型数值范围占字节数格式shortint-128 ~ 1281带符号 8 位inteter2带符号 16 位longint4带符号 32 位byte0 ~ 2551带符号 8 位word0 ~ 655352带符号 16 位例:12345varbegin。转载 2024-01-31 16:32:46 · 2313 阅读 · 0 评论 -
delphi fmxui 做的一些跨平台app
如果你觉得qt qml 写android app 比较麻烦,那可以尝试delphi 12,可以用c++ builder 尝试 android,ios 开发。下面的几个app都是用fmxui 搞的大屏显示,支持win 和android电视。pascal语音显然已经没落,但delphi还在坚挺着,每年都会发布新版本,来吧,一起来用delphi12,用pascal和c++ 开发跨平台应用。没专业美工,自己设计的,如果加上专业设计,ui会更好看。如果您有显示大屏方面的需求可联系博主。主要是做跨平台应用。原创 2024-01-30 08:59:20 · 805 阅读 · 0 评论 -
No mapping for the Unicode character exists in the target multi-byte code page
按成功后的方法倒推,不要用字符串去处理,按byte去处理。如有delphi aes解密,base64解码问题。当出现这个报错时,你有可能想砸键盘。有时候base64解码也会报,这是utf8字符赋值时报的,,请联系我,可付费帮你解决。原创 2023-12-01 17:14:46 · 522 阅读 · 0 评论 -
delphi socket cross开源跨平台通讯库
delphi socket cross是Pascal跨平台的tcp通讯组件。windows下用的iocp。linux下用的epoll。支持http,https。原创 2023-10-10 16:16:50 · 417 阅读 · 0 评论 -
delphi 自带的dbgrid表格控件增加下选框
自带的dbgrid加也很方便,环境是xe10。在表格里用combobox很正常。原创 2023-09-14 10:08:15 · 399 阅读 · 0 评论 -
获取汉字拼音码
原理都一样,从c++翻过来的,其他语言也是一样的。本来有几个函数,但感觉获取的不是很利索。原创 2023-07-24 09:30:08 · 11108 阅读 · 0 评论 -
DirectShow摄像头和虚拟摄像头
DirectShow(简称 DShow) 是一个 Windows 平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。支持使用 WDM 驱动或早期的 VFW 驱动来进行多媒体流的采集。横跨WINXP,WIN7,WIN8,WIN10,适配性好,稳定性高。DirectShow位于应用层中。它使用一种叫Filter Graph的模型来;参与数据处理的各个功能模块叫Filter;各个Filter 在Filter Graph中按一定的顺序连接成一条"流水线"协同工作。转载 2023-07-21 18:10:18 · 1154 阅读 · 0 评论 -
根据传入字符串生成唯一数值
比如 中国 , 美国 生成 自己固定的数值编码,并在下次校验时能去重。有时候我们要生成存数值编码,原创 2023-06-29 09:41:44 · 702 阅读 · 0 评论 -
windows wm_copydata 消息
接收wm_copydata 消息。原创 2023-05-18 14:41:38 · 91 阅读 · 0 评论 -
delphi clientdateset 排序
2、通过 IndexDefs.AddIndexDef 或 AddIndex 建立索引, 然后用 IndexName 指定为当前索引.TClientDataSet 会自动生成两个默认索引: DEFAULT_ORDER、CHANGEINDEX;两种方法是互斥的, 指定一个会自动取消另一个.转载 2023-03-08 11:48:02 · 736 阅读 · 0 评论 -
superobject按表记录生成数组
delphi superobject很好用。原创 2023-02-15 10:07:31 · 83 阅读 · 0 评论 -
(转)Delphi编译器版本对照表及工具链
有条件的指令{$IFDEF},{$IFNDEF},{$IF},{$ELSEIF},{$ELSE},{$ENDIF},并{$IFEND}允许您根据条件符号的状态,编译或抑制代码。{$IF}并{$ELSEIF}允许您基于声明的Delphi标识符进行条件编译。System.CompilerVersion是一个常量,定义为当前Delphi编译器的版本。使用{$DEFINE}伪指令将指定的符号设置为True,并将{$UNDEF}伪指令设置为False。2、Delphi工具链(Delphi编译器)转载 2022-11-15 22:00:00 · 1864 阅读 · 0 评论 -
delphi 字符串转枚举类型
存的枚举字符串,如何转为枚举类型?原创 2022-09-27 18:05:05 · 331 阅读 · 0 评论 -
delphi源码分析
DBServerSQL源码。原创 2022-08-30 11:38:33 · 1857 阅读 · 0 评论 -
一个delphi的截图工具
截图原创 2022-08-28 10:53:21 · 787 阅读 · 0 评论 -
unidac 连mysql连接字符串
xe 连 mysql,要注意 使用 unicode,否则中文乱码。mysql 一般用 utf8 mb4 编码。如本来是sqlserver,要转mysql。用unidac可连接很多数据库。则用unidac比较方便。原创 2022-08-03 14:20:37 · 461 阅读 · 0 评论 -
fastreport动态打印图片数组
有一堆图片,要打印出来,如何用fastreport报表控件实现打印呢?界面上放一个fastreport控件原创 2022-06-12 09:28:59 · 615 阅读 · 0 评论 -
关于在Delphi中链接VC的obj文件(XE2以上版本)
关于在Delphi中链接VC的obj文件(XE2以上版本)个人用的少的东西,笔记之,以作记录实际上老久之前,应该在Delphi中就可以链接使用Obj文件了吧,我用的第一个Delphi版本是D7,我记得他就可以了。至于再往前追述,就不晓得初始来源是哪个版本了。不过对于以前的版本的链接obj只能是OMF这个格式,这个格式是很早很早之前定义的一个文件格式,之后微软都转向了COFF这种格式了,也就是说VC编译出来的OBJ文件都是COFF格式。所以,以前要在Delphi中使用obj就要多走几...转载 2022-04-28 15:58:53 · 534 阅读 · 0 评论 -
delphi 获取显示控件的最大top位置
function GetControlMaxPoint(vControl: TWinControl): TPoint;var i: Integer; p: TPoint;begin Result.Y := 0; Result.x := 0; vControl.Refresh; for i:= 0 to vControl.ControlCount - 1 do begin if vControl.Controls[i].Visible then begin .原创 2022-04-22 11:48:29 · 543 阅读 · 0 评论 -
delphi自定义windows消息
delphi自定义消息比较简单先定义自己的消息类型const WM_MY_MSG = WM_USER + 100;然后在类或窗口里写个消息过程,格式就是下面的格式,过程名和消息类型随便你定义 procedure DoMymessage(var msg: TMessage);message WM_MY_MSG;//实现procedure TForm1.DoMymessage(var msg: TMessage);begin if msg.Msg = WM_MY_MSG原创 2022-04-12 22:16:35 · 1041 阅读 · 0 评论 -
rc文件中增加控件,菜单,子菜单
来自windows核心编程教程一直以来,都是拖控件,或者用delphi的控件动态创建,在看核心编程时,发现例子中根本没dfm窗体文件,而且编译出的exe大小十几k。上代码吧项目同名的 .RC文件 // 语言LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED // Define#define IDD_PROCESSINFO 101#define IDR_PROCESSINFO 102#defin.原创 2022-03-08 13:44:42 · 775 阅读 · 0 评论 -
Windows SDK编程(Delphi版) 菜单资源.rc
转自 不得闲大佬笔记博客园这两天又见到了语言的争论哈!这次是C#。我一般都不参与这种争论的,就算我蛋疼的不得了,我也不参与。因为这实在没啥意义可言,就像很多很多时候,在语言之争上,一次又一次的将Delphi推上风口浪尖,这个说Delphi不行,那个说Delphi气数已近。在我的博客的回复中也有不少这样的言论的。然而实际上呢,到目前为止Delphi的使用者还是相当的多,虽然不如以前那么如日中天,但是至少不会死掉。而我们作为一个程序员,停留在语言的一味的争论上,实在不是什么明智之举。不若,花点时间多了解一下转载 2022-03-07 16:23:26 · 305 阅读 · 0 评论 -
函数中传参结构体的一个问题
昨天在qq群里,有朋友发了一段代码,大概功能就是,一个结构体,里面有个静态数组,然后定义一个公共结构体变量,进行赋值。赋值完,调用一个函数,此函数的参数也是这个结构体,在函数中对传参的结构体进行赋值,发现,将公共结构体传入此函数处理后,值并没有变,挺有意思unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.G原创 2022-01-21 17:59:48 · 460 阅读 · 0 评论 -
delphi 独占模式操作文本文件
function Checklock(sfilepath: string;sflag: string): Boolean;var f: TFileStream; ss: string; i: Integer; ff: string;begin Result := False; if FileExists(sfilepath) then begin f := TFileStream.Create(sfilepath,fmOpenReadWrite or fmS.原创 2022-01-19 22:50:46 · 515 阅读 · 0 评论 -
delphi 日期格式适应系统短日期格式
当用strtodatetime函数时,如果操作系统 格式是 yyyy/mm/dd你的日期为 yyyy-mm-dd, 转换就会报错解决方法 delphi6,7function GetTrueDateTime(stime: string): string ;begin Result := StringReplace(stime,'-',DateSeparator,[rfReplaceAll]) ; Result := StringReplace(Result,'-',Date...原创 2021-09-09 16:36:09 · 528 阅读 · 0 评论 -
windows 多进程文件锁
多进程同时操作一个文件时,为了数据安全,可以加锁,但是会牺牲性能,所以这不是最佳方案var aHandle : THandle; aFileSize : Integer; aFileName : String;procedure TForm1.Button3Click(Sender: TObject);begin aFileName := 'C:\101\Java_new.pdf'; aHandle := CreateFile(PC转载 2021-08-15 10:11:22 · 1405 阅读 · 0 评论 -
windows CreateProcess函数详解
var ExeName:PChar; StartupInfo:TStartupInfo; ProcessInfo:TProcessInformation;begin FillChar(ProcessInfo,sizeof(TProcessInformation),0); FillChar(StartupInfo,Sizeof(TStartupInfo),0); StartupInfo.cb:=Sizeof(TStartupInfo); StartupInfo.dwFlags:=...转载 2021-08-13 14:28:07 · 2234 阅读 · 0 评论 -
delphi,c++获取windows空闲时间
获取windows计算机空闲时间,这样就不需要去hook鼠标和键盘,比较方便delphifunction GetLastInput: integer; //获取闲置时间var linput: TLastInputInfo;begin Result := 0; try linput.cbSize := SizeOf(TLastInputInfo); GetLastInputInfo(linput); Result := ((GetTickCount -..原创 2021-07-21 15:43:11 · 476 阅读 · 0 评论 -
dbgrideh 加入checkbox选择框
1,在adoquery 或者fdquery 加入一个加个字段byte类型type为internalCalc2,原创 2021-06-16 14:43:40 · 1066 阅读 · 0 评论 -
监听顶层窗口的关闭最小化消息
long xy = MAKELONG(1000, 655);delphi:function MakeLong(A, B: Word): Longint;begin Result := A or B shl 16;end;原创 2021-06-08 18:59:35 · 232 阅读 · 0 评论 -
delphi mscom 串口通讯
。pasunit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.OleCtrls, MSCommLib_TLB;type TForm1 = class(TForm) MS原创 2021-05-22 12:18:03 · 506 阅读 · 4 评论 -
clientdataset 与fdmemtable 创建 字段与追加记录
ClientDataSet1.Close(); ClientDataSet1.FieldDefs.Clear(); ClientDataSet1.FieldDefs.Add('ID', ftInteger, 0, true); ClientDataSet1.FieldDefs.Add('Name', ftString, 20, false); ClientDataSet1.FieldDefs.Add('DT', ftDateTime, 0, false); ClientDataSet1...转载 2021-04-27 12:32:45 · 535 阅读 · 0 评论 -
delphi 异或加解密
function Int_encrypt(s:string; lkey : Integer):string;begin //大于5位乘87209会有问题,改成乘以13可以支持8位 //Result := IntToStr(StrToInt(s) xor (lkey * 4356)); if lkey > 9999 then Result := IntToStr(StrToInt(s) xor (lkey * 13)) else Result := IntToStr(.原创 2021-04-25 14:02:31 · 387 阅读 · 0 评论 -
delphi 表格中加checkbox
尝试 在表格中加 checkboxprocedure TfrmSum.dxtSumCustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: String; var AColor: TColor; AFont: .原创 2021-04-20 15:29:36 · 475 阅读 · 0 评论 -
GetLastError错误码
GetLastError()返回值列表:〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无效。〖14〗-存储器不足,无法完成此操作。〖15〗-系统找不到指定的驱动器。〖16〗-无法.转载 2021-04-15 16:04:58 · 3345 阅读 · 0 评论 -
delphi 冒泡排序与 数组拷贝
注意点move 与 copymemory 长度要算准,不然数据不对procedure OrderDemo;const a: array[0..9] of Integer = (8,4,1,6,7,9,2,3,5,0);var i,j,t: Integer; aa: array of Integer; p: Pointer;begin SetLength(aa,Length(a)); //Move(a[0],aa[0],Length(a) * SizeOf(a...原创 2021-04-07 16:11:56 · 229 阅读 · 0 评论 -
delphi 结构体中使用string
今天在群里听大佬们讲课,结构体里 string 最好定长,不然频繁使用会报指针异常如果以前没有定长,且没有频繁的去初始化结构体,可以使用下面的语句,在fillchar之前大佬们经验之谈,又学了一招finalize(rec);fillchar(rec, sizeof(rec), 0);【管理员】qsl只能说明一个问题:你没用dispose来释放对应的结构体,用的是FreeMem【管理员】qsl或者在dispose之前,你memset/fillchar了结构体【管理员..原创 2021-03-24 16:40:13 · 684 阅读 · 0 评论