![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Delphi(编程语言)
肉肉的RORO
这个作者很懒,什么都没留下…
展开
-
DbGridToExcel(Delphi)
procedure TFrm_func.DbGridToExcel(ADg: TDBGrid);var xlApp, xlSheet, szValue: Variant; ARow, iLoop: word; FSaveDialog: TSaveDialog;begin if ADg.DataSource.DataSet.IsEmpty then begin转载 2015-01-04 10:22:16 · 1538 阅读 · 0 评论 -
[Delphi] Search path vs Library Path vs Browsing Path
Delphi 有两种搜索路径:编译搜索路径和Debugger搜索路径。 1.编译搜索路径: 编译器在编译时使用此路径搜索源文件或预编译的Dcu文件。 编译搜索路径又分为两种: ①Project - Project Options - Directories/Conditionals - Search path: 只对当前工程起作用。 ②Tools - Envirome原创 2016-04-22 09:23:05 · 1591 阅读 · 0 评论 -
delphi之多线程编程
先试试这个:procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i := 0 to 500000 do begin Canvas.TextOut(10, 10, IntToStr(i)); end; end; 上面程序运行时, 我们的窗体基本转载 2015-02-04 14:25:20 · 1414 阅读 · 0 评论 -
todo:关于Delphi的几个问题
1.如果在运行期获取当前方法的名称; 2.将任意的记录或数组转换成对象。原创 2016-03-10 00:07:12 · 373 阅读 · 0 评论 -
TcxgridDbLayoutView使用有感
这周因为某个需求,开始学习使用 TcxGridDbLayoutView,结果本周是极其痛苦的一周。 总体而言,CxGrid是一把双刃剑,它提供了强大的功能,颠覆了VCL中Grid的传统设计思路,但也引入了巨大的复杂性,使得学习难度大幅度增加,上手很慢。而这次尝试使用的TcxGridDbLayoutView更是如此。 而且,因为CxGrid的不断发展,很多属性和方法被废弃,考虑到老版本的兼容性,这原创 2016-04-02 01:54:38 · 1581 阅读 · 0 评论 -
FormShow 为什么执行两次
以前就发现过这个问题,但一直没有在意。昨天一个窗体FORMSHOW执行了两次,对数据有影响,于是搜索了一下这个问题的答案。Since your other thread finally gave your situation, it was very easy to find the problem: AForm.Position := poMainFormCenter;This calls Pe原创 2016-04-02 00:18:42 · 1507 阅读 · 0 评论 -
调试小技巧:生成(捕获)存储过程的“形参-实参”对值
Delphi中常常有用TStoredProc组件调用存储过程的语句。 通常的调试方法是跟踪代码中传入的实参,配合数据库中存储过程定义的形参,一一对应,进行调试。 对于参数数量少的情况,这种方法没什么不妥,但对于有几十个参数的存储过程,甚至传参顺序和定义顺序不同的情况,一一对应实参形参就变得很麻烦。 一个小技巧,可以通过代码来生成“形参-实参”对,进行调试。var aList:TStringLi原创 2016-03-05 23:22:15 · 557 阅读 · 0 评论 -
Delphi 如何计算字符串表达式呢?
今天工作上遇到一个问题,需要计算 字符串形式的表达式,比如:var s:string;begin s:='2+4*1.7';end;问s等于多少。我认为这需要一个字符串解析器,把字符串解析成真正的表达式才行。经过搜索,现成的轮子有:parser10JCL中包含的TEvaluatorRemObject中的Pascal Script等等。原创 2016-02-01 23:36:11 · 2010 阅读 · 0 评论 -
NativeXML使用有感
最近工作上需要把GUI保存成XML,并能根据XML给GUI传递数据,因而接触了NativeXML。以前很少接触XML,这次也系统的学习了一下,感觉XML在数据传递上确实比较方便,至少比起数据库来说轻便太多了。但XML是否好用,还要看标签定义和具体的实现。经过比较,最后选择了NativeXML作为生成、解析XML文件的第三方工具。NativeXML的具体用法网上很多,但很多已经过原创 2016-01-31 00:26:45 · 3140 阅读 · 2 评论 -
Delphi类在实现接口时,可以任意的升降接口方法的可见度。
以前没想过这个问题,只知道接口中的方法不带可见度说明符,都是public的,原来DELPHI类在实现接口时,可以任意的升降接口方法的可见度。IMyInterface=interface(IInterface) procedure p1; procedure p2; end; TMyClass = class(TinterfacedObject,IMyInterface)原创 2016-01-08 00:05:50 · 511 阅读 · 0 评论 -
Delphi 类方法的搞笑答案
最近复习Delphi语法,发现有个类方法一直被忽略了。于是到论坛提问:"除了构造器,还有哪些类方法的例子。"于是有人答了一发:TSingleton=classprivate Singleton:TSingleton; contructor InternalCreate;public class function Instance:TSingleton; class原创 2016-01-17 23:25:38 · 640 阅读 · 0 评论 -
DbgridEh数据导出到Excel的方法(Delphi)
本文内容严重参考了网上其他牛人的代码,并做了一些修改,使得参数更加简单,结构更清晰,所以就厚着脸皮说是原创。procedure TFrm_func.DbGridEhToExcel(ADgEh: TDBGridEh);var ExpClass: TDBGridEhExportclass; Ext: string; FSaveDialog: TSaveDialog;beg原创 2014-12-31 11:17:55 · 8301 阅读 · 1 评论 -
CxGrid导出到Excel(Delphi)
使用CxGrid自带的方法。优点:参数简单。uses cxExportGrid4Link;procedure TFrm_func.CxGridToExcel(AcxGrid: TcxGrid);var SaveDialog: TSaveDialog;begin SaveDialog := TSaveDialog.Create(nil); w原创 2014-12-31 11:21:18 · 7386 阅读 · 0 评论 -
用两个DatetimePicker控件的组合生成一个Datetime值(Delphi)
方法1:procedure TForm1.btn1Click(Sender:TObject);var s:string;begin //yyyy-mm-dd后面带了一个空格,为了拼上time时格式正确 s:=FormatDateTime('yyyy-mm-dd ',dtp1.Date) + FormatDateTime('hh:mm:ss',dtp2.Ti转载 2014-12-31 10:12:34 · 1964 阅读 · 0 评论 -
如何优雅的给TDatetimePicker控件赋值(Delphi)
以给 kind=dtkTime 的 datetimePicker 赋值为例,代码如下。(需引用DateUtiles单元) dtp1.Time:= StartOfTheDay(Now); dtp2.Time:=EndOfTheDay(Now);给日期类型的DatetimePicker赋值也是一样的。原创 2014-12-31 09:55:02 · 9424 阅读 · 0 评论 -
在Delphi中使用事务
1、直接在delphi中使用事务procedure TForm1.Button1Click(Sender: TObject);begin ADOConnection1.BeginTrans; Try aq2.close; aq2.sql.clear; aq2.sql.add('update bank set currentMoney=current转载 2015-02-04 14:10:26 · 1783 阅读 · 0 评论 -
cxgrid默认把“0.1”显示为“.1”,小数点前的0没有显示出来
CxGrid 默认把 “0.1” 显示为 “.1” ,0没有显示出来。如何解决。方法1:properties属性中选择calcedit方法2:properties属性中选择CurrencyEdit 或maskedit等选择CurrencyEdit, 其displayformat设为: #.#;-,#.# 或0.#;-,0.#转载 2015-01-29 11:47:47 · 3396 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
var Form1: TForm1;JPG_HEADER: array[0..2] of byte = (FF,FF, D8, FF);GIFHEADER:array[0..2]ofbyte=(FF); GIF_HEADER: array[0..2] of byte = (47, 49,49, 46); BMP_HEADER: array[0..1] of byte = (42,42, 4D原创 2016-08-26 15:40:52 · 699 阅读 · 0 评论