tanqth
码龄20年
  • 570,979
    被访问
  • 92
    原创
  • 5,922
    排名
  • 224
    粉丝
  • 14
    铁粉
关注
提问 私信

个人简介:十多年前,开始了程序开发的学习,几年前,开始参与项目的管理。

  • 加入CSDN时间: 2002-03-12
博客简介:

tanqth的专栏

查看详细资料
  • 4
    领奖
    总分 513 当月 14
个人成就
  • 获得150次点赞
  • 内容获得62次评论
  • 获得519次收藏
创作历程
  • 6篇
    2022年
  • 20篇
    2021年
  • 49篇
    2020年
  • 1篇
    2019年
  • 2篇
    2018年
  • 9篇
    2017年
  • 5篇
    2016年
成就勋章
TA的专栏
  • UniGui
    8篇
  • 安卓
    27篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Delphi Modbus RTU CRC16校验码的生成方式

在很多的串口通讯中,会使用到CRC16校验。在TIdHashCRC16中,给我们提供了一种CRC校验码的生成方式:TIdHashCRC16继承于TIdHash16这个类,其中覆盖实现了两个方法:然而,当我们直接使用TIdHashCRC16类生成校验码的时候,经常是与设备的校验不匹配的,其原因在于VRunningHash初始化时为0,而我们需要的初始化值应该为0xFFFF。所以,我们需要对这个类进行改造,其中最简单的办法就是找到IdHashCRC.pas文件,把VRunningHash:=0;这个修改为
原创
发布博客 2022.06.28 ·
15 阅读 ·
0 点赞 ·
0 评论

delphi取13位的Unix时间戳

以前取UNIX的时间戳基本都是引用 DateUtils后,使用的DateTimeToUnix,但是这个函数取出来的时间戳只有10位的,没有到毫秒,找了一会,不记得应该怎么取毫秒的时间戳了。先看了一下系统DateTimeToUnix的代码:function DateTimeToUnix(const AValue: TDateTime; AInputIsUTC: Boolean): Int64;var LDate: TDateTime; begin if AInputIsUTC then
原创
发布博客 2022.05.31 ·
74 阅读 ·
0 点赞 ·
0 评论

UniChart 的简单应用

Delphi中使用UniGui 中UniChart控件完成图表制作。
原创
发布博客 2022.04.30 ·
709 阅读 ·
0 点赞 ·
0 评论

JS解析JSON并生成下拉框

