- 博客(83)
- 资源 (11)
- 问答 (1)
- 收藏
- 关注
原创 Delphi开发Android用虚拟摇杆VirtualJoystic
Delphi11新鲜出炉后一直没有去试用,最近几天有空下了个Lite版来玩,发现编译速度快了很多,编译后的尺寸也变小了一些,前些时候在github上看到一个Delphi无引擎版的小游戏,决定调试一下,目前Windows下运行正常,像这个样子:安卓下暂时没有运行起来,界面是这个样子:使用的MouseDown和MouseUp事件驱动,也就是说按左、右的时候,没法跳,所以想着改造一下,整个虚拟摇杆来操控,于是有了这一篇博文(顺便吐槽一下Delphi11有时编辑器会完全消失,欢迎页面也一起消失了).
2021-10-20 23:15:02
2443
原创 Delphi中谨慎使用QuotedStr、QuotedString、DequotedString相关的函数
//以下测试代码var s, ss: string;begin //1.添加定界符(内容中含定界符的要转义) ss := QuotedStr(s);//单引号 ss := s.QuotedString('''');//单引号 //2.添加指定的定界符(内容中含定界符的要转义) ss :=AnsiQuotedStr(s, '"');//双引号 ss :=s.QuotedString('"');//双引号 //3.去掉定界符(内容中含连续两个定界符的要反转义) ...
2021-09-02 17:33:21
811
原创 Delphi10.2使用IdFTP上传中文文件名失败问题
失败报错内容如下:Exception class EIdReplyRFCError with message'No mapping for the Unicode character exists in the target multi-byte code page.'网上说法,直接加在Connect;成功后加这一句就可以了。IdFTP1.IOHandler.DefStringEncoding := IndyTextEncoding(TEncoding.UTF8);实际上可能还是不行,因
2021-07-15 11:54:18
917
原创 FireMonkey动画进度条实现
1、首先拖一个ProgressBar控件到窗体上,右键“EditDefault Style...”2、将原来的hindicator控件
2021-06-10 19:38:33
351
原创 关于Delphi下PAnsiChar的使用
与C语言对应的类型为char *,意为单字节字符串指针,在Delphi下的string类型是带引用计数的,有专门的内存管理sharemm单元,在dll之间引用该单元后可以导出使用string参数的导出函数,供delphi编译的exe使用(要注意delphi版本差异)反之,delphi实现的功能要供其它语言调用时,字符串只能使用PAnsiChar或PChar,下面仅以PAnsiChar举例(PChar类同)一、作用域问题返回值或可变参数为PAnsiChar时,必须申请内存(通常是被调用方申请,调用
2021-02-23 11:38:03
3325
1
原创 mongoose连接阿里云Mongo Serverless
首先说明云Mongo是很贵的,因为节点多,个人或中小企业在数据量小且可靠性要求不高时可以考虑Mongo Serverless,非常便宜啊1核1G三年不到1000块,测试版更是可以按天算,1块多钱而已本人今天做了个测试看创建时间和到期时间,共1天,价格1.82元接下来是Mongoose的连接URI设置,图上已经给出了,直接连接到admin库,但通常我们要连到息的库,比如叫“xx公司_yy业务”,这时要把/admin替换成/自己的库名?authSource=admin即可...
2021-02-09 14:14:11
575
原创 Delphi XE以后TStreamWriter的妙用
TStreamWriter = class(TTextWriter)public// 有4个构造函数(可以传文件流、内存流,也可是文件名)constructor Create(Stream: TStream); overload; constructor Create(Stream: TStream; Encoding: TEncoding; BufferSize: Integer = 4096); overload; constructor Create(const Filenam.
2021-01-12 16:58:05
599
原创 FMX Windows下无边框窗口处理
1、窗口的Transparency不能为True2、窗口BorderIcons设为[]3、窗口BorderStyle设为Single4、重定义WindowBorderStyle样式,把下面这段粘到StyleBook里object TLayout StyleName = 'windowborderstyle' Align = Center Size.Width = 800.000000000000000000 Size.Height = 600.000000000000000
2020-12-24 18:39:52
690
2
原创 FMX TreeView部分显示CheckBox(父节点显示,子节点不显示)
// 显示TreeView.ShowCheckBoxes := True;// 创建节点时给Node.OnApplyStyleLookup事件赋值function TFrmMain.NewNode(ParentNode: TFmxObject; Text: string; ImgIdx: Integer): TTreeViewItem;begin Result := TTreeViewItem.Create(Self); Result.Parent := ParentNode; ...
2020-12-21 17:10:09
458
原创 FireDAC处理delphi下非法日期时间
在Delphi下最小日期时间其实是个Double类型,为0时表示:1899-12-30,小于这个时间时为负数delphi下日期分为year、month、day三个段,必须按照month(1-12),day(1-28\29\30\31,平年二月28天,闰年二月29天,大月31天,小月30天)如果来一个1093-00-17,在delphi下是不合法的时间,但是MySQL下是合法的,mysql(5.5)所支持的日期时间类型有:DATETIME、TIMESTAMP、DATE、TIME、YEAR。日期时.
2020-12-04 11:48:46
267
原创 FireDAC分页
研究了MySQL可以使用limit offset,count的方式分页--示例:从第100条开始取10条记录select * form tablename limit 100, 10Oracle可以用rownum + minus关键字--示例:rownum只能使用<、<=\<>操作符--rownum参考:https://blog.csdn.net/qq_39196949/article/details/84379874--minus参考:https://blog
2020-12-04 11:06:54
406
原创 MongoDB工具Robo 3T连接副本集
1、Direct Connection直连模式很简单,填上Address:Port,和Authentication页的Database\UserName\Password即可,例如:2、Replica Set复制集模式,网上没打到配置的相关介绍,看我的SetName输入错误,Test会显示下面动作正在尝试连接,若成功就验证用户密码连接失败(所以说SetName...
2020-03-30 16:58:39
4303
原创 构建带安全验证的Mongo复制集(Windows环境下NT服务方式)
首先到Mongo官网下载Windows版ZIP包https://www.mongodb.com/download-center/community,释放到D:\MongoDB\bin,可能需要安装VC2015运行环境,嫌麻烦可以装MSI版本。1、在MongoDB下新建data目录,以及其下的目录结构D:\MongoDB|-bin|-data |-cfg |-db |-...
2020-03-18 12:05:53
207
原创 关于用其它用户运行程序(同时以管理员权限运行)
有这个一个需求:1、不允许当前用户访问某个文件夹2、但是程序可以访问(新增、编辑、删除等操作)结论是这样:创建一个管理员用户对指定文件夹有操作权限,同时拒绝其它用户的访问请求步骤一:net user用户名密码 /addnet localgroup administrators 用户名 /add步骤二:将之前的用户授权允许访问指定文件夹,其他用户拒绝(需要用到icac...
2019-09-04 13:54:44
1182
1
原创 Firemonkey使用Android原生控件一些注意事项
Firemonkey使用MediaPlayer时是没有事件的,需要自己处理,一般在Windows下就算了,大把的播放器可以用,但在Android下比较麻烦,本人尝试用FFMpeg,但编译的so库只支持v7a架构,低级设备支持不好,而且没有编译硬件解码,所以播放时漏帧严重,MediaPlayer也不是个好东西,10.3以下的顶层遮盖问题,10.3以上取不到时间、状态(始终是Stop),所以要解决好几...
2019-01-19 18:56:49
1493
原创 Delphi图像Hash算法,关于图像相似度问题
图像Hash算法,有PHash,DHash,AHash,以下记录平均值哈希AHash的Delphi算法代码var bmp: TBitmap = nil; //gb: TBitmap;//算法原理:将图像缩放成8x8的灰度图,统计出像素平均值//再遍历每个像素,值大于平均值记为二进制的1,否则记为0,最终得到一个64位的整数function GetAHash(SrcBmp: TB...
2018-12-14 11:37:31
1405
原创 通过将数据放入EXE的资源信息中的方式制作自已的安装工具
免费的打包工具太千篇一律了,如今是个软件都会有自己的安装界面,别的不说,自行定制UI更好看那是绝对的,至于功能嘛,根本不需要专业安装工具那么多,通常有以下几页就可以了:语言选择、自定义安装位置、文件复制、后续处理、快捷方式等。 关键点:读取资源,然后使用;如果是动态添加的资源则应该在使用前检查。一、资源导入:在Delphi XE版本中有个工具,可以直接将文件当做资源导入到程序中,编译时...
2018-11-02 16:02:18
462
原创 磁盘分区大小显示(以对数的形式)
var pts: array [0..8] of single= (111, 399, 90, 300, 5, 5, 1, 2, 18);//单位:Mprocedure TForm1.Button1Click(Sender: TObject);var dw: Integer; I: Integer; px, t: Single;begin //以对数的方式显示磁盘分区...
2018-09-20 15:00:10
222
原创 关于SQL中IN语句中项精简描述及组装方法
举例:select * from files where kid in (1,2,3,4,5,6,10,12,14)优化:select * from files where kid >=1 and kid <=6 or kid in (10,12,14)第一步:将1,2,3,4,5,6,10,12,14优化为1-6,10,12,14思路:将字符串分割为整数数组并排序,然后从头遍历,如果...
2018-07-13 18:38:36
1247
原创 获取本地网址名称的方法
var adptName: AnsiString;begin reg := TRegistry.Create(KEY_WRITE OR KEY_READ or KEY_WOW64_64KEY); try reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('SOFTWARE\Microsoft\Windows NT\Cu...
2018-06-28 14:55:52
1014
原创 Firemonkey下使用StyleBook的一些经验
1、编辑style后关闭style designer再次打开发现之前的设置无效了,比如给一个StyleObject.SourceLink指定图像区域,失效后区域又变成整张图片了2、窗体上本来有StyleBook,然后用StyleBook加载了style文件,结果可能某些样式会不生效;可以将窗体上的StyleBook删除再试3、复制并粘贴一个style,新粘贴的style在编辑后看不到预览了,关闭s...
2018-06-20 13:17:03
1872
原创 FFMpeg57使用新API转码导致帧率超高的问题解决方法
旧的方法是使用:int ret = avcodec_copy_context(out_stream->codec, in_stream->codec);并注意设置这个out_stream->codec->time_base,num为1,den为帧率即可。新的方法则使用:int ret = avcodec_parameters_from_context(out_stream-...
2018-05-03 14:46:23
1167
转载 Delphi关键字和保留字
转载自:https://www.cnblogs.com/PocketZ/archive/2013/03/26/2983576.html分类整理 Delphi 中的“关键字”和“保留字”,方便查询“关键字”和“保留字”不做区分,一共 107 个。{-----------------------------------------------------------------
2018-05-03 14:26:59
946
原创 以鼠标为中心缩放图片以及拖动(采用区域抠图拉伸的方式)
应用场景:视频播放窗口缩放,最小保持100%帧图像:视频中的一帧图像视口:用于显示视频的区域可视区域:帧图像中某一块区域,拉伸后贴图到视口说明:当鼠标在视口中任意位置滚动滚轮,向上放大时可视区域变小,向下缩小时可视区域变大,将可视区域内的图像拉伸贴图到视口,即实现缩放效果。要达到以鼠标为中心缩放的目的,必须对可视区域进行相应计算,以下是伪代码说明:Bmp := TBitmap.Create;//帧...
2018-04-11 15:36:40
3490
原创 用Delphi+DirectShow实现的视频播放器,可用于游戏片头播放
unit Mpeg;interfaceuses Windows, Classes, Messages, ActiveX, Controls, DShow; type TMpegPlayer = class private FWindow: THandle; FErrorMsg: string; FGraphBuilder: IGraphBuild
2017-11-03 16:33:15
2072
2
原创 ffmpeg关于h264编码提示h264_mp4toannexb的问题
MP4的视频H264封装有2种格式:h264和avc1AVC1 描述:H.264 bitstream without start codes.一般通过ffmpeg转码生成的视频,是不带起始码0x00000001的。H264 描述:H.264 bitstream with start codes.一般对于一下HDVD等电影的压制格式,是带有起始码0x00000001的。如
2017-10-19 14:05:52
7924
1
原创 Delphi实现DLL导出的Interface如何在其实语言中使用
首先说明在Delphi中实现一段小功能是非常快捷的,具体应用场景我就不编了,抽象点吧:type IOutIntf = interface function A(name: PAnsiChar): Integer; stdcall; procedure B; stdcall; end;在DLL中导出函数procedure GetImpl(out imp
2017-08-04 19:27:35
941
翻译 Delphi之18位身份证号码验证
18位公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。组成:六位地址,八位生日,三位顺序码, 一位校验码。校验方法:(1)十七位数字本体码加权求和公式S = Sum(Ai * Wi), i = 0, … , 16 ,先对前17位数字的权求和Ai:表示第i位置上的身份证号码数字值Wi:表示第i位置上的加权因子Wi: 7 9 10 5 8
2017-08-01 10:53:18
1652
原创 Python解析文件流的数据结构
import struct db_file = open(video_file + ".dat", "rb") db_file.read(20) #文件头 chunk = db_file.read(30) datarow = struct.unpack("=IQffffH", chunk)#通过结构体解析数据流具体struct用法说明
2017-03-31 11:08:12
1803
原创 关于Ansi版Delphi剪切板中文乱码的问题
Clipboard处理中文时乱码的方法,将处理格式的CF_TEXT改为CF_UNICODETEXT,即用UnicodeString方式替代AnsiString方式
2017-03-10 10:25:54
1724
2
原创 传奇3的WIL文件格式
图像格式有两个文件,WIX索引文件,WIL数据文件1、WIX这里有一个条件判断,即第26字节开始取一个Word是否是0xB13A,这是个版本判断,如果不是则文件重定位到第24字节处,否则文件流读了这个Word后位置应该在第28字节处然后就是依次取图像在数据文件中的位置索引,4个字节一取,DWORD类型,直到WIX文件结束。网上有现成的代码,原版的问题是图像缺行或无法退出,以下是关键过程的修改结果
2017-03-03 11:17:26
3725
1
翻译 DirectX 90 3D SetRenderState 设置渲染状态
改变D3D中的渲染状态1、设置着色模式:SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT); //设置平面着色模式SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD); //设置格劳德着色模式2、设置多边形填充模式:SetRenderState(D3DRS_FILLM
2017-01-20 10:49:42
568
转载 D3DPOOL详解
翻译自:http://msdn.microsoft.com/zh-cn/library/windows/desktop/bb172584(v=vs.85).aspx转载自:http://blog.csdn.net/blues1021/article/details/41408351,感谢原译者,怕你们不经意删掉了,只好先抄过来了。定义资源缓存的存储位置。 VID
2017-01-19 14:04:19
410
原创 2D游戏中使用GDI+处理文字
DirectX中处理文字方法有那么几种,1、DX自带的ID3DXFont,据说底层也是GDI;2、什么顶点生成之类的,少量文字还行,多了管理不过来还有少量文字时可以用图片来排列,第个图片中一个文字,速度很快,毕竟是纹理渲染,但字太多了就麻烦,字体、颜色什么不能变,什么对齐要自己计算,麻烦。最方便的,个人觉得用GDI+,能用GDI,当然就能用GDI+,GDI处理半透明麻烦啊,效率是比
2017-01-16 16:31:15
617
原创 delphi 三目运算符
Delphi当然没有三目运算符,至于Math.pas和StrUtils.pas中的IfThen也不算好用,下面介绍一个简单的写法例如:int a = true ? 35 : 8;改成Delphi:a := Ord(True) * (35 - 8) + 8;
2017-01-03 18:22:47
4417
原创 Delphi 2006语言新特性
type //非引用,可直接赋值,Record不可继承,Object可继承 TRecord = record{object} const //定义了常量后影响Ctrl+Shift+C自动完成 TA: Integer = 0; Length: Integer = 3; private FA: Integer; FB: Integer;
2016-12-30 11:57:24
317
PythonTank
2015-10-26
SqlSpatialTools
2014-04-12
WorkSpace Sample
2010-04-18
ffmpeg解码结果有虚影,有没有人遇到过啊
2017-11-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人