随笔分类 -  Delphi(Pascal)

1
摘要:uses cxImageListEditor, cxGridMenuOperations;{$R *.dfm}procedure TForm1.Btn1Click(Sender: TObject);var AEditor : TcxImageListEditor;begin AEditor := TcxImageListEditor.Create; AEditor.Edit(TcxImag... 阅读全文
posted @ 2014-07-14 04:02 血舞&葬青衣 阅读(286) 评论(0) 推荐(0)
摘要:在使用TXMLDocument解析XML文档的时候,若希望保存之后的文档看起来漂亮点,在Options属性中增加doNodeAutoIndent即可。 但这样操作的文档,单纯读取和保存没有问题。可如果还会编辑,且编辑之后不保存直接调用其中元素的话,就需要注意了。 因为格式化增加了换行和空格等字符,在修改后的节点再次读取节点数量时,ChildNodes.Count会将这些多余出来的字符,也解析进... 阅读全文
posted @ 2013-06-09 01:53 血舞&葬青衣 阅读(651) 评论(0) 推荐(0)
摘要:果然发现记性这东西,不怎么靠谱额。。记录下吧unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton... 阅读全文
posted @ 2013-02-16 19:57 血舞&葬青衣 阅读(590) 评论(0) 推荐(0)
摘要:测试代码如下: 1 program Project1; 2 3 {$APPTYPE CONSOLE} 4 5 {$R *.res} 6 7 uses 8 System.SysUtils, 9 rtti;10 11 type12 TTest = class13 private14 FDateTime: TDateTime;15 published16 property D: TDateTime read FDateTime write FDateTime;17 end;18 19 var20 T: TTest;21 AValue, rValu... 阅读全文
posted @ 2013-01-10 15:05 血舞&葬青衣 阅读(276) 评论(0) 推荐(0)
摘要:发现用INI做配置的话,实在有太多的东西难以描述,所以自己做了一个XML的配置文件存取类。需要的同学可以直接拿去用,但希望尊重劳动成果,保留版权信息。废话不多说,上代码! 1 unit XMLConfig; 2 {----------------------------------------------------------------------------} 3 { 这个单元用来处理XML配置文件,对配置文件格式有默认要求 } 4 { 格式为,只允许有一个root,然后root下对应配置文件, ... 阅读全文
posted @ 2012-08-22 18:11 血舞&葬青衣 阅读(822) 评论(0) 推荐(0)
摘要:对rtti访问私有变量的一个demo直接上代码! 1 unit Unit1; 2 3 4 5 interface 6 7 8 9 uses 10 11 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 12 13 Dialogs, Rtti, StdCtrls; 14 15 16 17 type 18 19 TForm1 = class(TForm) 20 21 Btn1: TButton; 22 23 Edit1: TE... 阅读全文
posted @ 2011-10-13 23:27 血舞&葬青衣 阅读(412) 评论(1) 推荐(0)
摘要:非COM环境下的接口编程------问题,技巧,应用先行知识:Delphi/接口/Dll/OOP难度:★★★☆☆引子:接口的概念由来已久,早在COM出现之前(COM应该是95年左右)接口的概念就已经在面向对象的开发中根深蒂固了,著名的《设计模式》(94年出版)中也指出“针对接口编程而不是针对实现编程”。使用接口可以降低软件系统中不同模块的偶合性,利于软件系统的更新与维护。接口的优点绝对不只是出现在COM中,事实上在大多数的编程任务中接口都是一个不错的选择。(用delphi开发过Web Service的朋友知道,delphi也是使用接口来描述Web Methord的,所以接口的概念在面向对象领域 阅读全文
posted @ 2011-01-16 16:38 血舞&葬青衣 阅读(154) 评论(0) 推荐(0)
摘要:varI, FoundPos: integer;AColumn : TcxGridDBColumn;AText : String;beginAText := 'Blue Sports';with cxGrid1DBTableView1 dobeginAColumn := GetColumnByFieldName('Company');for I := 0 to ViewData.RecordCount - 1 doif ViewData.Rows[I].IsData thenbeginViewData.Rows[I].Focused := True;with C 阅读全文
posted @ 2010-09-25 23:49 血舞&葬青衣 阅读(408) 评论(0) 推荐(0)
摘要://找到指定位置,并将文字插入Grid当前的编辑单元格中varPart1, Part2 : string;CurrentEditor : TcxTextEdit;beginCurrentEditor := TcxTextEdit(<view>.Controller.EditingController.Edit);if CurrentEditor <> nil thenbeginPart1 := Copy( CurrentEditor.Text, 1, CurrentEditor.SelStart );Part2 := Copy( CurrentEditor.Text, 阅读全文
posted @ 2010-09-25 23:46 血舞&葬青衣 阅读(271) 评论(0) 推荐(0)
摘要:以前也曾经为 Delphi 中相对路径与绝对路径之间的转换烦恼过。但时,用得少,也没过多地去注意了。今天要写一个小程序,又遇到了这个问题。就找资料吧,终于找到了最简单,最直接的方式。现在把函数整理如下://取绝对路径的函数。需要引用 ShlwApi.pas// BasePath: 是参考路径。RelativePath: 是指相对路径function GetAbsolutePathEx(BasePath, RelativePath:string):string;var Dest:array [0..MAX_PATH] of char;begin FillChar(Dest,MAX_PATH+1, 阅读全文
posted @ 2010-09-12 17:05 血舞&葬青衣 阅读(790) 评论(0) 推荐(0)
摘要:procedure TForm1.FlatButton1Click(Sender: TObject);var FilePath:String;// numberzip:Smallint;begin FilePath:=ExtractFilePath(Application.ExeName)+'顺德';{ Thread1:=TShowProgress.create(FilePath); //创建线程计算总目录 Thread1.Priority:=tpNormal; Thread1.FreeOnTerminate:=True;} FilePath:=ExtractFilePath( 阅读全文
posted @ 2010-09-10 17:37 血舞&葬青衣 阅读(255) 评论(0) 推荐(0)
摘要:unitUnit1; interface uses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls; type TForm1=class(TForm) Memo1:TMemo; Button1:TButton; Button2:TButton; Button3:TButton; Button4:TButton; Button5:TButton; Button6:TButton; Button7:TButton; procedureButton1Click(Sender:TO 阅读全文
posted @ 2010-09-10 17:36 血舞&葬青衣 阅读(230) 评论(0) 推荐(0)
摘要:unit Crc32; interface uses Windows; const Table: array[0..255] of DWORD = ($00000000, $77073096, $EE0E612C, $990951BA, $076DC419, $706AF48F, $E963A535, $9E6495A3, $0EDB8832, $79DCB8A4, $E0D5E91E, $97D2D988, $09B64C2B, $7EB17CBD, $E7B82D07, $90BF1D91, ... 阅读全文
posted @ 2010-09-10 17:02 血舞&葬青衣 阅读(604) 评论(0) 推荐(0)
摘要:varaintf:_Recordset;RecordsAffected:OleVariant;beginADOStoredProc1.Close;ADOStoredProc1.Open;aintf:=ADOStoredProc1.Recordset;ADOQuery1.Recordset:=aintf;aintf:=aintf.NextRecordset(RecordsAffected);ADOQuery2.Recordset:=aintf;end;此时,把存储过程中生成的二个数据集分别在adoquery1,adoquery2中,将adoquery1,adoquery2与DBGrid相连中,即 阅读全文
posted @ 2010-09-06 15:53 血舞&葬青衣 阅读(380) 评论(0) 推荐(0)
摘要:DELPHI打开窗体时,提示父类文件找不到 这两天,使用工程中突然在打开窗体的时候出错,大概的意思就是找不开父类文件(因为我是从其他窗体继承过来的)。但如果先打开父类窗体 又不会出错。搞了很久,没有搞定。系统也重装,还是不行。最后看到下面这遍文章才解决。 我的方法是,把父类窗体全部从工程中移除,再从新添加进来就OK了。 有的时候,我们会碰到一些比较烦人的东西,打开某个继承的窗体,会提示说基类窗体找不到,并且找不开这个窗体,必须先打开基类窗体,然后再打开此窗体,才可以进行设计模式。其实出现这种情况的原因,就是因为工程dpr文件中,没有添加此基类的Form文件造成的,多是由于系统移植造成的,你也可 阅读全文
posted @ 2010-08-30 10:54 血舞&葬青衣 阅读(302) 评论(0) 推荐(0)
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Db, ADODB, comobj; type TForm1 = class(TForm) ADO: TADOConnection; ADOQuery1: TADOQuery; Button2: TButton; Button3: TButton;... 阅读全文
posted @ 2010-08-28 13:05 血舞&葬青衣 阅读(322) 评论(0) 推荐(0)
摘要:function Format(const Format: string; const Args: array of const): string; $[SysUtils.pas 功能:返回按指定方式格式化一个数组常量的字符形式 说明 这个函数是Delphi中用得最多的函数,现在就列举几个例子以得到直观的理解 "%" [索引 ":"] ["-"] [宽度] ["." 摘要] 类型 它是以"%"开始,而以"类型"结束,"类型"表示一个具体的类型。中间是用来格 阅读全文
posted @ 2010-08-04 17:19 血舞&葬青衣 阅读(458) 评论(0) 推荐(0)
摘要://自绘POPUPMENU,使其强制向上弹出 TrackPopupMenu(Pmu_ReportList.Items.Handle, TPM_BOTTOMALIGN, sPoint.X-cPoint.X,sPoint.Y-cPoint.Y, 0, PopupList.Window, nil); 阅读全文
posted @ 2010-08-04 17:05 血舞&葬青衣 阅读(236) 评论(0) 推荐(0)
摘要:Q: 如何打开一个应用程序? ShellExecute(this-> m_hWnd, "open ", "calc.exe ", " ", " ", SW_SHOW ); 或 ShellExecute(this-> m_hWnd, "open ", "notepad.exe ", "c:/MyLog.log ", " ",SW_SHOW ); Q: 如何打开一个同系统程序相关连的文档? ShellExecute(this-& 阅读全文
posted @ 2010-08-04 16:38 血舞&葬青衣 阅读(255) 评论(0) 推荐(0)
摘要:大概有这些方法可以获得文件大小 FileSizeByName(需要引用IdGlobal单元) GetFileSize FileSize(不能获得正在使用的文件大小) FileSeek TFileStream.Size 下面是使用例子 1。FileSizeByName(需要引用IdGlobal单元) begin if OpenDialog1.Execute then begin ShowMessage(IntToStr(FileSizeByName(OpenDialog1.Filename))); end; 2。GetFileSize var FileHandle:integer; begin 阅读全文
posted @ 2010-08-04 16:37 血舞&葬青衣 阅读(222) 评论(0) 推荐(0)

1