Gobj.options.length=0; for(var i in vJsonObj){//遍历packJson 数组时,i为索引 Gobj.add( new Option( vJsonObj[i].groupName , vJsonObj[i].groupID )); } ...
原创
发布博客 2022.03.31 ·
63 阅读 ·
0 点赞 ·
2 评论

简单说说Delphi 输入对话框 InputQuery

在 FMX.Dialogs里,输入对话框有InputBox或InputQuery,InputBox里其实也是调用InputQuery实现的功能。InputBox调用InputQuery的处理:实现一个简单的多内容的输入对话框:var IniFile: TIniFile; varstr: array of string; varstr[0] := '192.168.2.101'; varstr[1] := '211'; /...
原创
发布博客 2022.02.17 ·
392 阅读 ·
1 点赞 ·
1 评论

Delphi 安卓浏览器自定义UserAgent

Delphi以前做WebBrowser时(VCL方式)自定义浏览器UserAgent相对来说还是很方便的。在现在的跨平台开发中(FMX)想要自定义UserAgent就不行了,对应的WebBrowser控件已不支持修改默认UserAgent。然而,我们很多时候还是需要使用到自定义的UserAgent,这里就介绍一下怎么实现安卓下的WebBrowser修改UserAgent。方法一、简单直接,虽然WebBrowser控件没有直接给出修改或设置UserAgent的方法,但并不是说安卓下的浏览器不能修改Us
原创
发布博客 2022.01.29 ·
4161 阅读 ·
0 点赞 ·
0 评论

特殊时期 一行代码网站变灰

一行代码让网站变灰
原创
发布博客 2021.12.13 ·
1252 阅读 ·
1 点赞 ·
0 评论

delphi开发安卓中更改图标与APP名称

偶尔有朋友问到,使用Delphi开发安卓系统时,APP的图标与显示名称应该怎样更改。这里就做一个说明。1、首先需要准备好自己的图标文件,可先看看系统默认的图标文件(通常在C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\Artwork\Android,这里以10.3版本为例,其他版本位置差不多的哈),然后根据系统对应的图片大小准备相同数量的图标文件。2、使用Options菜单项:3、进入后,选择:Icons,右边可以选择需要设置的目标对像.
原创
发布博客 2021.11.29 ·
2963 阅读 ·
0 点赞 ·
0 评论

delphi开发安卓蓝牙的问题

这是一个困扰了我一天的问题,出现的情况是:之前在D10.3下做蓝牙应用的程序,在低版本的安卓下是可以正常使用的。但D10.3不能支持高版本的安卓系统,所以就更换了D11进行测试。在使用D11对原D10.3的代码进行调整后,编译的APP可以正常在高低版本的安卓下安装使用,可出现一个问题是,安卓11下不能正确搜索到蓝牙设备(低版本的安卓下一切正常)。最后发现是动态授权的问题,原因如下:早期的安卓版本使用蓝牙时,不需要动态授权,后来需要动态授权时必须增加对“定位”的授权才能使用蓝牙,所以我在10.3的
原创
发布博客 2021.11.20 ·
2513 阅读 ·
0 点赞 ·
0 评论

H5 中video 自己定义显示播放(总)时间

因为项目需要,在WEB中使用video播放音频内容,要求不显示系统默认的播放界面,所以需要自己实现对音频的播放。简单记录一下使用JS对播放内容的时间显示。因为通过video.currentTime取到的时间是以秒为单位的,而我们习惯是时/分/秒来表示,所以需要对时间进行一次转换后再显示。具体JS代码如下: video.ontimeupdate = function () { var percent = video.currentTime / video.duratio..
原创
发布博客 2021.10.31 ·
1795 阅读 ·
0 点赞 ·
0 评论

Delphi 11.0 Alexandria 来了

这文章晚了一天,这段时间事较多。看了一下Delphi 11.0 Alexandria的改进,还是蛮多的。也正因为太多,暂时就不例出来了,有兴趣的朋友可以自己浏览一下:点击==>官网对11.0的更新说明https://docwiki.embarcadero.com/RADStudio/Alexandria/en/What%27s_New 重点概括:更新内容涉及到IDE、VCL控件及FMX控件(这两方面修改较多),还有其他一些安全与稳定性方面的内容。下载地址:这篇文章收集了较多版本的下载地址.
原创
发布博客 2021.09.11 ·
2230 阅读 ·
2 点赞 ·
0 评论

微信公众号开发的坑

今天发现的一个坑,大致情况是这样的。微信开发,都需要获取Access token,而这个Access token根据腾讯的文档,说的是7200秒过期(也就是2小时的时间)。上图是文档说明。文档链接:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html这个是文档结出的样例,文档说的“目前access_token的有效期通过返回的expire_in来传达,目前是720.
原创
发布博客 2021.09.08 ·
1476 阅读 ·
0 点赞 ·
0 评论

Delphi 微信支付接口AEAD_AES_256_GCM解密

做微信的支付接口,现在必须要使用到AEAD_AES_256_GCM加解密。在微信的文档中提供了其他开发语言的示例代码,但因为某些大家都知道的原因,没有delphi的示例。而在网上去找一圈,你可能会更加的蒙圈,一是几乎只有其他语言的文章,二是delphi有提到过的要么太复杂要么没法使用。今天这里就来详细讲一讲Delphi(我使用的版本的D10.3)处理微信AEAD_AES_256_GCM解密,我们实际需要的代码并不多,很多主要的代码delphi已给我们准备好了。下面就是最终代码:function
原创
发布博客 2021.09.01 ·
1754 阅读 ·
0 点赞 ·
0 评论

IIS8 隐藏server版本信息

IIS服务器端返回信息中包含有软件版本等详细信息,攻击者利用这些信息可以实现更有目的性的攻击。因此隐藏server版本信息,在一定程度上能够提高服务器的安全性。通常IIS服务会返回如下信息的。如下图:第一步:隐藏Server信息打开IIS管理器,找到“URL重写”并打开。点击右边的“添加规则”。在这个选择框中选择添加出站规则,空白规则:点击“确定”后,会出现规则设置窗口:规则名就自己确定一个了,其他规则如下图:设置好后保存并启用规则。现在刷新W...
原创
发布博客 2021.08.24 ·
2720 阅读 ·
0 点赞 ·
0 评论

UniGui中使用IconCls

在使用UniGui的时候,我时候我们需要使用系统自己的图标,通常会如下图一样的使用方式:选择ICON对齐方式及系统定义好的ICON对应值。但实际上UniGui中可以使用的图标远远大于他已定义的这十几个(或者应该说是EXJS原本就多,UniGui只定义了很少一部分提供使用)。如下图,这些图标实际都是可以直接使用的,我花了点时间把对应图标与图标名例了出来,以后使用就方便多了。使用方式:不用直接选择系统已定义的,而是直接输入某个图标名就OK了,例如下边这样:直接输入:photos...
原创
发布博客 2021.07.25 ·
2547 阅读 ·
0 点赞 ·
0 评论

MSSQL插入数据时取自增ID的方法

MSSQL里,通常我们的每个表都会设置一个自增ID,有时候我们需要马上知道刚刚插入的数据的ID值可以使用下面这个方法,早期的MSSQL不行的哈。INSERT INTO表名 (字段名) output inserted.idVALUES (插入的数据)其实就是在VALUES的前面加上“output inserted.id”,这里需要注意的是:1、必须在VALUES前面使用;2、inserted是固定的,后面那个id就是你表里的自增ID的那个字段;这样他就会在执行完成插入后返回一个当...
原创
发布博客 2021.07.13 ·
3023 阅读 ·
1 点赞 ·
0 评论

UniGui做WEB开发时修改 UnimDatePicker控件显示

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言使用UniGui做WEB开发的时候,需要使用到日期选择控件“UnimDatePicker”最开始使用的时候总是显示的英文,后来配置好中文本地包locale-zh_CN.js解决了显示中文的问题。可是显示的选择非常不友好。如下图:重点是图片中红框部分。查找问题前面的“五”是期五,在locale-zh_
原创
发布博客 2021.07.02 ·
2895 阅读 ·
0 点赞 ·
1 评论

UniGui UniSession返回的URL

原本想在系统里组合一下URL地址,因为不知道服务的完整URL,所以试了一下UniSession各项返回的数据。UniSession.URL: http://127.0.0.1:8077/mUniSession.URLPath: /m/UniSession.UrlReferer: http://127.0.0.1:8077/mUniSession.BaseURL: http://127.0.0.1:8077/mUniSession.Host: 127.0.0.1:8077UniSessi
原创
发布博客 2021.06.06 ·
3101 阅读 ·
1 点赞 ·
0 评论

转行0基础学习java,学习效果不理想,哥哥姐姐们给点意见,谢谢😊

答:

先问问自己为什么要学这个?只为工作而学,其实没太大必要去学的。找到自己的特长、找到自己的喜好,做自己擅长的事。有些东西,对部分人来说学习起来很容易而对其他人来说可能就难。

回答问题 2021.06.02

uniGUI获取设备信息

有时候我们需要知道客户是使用什么设备登录的系统,在uniGUI中可以通过UniApplication.UniPlatform来获取。简单记录一下,uniGUI的资料不太多,需要深入了解的,请多看DEMO。详细使用请参考Demo:目录:uniGUI\Demos\Touch\Detect Platform以下是主要代码type TUniPlatforms = set of TUniPlatform;//定义一个变量uPlat: TUniPlatforms;uPlat := UniAppli
原创
发布博客 2021.05.26 ·
3068 阅读 ·
0 点赞 ·
0 评论
加载更多