非COM环境下的接口编程------问题,技巧,应用先行知识:Delphi/接口/Dll/OOP难度:★★★☆☆引子:接口的概念由来已久,早在COM出现之前(COM应该是95年左右)接口的概念就已经在面向对象的开发中根深蒂固了,著名的《设计模式》(94年出版)中也指出“针对接口编程而不是针对实现编程”。使用接口可以降低软件系统中不同模块的偶合性,利于软件系统的更新与维护。接口的优点绝对不只是出现在COM中,事实上在大多数的编程任务中接口都是一个不错的选择。(用delphi开发过Web Service的朋友知道,delphi也是使用接口来描述Web Methord的,所以接口的概念在面向对象领域 Read More
posted @ 2011-01-16 16:38 血舞&葬青衣 Views(144) Comments(0) Diggs(0) Edit
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 Read More
posted @ 2010-09-25 23:49 血舞&葬青衣 Views(396) Comments(0) Diggs(0) Edit
//找到指定位置,并将文字插入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, Read More
posted @ 2010-09-25 23:46 血舞&葬青衣 Views(260) Comments(0) Diggs(0) Edit
以前也曾经为 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, Read More
posted @ 2010-09-12 17:05 血舞&葬青衣 Views(750) Comments(0) Diggs(0) Edit
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( Read More
posted @ 2010-09-10 17:37 血舞&葬青衣 Views(242) Comments(0) Diggs(0) Edit
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 Read More
posted @ 2010-09-10 17:36 血舞&葬青衣 Views(217) Comments(0) Diggs(0) Edit
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, ... Read More
posted @ 2010-09-10 17:02 血舞&葬青衣 Views(527) Comments(0) Diggs(0) Edit
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相连中,即 Read More
posted @ 2010-09-06 15:53 血舞&葬青衣 Views(369) Comments(0) Diggs(0) Edit
DELPHI打开窗体时,提示父类文件找不到 这两天,使用工程中突然在打开窗体的时候出错,大概的意思就是找不开父类文件(因为我是从其他窗体继承过来的)。但如果先打开父类窗体 又不会出错。搞了很久,没有搞定。系统也重装,还是不行。最后看到下面这遍文章才解决。 我的方法是,把父类窗体全部从工程中移除,再从新添加进来就OK了。 有的时候,我们会碰到一些比较烦人的东西,打开某个继承的窗体,会提示说基类窗体找不到,并且找不开这个窗体,必须先打开基类窗体,然后再打开此窗体,才可以进行设计模式。其实出现这种情况的原因,就是因为工程dpr文件中,没有添加此基类的Form文件造成的,多是由于系统移植造成的,你也可 Read More
posted @ 2010-08-30 10:54 血舞&葬青衣 Views(289) Comments(0) Diggs(0) Edit
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;... Read More
posted @ 2010-08-28 13:05 血舞&葬青衣 Views(305) Comments(0) Diggs(0) Edit