delphi 项目
以后换名字
这个作者很懒,什么都没留下…
展开
-
数据上云(单机或内网C/S升级INTERNET版)
数据上云(单机或内网C/S升级INTERNET版)原创 2022-09-13 14:04:02 · 1014 阅读 · 0 评论 -
windows server 运行带界面服务端的问题
在windows server 上运行的服务端软件,如果服务端的软件需要调用界面的控件时,远程登录服务器和在本机调试时一切都好用,但一旦退出服务器的远程桌面,服务端软件就不正常了。原创 2022-06-28 15:38:59 · 737 阅读 · 0 评论 -
DELPHI仿花生壳(外网穿透内网)
主要使用的功能就是在内网络架设服务器软件,然后在外网进行访问。内网网络穿透原创 2022-06-22 18:23:27 · 1180 阅读 · 0 评论 -
delphi中idhttp完成restserver
为什么要使用IDHTTP代替restserver呢?个人感觉还是IDHTTP更底层一点,而且还支持XML,并且接收值可以是JSON,也可以不是,返回值也是一样。可以任意返回内容,包括返回类似于HTML的内容。原创 2022-06-20 18:42:58 · 852 阅读 · 0 评论 -
人脸识别服务器端软件设计(delphi XE10)
人脸识别服务器端软件设计(delphi XE10)原创 2022-04-27 13:22:17 · 1023 阅读 · 1 评论 -
DELPHI数据导入金蝶
部分金蝶软件需要的表格其实并不是标准的EXCEL表格,所以如果按EXCEL的方式生成,就无法在金蝶中进行导入。直接上代码var WXLogFile: TextFile; WXLogFileName: string;begin WXLogFileName := 'd:\jd.XLS'; Assignfile(WXLogFile, WXLogFileName); rewrite(WXLogFile); Closefile(WXLogFile); Assignfile(WXLo原创 2021-12-11 16:47:30 · 431 阅读 · 0 评论 -
扫呗接口单元设计
为了应景2022年3月禁止个人收款码用于商业场景,把以前的扫呗独立单元记录一下。语言环境:DELPHI一、建立一个独立单元,可以在程序任何地方进行调用。二、单元内容:1、为了简单,先把扫呗的原JSON内容定义成常量。2、生成订单号函数:生成毫秒级时间字符串+5位随机数+用户名(随便定义)3、生成POST通用函数:支付、查询、退款,只是地址与带入JSON不同,其它相同4、支付函数:带入必要固定参数------带入必要动态参数-----函数内生成拼接令牌(根据参数,采用替换法,或者自己写命令生成也原创 2021-11-28 18:40:53 · 271 阅读 · 0 评论 -
软件架构逐步调整过程(二)
四、各端直连硬件的独立程序:1、独立程序仅对硬件进行操作,不与数据库进行连接,所有执行参数由各端连接数据库后采用进程间通讯的方式传输。2、按通讯原路返回硬件执行结果与硬件状态,完成代码复用,避免一次修改后需要把想同代码部署到其它端的情况。五、后台端内部调整:1、由单标签模式修改为多标签模式,实现多表格可以自由切换查询结果,互相印证。2、设计通用参数表作为与其它端的数据交互基础,将权限等经常需要增加的内容保存在通用参数表中,避免其它端要使用开发新功能时必须后台先进行数据设置,达到各端可自行研发。3原创 2021-09-28 12:09:00 · 129 阅读 · 0 评论 -
软件架构逐步调整过程(一)
一、原软件架构说明(行业软件):1、各端内网直连sql server 数据库2、各端与外网服务器采用HTTP方式进行交互3、各端有连接打印机等其它外设需求,如PLC、串口设备、网络设备等4、各端包含后台、前台、专业端、不同外设端等。5、前台端固定周期生成历史数据二、调整过程:1、架设内网REST服务端,逐步接管非主营业务,如报表、查询、定时任务等2、各端连接其它外设方式修改为单独程序,采用进程间通讯的方式,达到代码复用3、通过内网REST服务端,采用JSON的方式,支持安卓或苹果等移动端原创 2021-09-06 12:01:48 · 296 阅读 · 0 评论 -
关于程序集成线上支付模块
关于线上支付的那些小问题:不涉及技术方面内容一、与线上支付对接阶段:1、先作小DEMO,把SDK等跑通,至少需要获取token、支付、查询、退款2、由小DEMO提取出最小单位的函数组成一个新的单元,如获取支付环节可以分解为支付前获取基础信息、支付前根据基础信息生成所有数据、支付后获取支付结果、支付后分析支付界面等。3、设置数据库内容,将支付、查询、退款中所有小函数单元的执行前参数,执行后结果保存到数据库中,这点很重要,一旦后期支付出现问题,如果只保存了执行后的结果根本没有办法去判断问题出在哪里。二原创 2021-07-28 17:01:06 · 159 阅读 · 0 评论 -
DELPHI 函数内容与函数的复用
完全从个人的DELPHI经验进行的总结,不一定适用其它风格:1、如果一个函数未来有可能还会增加参数,可以使用结构体作为参数,增加的参数放到结构体中,但多次复用后,发现如果漏修改了使用的位置,会导致数据不准确。为了避免这个情况发生,所有新增加的参数都单独添加,这样漏写了程序编译不过去,避免了数据不准确的问题。2、每个函数中坚决不调用函数外的变量,这样才会方便函数的迁移,针对系统中包含多端应用时效果很明显,针对不同的DELPHI版本,可以作开关变量进行适应。3、每个函数进入后,先接收入口参数的值,将入口参原创 2021-07-12 16:35:35 · 145 阅读 · 0 评论 -
统计数据池
软件产品统计数据池:背景:软件产品经常需要根据不同客户的不同需求进行统计修改,而统计必然会涉及到数据库、SQL语句,为了适应不同的需求,SQL会越来越长不方便维护,如果统计模块有多人进行代码研发,很容易造成在不同的统计时得到的结果不同。统计数据池:在数据库与统计模块中增加一个统计数据池,涉及统计时到数据池中进行读取数据,不使用SQL读取,这样可以保证不同人取到的数据不同问题,解决了每个人都需要对SQL进行维护的问题。统计数据池如果放到服务器中由单独程序负责,可以提高数据量大时进行统计的效率。...原创 2021-05-29 11:41:36 · 75 阅读 · 0 评论 -
DELPHI 编译开关
DELPHI 编译开关的简单应用场景1、根据不同的系统版本进行不同的编译//安卓编译{$IFDEF ANDROID}{$ENDIF}//windows 编译{$IFDEF MSWINDOWS}{$ENDIF}2、在工程中的某一个单元中,进行特殊的编译,手动调整为建立,或者不使用,就可以改变编译结果{$DEFINE qt}{这行可以理解为 qt 这个变量建立了}{.$DEFINE SOA}{这行可以理解为 SOA 这个变量不使用了}{$IFDEF qt} {写代码}{$原创 2021-04-03 09:25:06 · 462 阅读 · 0 评论 -
美团验票或其它在线验票思路
方案一:最正规的方法是向对方要接口文档。方案二:完全模拟人为操作进行验票方案三:模拟HTTP包操作与网站进行交互方案二说明:1、使用IE浏览器打不开的网站可以使用谷歌浏览器插件。2、模拟人为操作如果有可能被封账号可以考虑增加随机模拟干扰操作3、网站类的有可能需要增加定时刷新功能,即与网站保存心跳...原创 2021-02-23 18:00:27 · 732 阅读 · 0 评论 -
DELPHI 微信公众平台 订阅号(一)(restserver 的方式失败了,得换控件了)
重无到有,记录连接微信公司平台的过程一、需要准备的资料1、一台有外网的服务器,开放80端口2、注册一个微信公众平台订阅号(个人只能申请这个)二、建立一个 restserver(dshttpserver的端口号必须是80)用来接入微信开发模式,参考以前写的https://blog.csdn.net/weixin_44387646/article/details/106218176。然后测试一下,能通讯并且收到返回值就可以三、建立一个新函数让微信可以验证//引用IdHashSHAf原创 2020-06-04 17:44:41 · 372 阅读 · 0 评论 -
delphi 时间函数
一、不同的电脑时间格式有可能不同,会导致转换时间格式数据时意外报错。二、需要写几个小函数来统计软件运行过程中的时间格式。1、数据库日期时间格式函数function format_sql_datetime(temp_datetime: string; date_interval: string = '/'; time_interval: string = ':'): string;var yyyy: string; mm: string; dd: string; hh: str原创 2020-05-26 11:28:26 · 359 阅读 · 0 评论 -
优惠思路设计
一、设计数据库1、优惠类型表(至少包括优惠类型名称、大类名称、小类名称)2、优惠信息表(至少包括优惠名称、所属优惠类型名称)3、优惠构成条件表(至少包括优惠名称、构成条件)4、优惠目标表(至少包括优惠目标,优惠金额)二、优惠计算例如:有一个优惠名称为‘10元优惠券’,购买A商品与B商品,则C商品减10元1、判断是否有A商品,如果有,A商品添加‘临时标记’,继续2、判断是否有B商品,如果有,B商品添加‘临时标记’,继续3、判断是否有C商品,如果有,C商品添加‘临时标记’原创 2020-05-21 16:33:56 · 230 阅读 · 0 评论 -
delphi xe10 restserver
一、NEW一个datasnap server基本默认选择,中间把HTTP打上挑二、打开ServerContainerUnit1单元三、DSHTTPService1控件的FormatResult事件中增加代码procedure TServerContainer1.ds_h_datacountFormatResult(Sender: TObject; var ResultVal: TJSONValue; const Command: TDBXCommand; var Handled: Boole.原创 2020-05-19 17:26:16 · 1033 阅读 · 0 评论 -
delphi 项目软件架构升级之后台部分-行业软件
我对后台的理解,应该包括账号管理、参数设置、软件规则的设定、保密的设置与数据来源的设置。其它的功能应该分离出去,后台应该是独立于其它部分,后台与数据库相当于土建中的地基,只是基础而已,不应该涉及高级业务。当然也是分情况的,不要太绝对,比如我接手的这个后台,是管理员、财务、老板使用,所以包含的功能很多。功能划分:功能按使用人员或者功能类型进行划分,我是按功能类型分的。...原创 2020-05-02 19:16:03 · 206 阅读 · 0 评论 -
delphi 项目软件架构升级-行业软件
洗浴行业软件之delphi19年7月到新公司,居然是用delphi写的洗浴行业软件。软件架构为c/s+mssqldelphi部分:前台端、技师端、自助结账机、后台管理端、闸机程序线上部分mysql:php网上商城、微信公众平台软件涉及的技术相当’全面’,代码风格百花齐放,变量名称应有尽有,控件的用法也是各尽其能,整个系统没有数据库表说明、开发文档、流程图,比较统一的就是基本没有注解(其中...原创 2020-05-02 11:24:04 · 244 阅读 · 0 评论 -
delphi idhttp post json 上传 PHP $_post 接收
前提:PHP端用$_post 接收一、delphi idhttppost上传数据时如果使用temp_stream: TStringStream; 内存流的方式上传则需要指明IDHTTP的contentypevar idhttp2: TIdHTTP; temp_stream: TStringStream; temp_url: string; temp_str: ...原创 2019-12-26 10:03:03 · 1264 阅读 · 0 评论 -
DELPHI XE 与PLC通讯(INTCPSERVER 二进制)
一、与PLC通讯采用TCPSERVER方式二、配合PLC发送二进制数据。var i: integer; RecClient: TIdContext; buf: TIdBytes;begin SetLength(buf, 2); buf[0] := ord('W'); buf[1] := BintoInt(Edit7.Text); with c_tcp_lis...原创 2019-04-10 08:57:51 · 1751 阅读 · 0 评论