学习心得
秋天之落叶
非IT专业人员,仅仅是业余爱好。
展开
-
delphi代码实现advstringgrid和fdquery的LiveBindings绑定
delphi12.1+TMS VCL UI Pack 13.1.0.1通过。需要增加两个控件 TBindSourceDB和TBindingsList。使用完后自己记得释放mylink。原创 2024-06-02 23:51:43 · 225 阅读 · 0 评论 -
cxgrid列内容居中
笑掉大牙,需要这个功能了,找遍了全网,没有一个可用的成功案例,唯一可用的就是表中添加字段,然后选择properties然后选择对齐方式,根本不实用,因为列都是动态生成的,不可能提前做好所有的表的内容。(不用质疑,全网的代码示例没有一个能用的,版本delphi10.4.2+DevExpress VCL 23.2.6 Full Source(EN))郁闷了两天不得解决。它竟然成功了,这么简单,这两天白费的功夫,唉~cxgrid网上资料太少了。原创 2024-05-31 16:32:53 · 241 阅读 · 0 评论 -
dbgrideh排序后光标定位首行
dbgrideh显示数据后,光标在首行,排序后光标会在最后一行,还要把光标拉到第一行,很不方便。以下方法可以使光标排序后一直定位在表格的首行。dbgrideh1titleclick事件中加入dbgrideh1.moveby(-fdquery1.recordcount)目前尚未发现问题,唯一想到的问题是如果在操作表格过程中需要点击表头的可能会移动记录,但我没有这样的情况出现。原创 2024-05-28 16:16:13 · 170 阅读 · 0 评论 -
Unidac连接Excel文件
终于找到一个连接字符串,记录一下。原创 2024-05-22 11:24:59 · 524 阅读 · 0 评论 -
cxgrid标题字体调整
cxGrid1DBTableView1创建一个新样式原创 2024-05-20 10:07:44 · 195 阅读 · 0 评论 -
安装ehlib出现E2202 Required package ‘rtl‘ not found错误
研究了很久,发现是因为没有win64的目录造成的,重新安装或选择补充安装,记得选win64 平台。这是其中的一个原因,其他的原因网上再搜一下,很多。原创 2024-05-13 09:53:58 · 527 阅读 · 0 评论 -
Delphi10和12的FDConnection1.GetTableNames参数不一样了
FDConnection1.GetTableNames原创 2024-05-03 22:52:25 · 360 阅读 · 0 评论 -
project test.exe raised exception class $C0000005 with message ‘access violation at 0x7613bb52:read
project test.exe raised exception class $C0000005 with message 'access violation at 0x7613bb52:read of address 0x6ffef03c'.原创 2024-01-19 14:23:13 · 523 阅读 · 0 评论 -
Lazarus连接MSSQLServer的连接问题
另外,Lazarus中使用属性时,发现自动提示的属性或方法后面有的加了一把小锁,不知何意,使用时发现有时不能正常的反馈结果,难道是受限制或和其他属性一并使用的提示?自动提示的Prepared属性后有一把小锁,反馈的结果不是实际的计数,第一次是20,再刷新可能会显示实际计数,这是在PacketRecord:=-1的情况下出现的问题。另外,在3.0RC1和2.2.6版本,你想用拼音录入 //显示全部 时,当联想显示过程到 //县市区 后,系统自动退出。测试后,微软的拼音录入没问题,手心录入法有问题。原创 2023-08-23 12:21:28 · 922 阅读 · 4 评论 -
FDQuery的排序方法
FDQuery的字段排序查了很久网上竟然找不到,最后看到一个信息,竟然是非常奇葩的存在。FDQuery.indexfieldnames:='字段:D';FDQuery.indexfieldnames:='字段:A';FireDAC的资料真实很少啊。原创 2023-08-02 11:30:44 · 387 阅读 · 0 评论 -
FastReport分组、填充空格、分页和小计
网上找到了分组、填充空格和分页,但是fastreport有一个问题,一旦用child1填充空格后,GroupFooter1的小计就无法显示了,需要加一个累计项单独小计,备忘一下,以供大家参考。以下是打印记账凭证的代码,一张A4的纸上打印三张,每张凭证可以填写8个分录项:var GPage,GIndex,FGIndex:integer; PageList:array of integer; PageLine: integer; PageMaxRow: integer=8; jf,d...原创 2021-12-23 14:48:14 · 2331 阅读 · 0 评论 -
解决Microsoft SQL Server Management Studio启动时出现cannot find one or more components错误的问题
也不知道误删了什么玩意,启动Microsoft SQL Server Management Studio,出现cannot find one or more components错误,按照网上的教程,试了很多种方法,均不得要领。经过测试多次,基本解决了我自己的问题,大家参考吧。1、删除Microsoft Visual Studio 2010 Shell(Isolate)-CHS,也可以跳过该步...原创 2019-04-17 15:41:05 · 9744 阅读 · 10 评论 -
ADO.SQL.ADD修改数据后刷新小技巧
用数据控件的edit和post方法,在DBGRID中可以实时显示变更后的数据,用ADO.SQL.add却不能,修改数据后用刷新也不能显示修改过的数据,除非你重新查询一下。这几天偶然发现,使用ADO.close再使用ADO.open后,数据表中的数据刷新了,呵呵。其实方法本来就有,但本人一直不知道,对自己来说算是一个新发现,就是不知道这种刷新对系统运行有什么影响没有。记录一下,以备后查。...原创 2018-08-04 19:27:38 · 835 阅读 · 0 评论 -
Delphi XE10.2.3总是打开CPU调试窗口
将XE10.2换成XE10.2.3,用了一段时间发现,调试错误中断时,总是调出CPU窗口,不能定位错误代码行。换回XE10.2后一切正常。搜了很多网上的指南,均不能解决问题,还是继续用10.2吧。2018.8.3010.2.3.2661是这种情况,3231也是这种情况,这么不长进啊! ...原创 2018-07-14 11:47:53 · 1428 阅读 · 5 评论 -
关于自定义 DBGridEh 的 IndicatorTitle 表头下拉菜单项的方法
因为DBGridEh的字段有不想被显示的,而定义显示全部菜单项能选择被禁止的Columns,所以需要选择菜单项。BlueStorm给出一种自定义类的方法https://bbs.csdn.net/topics/392410238type TDBGridEh = Class(DBGridEh.TDBGridEh) public procedure DefaultBuildIndicator...原创 2018-07-05 22:41:07 · 737 阅读 · 0 评论 -
Delphi XE10.2 判断汉字的方法
查了一下网上的方法,大部分用ord、bytetype或ord+bytetype方法,但不知道为什么,XE10.2下判断的结果不对。用ORD的,函数的参数应该是WideChar,string无论如何转变都不行,查了一下,有的说以前版本可以支持直接强制转换,可是在高版本下就是不行。研究了一下,XE10.2版本下通过:var s1:string;if (ord(s1[1]) < 40869) an...原创 2018-06-26 21:32:27 · 1703 阅读 · 2 评论 -
Delphi重复使用ADOquery时要避免相互干扰的问题
以前想过,没当回事,这次偶尔发现确实有问题。我一般是ADOQuery1..5(基本上临时查询使用),循环使用,但有可能会出问题,那就是两个界面都用ADO1查询时,另外判断ADO.isempty时,会交叉干扰。比如A窗体的ADO1-->delete和B窗体的ADO1-->delete,你先查询A窗体的ADO1,B窗体删除时判断ADO1不为空,会通过判断,但删除时报错,毕竟字段不同,要是字...原创 2018-05-23 14:36:02 · 1704 阅读 · 0 评论 -
使用dbExpress的SimpleDataSet控件连接MSSQL2014时出现错误的解决方法
Delphi XE 10.2+SQL Server 2014使用dbExpress的SimpleDataSet控件连接MSSQL2014时出现错误:'DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong ve...原创 2018-04-25 10:18:46 · 739 阅读 · 0 评论 -
ADOQuery.Filter三个以上条件字符串的写法
一般不用ADOQuery.Filter作为条件,这次偶然用了一下,竟然出错连连,找了网上很久也不得骑姐。看到对Filter条件的解释,说 and 两边的结果必须为真,尝试将:ADOQuery.Filter:='((A=a) or (B=b)) and (C=c)' 显示First chance exception at $749F3EF2. Exception class EOleExceptio...原创 2018-04-14 20:22:31 · 3684 阅读 · 0 评论 -
vb .net 主窗体和登录窗体
小白的学习记录原创 2017-03-19 15:02:33 · 6302 阅读 · 4 评论 -
VB .NET 读取数据库数据处理后再循环插入数据库
读取数据库数据处理后再插入数据库,很多语句都可以使用inset into实现,但有些批量处理业务,需要逐条记录处理后,在写回数据库。网上查了很多资料,竟然没有这样的例子,很是奇怪,难道我学的路子不对头?小白学习过程中的记录,高手勿笑,有不当之处烦请指点。Private Sub Button9_Click(sender As Object, e As EventArgs) Handles原创 2017-05-07 19:12:53 · 1267 阅读 · 1 评论 -
VB .NET把Excel中的数据导入SQL SERVER数据库
其实不算原创,论坛里有人发的,我正好项目写到这里,缺的语句较多,无法运行,我补充了一下,可以简单的运行了,测试了一下,速度还不错。VS2015可用,自己添加窗体和控件吧,只需要一个OpenFileDialog和Button,默认文件中带有字段名。Public Class Form1 Private Sub Button1_Click(sender As Object, e As原创 2017-05-18 11:08:09 · 6268 阅读 · 2 评论 -
VB .NET 将DataSet修改后的数据使用update写到数据表中
用到了显示表格,修改数据,写回数据表的项目,几乎用了两天的事件查询电子书和网页资料,竟然无法找到将DataSet修改后的数据使用update写到数据表中的任何一个正确的代码,几乎快崩溃了,看来我真的不是学VB的脑袋啊,几乎忍不住要转回delphi了,就在刚才抱着最后一次运行的绝望修改后,TNND竟然可以了,真想说粗话,谁说VB好学了,你过来,我保证不打死你!我确认我的代码基本正确,也参考了帮助原创 2017-05-30 23:22:48 · 6847 阅读 · 4 评论 -
delphi自带md5的使用
delphi自带md5的使用方法,在xe10.2版本测试通过。uses单元中加入IdHashMessageDigestprocedure TForm1.Button1Click(Sender: TObject);var MD5: TIdHashMessageDigest5;begin MD5 := TIdHashMessageDigest5.Create原创 2017-07-03 00:21:53 · 9698 阅读 · 0 评论 -
delphi xe10.2自带的sha1sha2
uses单元加入system.hash。使用sha1直接调用edit3.Text := system.hash.THashSHA1.GetHashString(edit1.Text);使用 system.hash.THashSHA2.参数设置如下:class function GetHashString(const AString: string; AHashV原创 2017-07-03 15:05:05 · 4939 阅读 · 0 评论 -
Ehlib组件DBGridEh自动排序之正常运行
根据Ehlib使用说明之自动排序并显示标记(▽降序△升序),仅设置属性不用写代码实现点击标题头自动排序。DBGridEh组件可以在标题行单元格中显示小三角形升、降排序标志符图片,在运行时可点击标题行,图片自动切换并做相应排序。1)设置全部列为排序字段,具体属性设置如下: DBGridEh.ColumDefValues.Titles.TitleButton:=True; DBGr原创 2017-07-14 22:39:47 · 1212 阅读 · 2 评论 -
delphi xe10.2可以使用tostring
经常使用VBnet的数据类型转换,感觉.tostring非常好用,比delphi的xxtostr()好用多了,前几天装上delphi xe10.2,发现也可以使用.tostring了,感觉很爽。说实话,用来用去的PB、VBnet,还是回到了delphi,也是习惯了,感觉D还是写起来顺畅,逻辑也清晰,尤其是控件和语句结合的很方便。不过,非IT的业余人员,也就是用一下基本功能,谁好用就用谁呗,原创 2017-06-27 13:10:04 · 3233 阅读 · 3 评论 -
Excel导入SQL时,如何动态获得Sheet的名字
发了一个问题贴,2位前辈回复后,不得要领,试了2整天,没有一个能正常运行的,本想放弃了,最后一次终于试出来了。竟然还是驱动的问题,驱动驱动驱动,重要的事情说三遍。我一直尝试使用delphi提供的驱动连接数据文件,全部不能正常使用。 OpenDialog1.Execute; ADOConnection1.close; ADOConnection1.ConnectionS原创 2017-08-07 23:16:35 · 982 阅读 · 0 评论 -
delphi使用ADO在sql数据库存取图片的方法
delphi使用ADO在sql数据库存取图片的方法新手参考,老鸟绕行我一直不认为能把代码写的和天书一样的程序员是好的程序员,那不过是因为我真的对delphi也就是略懂皮毛,太深了看不懂。网上查询数据库存取图片的方式,看的是一头雾水,有人提出保存路径使用时再调用,方法很好,但现实很残酷,在客户端使用时才发现,无法调用服务器端的路径和图片(我指的服务器也就是一台部门使用的普通的PC原创 2017-07-27 11:33:36 · 2198 阅读 · 0 评论 -
Edit判断修改后的处理
Edit类的控件,判断Modified后,如果再次循环,其Modified状态依然不变,而此判断会出问题,除非你清除全部结果。我习惯显示不变,下次的时候清空数据,所以,判断其修改后要恢复其状态,下期才能不出问题。if Edit.Modified:=true thenbegin......Edit.Modified:=false;end;这么一个小问题竟然要追踪调试才发现原创 2017-08-28 09:24:11 · 627 阅读 · 0 评论 -
adoquery.sql相同变量赋值的方法
在以adoquery.sql赋值语句中,如果两个变量相同,语句中使用相同的变量,竟然提示变量找不到,前没遇到:adoquery.sql.add('update 表 set a=:a,b=:a,c=:c where 条件');adoquery.parameters.parambyname('a').value:=1;(写两次也不行)10.2竟然不支持,改成:adoquery.sq原创 2017-08-28 09:37:21 · 945 阅读 · 0 评论 -
DBGridEh设置选中的行的颜色
DBGridEh设置选中行的颜色,查了3天,一脸懵逼,我能找到网上的全是错误的,或许是我的版本太高了,不支持。尤其是参数State总是提示错误,类型不符。点击单元格,或者单元格获得焦点后,整行被指定的颜色覆盖(如果是设置内容颜色,你自己选择font),正确的也是简单的写法(我最烦动不动就一大篇实现一个简单的功能)。一、设置光标所在行的颜色在getcellparams事件中if DBgrideh1....原创 2017-09-07 10:57:13 · 5450 阅读 · 3 评论 -
CheckListBox中选项的两种拖放方式
今天调整系统的一些技巧部分,用到了拖放,在网上搜集了两种方式,略作修正,备忘一下。我喜欢第一种方式,拖放时在选择框内显示可拖放状态,第二种限制在可选择的项上显示可拖放状态,但第二种简单一些。网上还有一种方式,托过的项上全部为选择状态,很不好看,就不再记录了。我习惯了用Sender,原作用的是Source,没有测试,同一个对象,应该是可以的。 // CheckListBox两种拖放方式,第一种pro...转载 2018-02-11 23:50:25 · 610 阅读 · 0 评论 -
VB.net的ComboBox下拉单使用空行或空值问题
Public da As SqlDataAdapter Public dt As New DataSet Public cn As New SqlConnection() Private Sub ComboBox1_DropDown(sender As Object, e As EventArgs) Handles ComboBox1.DropDown dt.Cl...原创 2018-03-14 16:00:38 · 2237 阅读 · 1 评论 -
TreeView1鼠标点击节点触发的单击事件
说实话,刚刚从Delphi改成VB.net,delphi本是菜鸟,VB也就是菜鸟中的菜鸟了,根本不是开什么博,就算是学习的一些心得吧,仅仅是记录一下,以便后期使用而已,请方家勿笑。查了很多资料,竟然查不到TreeView1节点的应用,全是什么增加、遍历什么的,自己测试了很久,其实应该是TreeView1_NodeMouseClick事件才是node中正确的鼠标点击事件。vb .ne原创 2017-03-15 14:39:22 · 26298 阅读 · 5 评论