Delphi
qiume
这个作者很懒,什么都没留下…
展开
-
修改MachineReport报表内容
RMReport1.Pages.Pages[0].FindObject('Memo888').Memo.Text := 'Test888';原创 2012-03-30 15:04:41 · 1235 阅读 · 0 评论 -
开源框架 InstantObjects 的代码
(* * InstantObjects * RTTI Interface *)(* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (转载 2010-05-21 14:47:00 · 903 阅读 · 0 评论 -
原来的控件delphi7里何处寻?
经常有朋友提这样的问题,“我原来在delphi5或者delphi6中用的很熟的控件到哪里去了?是不是在delphi7中没有了呢?这是不是意味着我以前写的代码全都不能够移植到delphi7中来了呢?是不是我必须学习适应这些新的控件呢?”现在我就对这一问题进行解释,并对在delphi7中的VCL以及CLX进行一下总结,方便有这方面需求的朋友进行查询其实,我们在原来版本如D5、D6中使用转载 2010-05-24 21:01:00 · 1050 阅读 · 0 评论 -
Socket Select
老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。 这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型。 一:select模型 老陈非常想看到女儿的信。以至于他每隔10分钟就下楼检查信箱,看是否有女儿的信,在这种情况下,“下楼检查信箱”然后回到转载 2010-05-21 14:59:00 · 2019 阅读 · 0 评论 -
Delphi 列出目录下的文件
function ListFiles(Dir: String):TStrings;var FSearchRec: TSearchRec; FileList: TStrings; FindResult: Integer;begin if Dir[length(Dir)]<>/ then Dir:=Dir+/; FileList :=TStringList转载 2010-05-19 16:30:00 · 2682 阅读 · 0 评论 -
Delphi表达式
function ExpCalc(exp: string): string;var vScript: Variant;begin vScript := CreateOleObject(ScriptControl); vScript.Language := VBScript; Result := vScript.Eval(exp);end;proced转载 2010-05-13 16:57:00 · 906 阅读 · 0 评论 -
Delphi中当前获得焦点的控件
Form1.activecontrol;转载 2010-05-14 10:35:00 · 8199 阅读 · 0 评论 -
thread-local variables
<br /> The thread function and any of the routines it calls have their own local variables, just like any other Dephi language routines. These routines also can access any global variables. In fact, global variables provide a powerful mechanism for co转载 2010-06-30 13:40:00 · 721 阅读 · 0 评论 -
怎么用XML传送图像数据
Delphi中有一个EncdDecd单元,uses 它,以下的函数出自这个单元 1.用TBitmap对象Load图片 TBitmap.LoadFromFile 2.把TBitmap存入一个Stream中 TBitmap.SaveToStream(mapStream) 3.把图片流进行base64编码,生成一个字符串流转载 2010-05-03 13:23:00 · 917 阅读 · 0 评论 -
intraweb 破解
TMS和ARCANA的组件为试用版本。可以用ultraedit等编辑二进制文件的软件修改下列五个文件: IWTMSBase.dcu、IWWebGrid.dcu、ArcIWTranslatorBase.dcu、ArcIWControlBase.dcu、ArcIWDlgBase.dcu。 把十六进制代码0173 13A1改为0173 13C3即可。转载 2010-04-10 10:43:00 · 1073 阅读 · 0 评论 -
bpl插件系统开发(3)
上篇说了一些理论的东西,现在总结一下,我们的程序发布时应该想这样子: * 主程序 一个完全由接口驱动的程序,它调用各种接口完成软件的功能.(当然并不是绝对的,如果你的某个功能并不需要外部来提供的化) * 插件s(注意,加了s复数形式) 放在同一目录下,一个完整的插件应该有两个同名文件,一个是含有实现某接口的bpl,一个是描述该插件功能的xml.转载 2010-04-08 22:56:00 · 658 阅读 · 0 评论 -
bpl插件系统开发(5)
在这样的构想下,我们来做一个demos,我们来定义如下的被IMisDriver驱动的接口,加入现在能想到的简单的应用,我们要作的工作如下 1. 定义被驱动的接口 2. 撰写 IMisDriver的一个实现,用它来驱动各个接口,IMisDriver通过调用TPluginLoader的获得接口实例. 3. 撰写每个接口的实现,并生成多个bpl 4. 用TPl转载 2010-04-08 22:58:00 · 632 阅读 · 0 评论 -
bpl插件系统开发(2)
插件规范-----------插件必须实现一个接口,该接口通过 GetObject,SetObject方法让容器和插件能够交互数据.IPlugin = interface [{48BF4000-B028-4B57-9955-B1A8305DA394}] function GetRunResult: TObject; //用于向容器返回执行Execut转载 2010-04-08 22:50:00 · 683 阅读 · 0 评论 -
bpl插件系统开发(4)
我们可以想像这样一个系统,与mvc的思想比较相同,controller负责整个系统的调度,当用户执行了某个action后,controller将其处理后用某个特定的view来呈现给用结果.这就是mvc先看看这个图这图是我用Together6.1画的,关心的设计思想,而不是代码本省,而且together本身也不支持pascal语法生成(不知道有没有插件)其中的IMisDr转载 2010-04-08 22:57:00 · 754 阅读 · 0 评论 -
bpl插件系统开发(1)
半路出家的delphier一如我,对于win32api式的调用有着近乎厌恶的抵触情绪,我很早以前看c++的教程时看到lptrXXXXX的变量就头大,以至于到现在都不会用c++,都不曾写成功过那怕一个hello world程序,所以对于dll式的导出函数后面加stdcall使用右到左的参数调用方式,总觉得没有delphi的美感.再加上看到了许多bpl可以导出类,而dll很麻烦的文章,更是坚定了我的方转载 2010-04-08 22:35:00 · 629 阅读 · 0 评论 -
Socket笔记
TClientSocket OnRead和OnWrite事件:在阻塞方式下,必须调用相应的函数主动去读写数据,并且在读写完成操作之前,调用该函数的线程将处于等待状态,如果线程是应用程序主线程,则整个程序的其他代码将得不到执行。 当处理了错误后将ErrorCode设置为0,则不会出现Delphi错误提示。转载 2010-05-28 11:37:00 · 550 阅读 · 1 评论 -
DLL 返回字符串
<br />//Library var V_String: string; procedure SetString(mStr: PChar); begin V_String := string(mStr); end; function GetString: PChar; begin Result := PChar(V_String); end; excetps SetString,转载 2010-06-03 16:58:00 · 1159 阅读 · 0 评论 -
IsMultiThread
<br />IsMultiThread is set to true to indicate that the memory manager should support multiple threads. IsMultiThread is set to true by BeginThread and class factories.转载 2010-06-03 17:29:00 · 1181 阅读 · 0 评论 -
delphi 即时窗口
Ctrl + F7原创 2012-03-13 10:38:52 · 633 阅读 · 0 评论 -
Delphi 只运行一个实例
begin CreateMutex(nil, True, '互斥对象'); if GetLastError <> ERROR_ALREADY_EXISTS then begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end转载 2012-02-07 14:08:20 · 664 阅读 · 0 评论 -
Delphi 监控文件改变
unit FileSysThread;interfaceuses Windows, SysUtils, Classes, comctrls;type TFileSysNotifyThread = class(TThread) privat转载 2011-10-10 13:33:45 · 4203 阅读 · 0 评论 -
TField OnValidate 事件
Occurs just before the data is written to the record buffer. Write an OnValidate event handler to validate changes made to the data in the field, just before the data is written to the current rec转载 2011-06-29 13:12:00 · 2788 阅读 · 0 评论 -
delphi判断电脑是否安装了excel
uses Registry;procedure TForm1.Button1Click(Sender: TObject);var Reg:TRegistry;begin Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; if Reg.OpenKey(/Excel.Sheet/CurVer,Fal转载 2011-06-21 11:29:00 · 3231 阅读 · 1 评论 -
returns a number of second with no user activity (called in an OnTimer event of a TTimer component).
<br />function SecondsIdle: DWord;var liInfo: TLastInputInfo;begin liInfo.cbSize := SizeOf(TLastInputInfo) ; GetLastInputInfo(liInfo) ; Result := (GetTickCount - liInfo.dwTime) DIV 1000;end;procedure TForm1.Timer1Timer(Sender: TOb转载 2010-11-06 18:00:00 · 540 阅读 · 0 评论 -
Windows 7 环境下 Delphi 7 打开旧项目乱码的问题
<br />引用单元:<br />unit RTLFix;interfaceuses Windows; implementationinitialization SetThreadLocale(LOCALE_SYSTEM_DEFAULT);end.转载 2010-12-02 12:59:00 · 1590 阅读 · 0 评论 -
CopyMemory
<br />The CopyMemory function copies a block of memory from one location to another.转载 2010-06-20 22:02:00 · 449 阅读 · 0 评论 -
取当前行
<br />CurrentLine:=memo1.Perform(EM_LINEFROMCHAR,$FFFF,0);转载 2010-06-18 20:55:00 · 450 阅读 · 0 评论 -
Lo function
<br />Returns the low order Byte of argument X.转载 2010-06-20 21:59:00 · 470 阅读 · 0 评论 -
使用SqlDataReader注意的几点
<br />1、当SqlDataReader没有关闭之前,数据库连接会一直保持open状态,所以在使用SqlDataReader时,使用完毕应该马上调用SqlDataReader.Close()关闭它。<br />2、一个连接只能被一个SqlDataReader使用,这也是为什么要尽早关闭SqlDataReader的原因。<br />3、使用完SqlDataReader后,你可以在程序中显示的调用数据库连接对象的Close方法关闭连接,也可以在调用Command对象的ExecuteReader方法时转载 2010-06-17 16:39:00 · 545 阅读 · 0 评论 -
dll 事例
<br />//Library var V_String: string; procedure SetString(mStr: PChar); begin V_String := string(mStr); end; function GetString: PChar; begin Result := PChar(V_String); end; excetps SetString,转载 2010-06-13 22:55:00 · 384 阅读 · 0 评论 -
Dll 代码
<br />var OldDllProc: TDLLProc;procedure ThisDllProc(Reason: Integer);begin if Reason = DLL_THREAD_ATTACH then IsMultiThread := True; // for FastMM // for ADO case Reason of DLL_PROCESS_ATTACH, DLL_THREAD_ATTACH:CoInitialize(转载 2010-06-13 22:42:00 · 648 阅读 · 0 评论 -
Delphi json
<br />http://gordonliwei.spaces.live.com/Blog/cns!CCE1F10BD8108687!3766.entry转载 2010-06-12 00:29:00 · 585 阅读 · 0 评论 -
Delphi 登录窗体
procedure TMainForm.FormCreate(Sender: TObject);var LoginForm: TfrmLogin;begin Application.ShowMainForm := False; LoginForm := TfrmLogin.Create(Self); if LoginForm.ShowModal = MrCancel转载 2010-04-02 20:58:00 · 1517 阅读 · 0 评论 -
THashedStringlist 应用实例
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IniFiles, Buttons;type TForm1 = class(TForm) BitBtn1: TBitBtn;转载 2010-04-05 10:34:00 · 990 阅读 · 0 评论 -
深入TClientDataSet
与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端。TClientDataSet最大的特点是它不依赖于BDE(Borland Database Engine),但它需要一个动态链接库的支持,这个动态链接库叫DBCLIENT.DLL。在客户端,也不需要用TDatabase构件,因为客户端并不直接连接数据库。 由于TClie转载 2009-03-06 14:41:00 · 3095 阅读 · 0 评论 -
Delphi接口
type IInterface = interface [{00000000-0000-0000-C000-000000000046}] //接口的GUID function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; function _AddRef: Integer; std原创 2009-03-02 13:59:00 · 1425 阅读 · 1 评论 -
Delphi生成随机数
procedure TForm1.Button1Click(Sender: TObject);begin Randomize; // 初始化,也可以将值赋予 RandSeed Random(1000); // 生成 大于等于0且小于1000 的随机数end; 需要注意的一点是:如果在循环内生成随机数,只需在循环开始前执行一次初始化,如:var // 摘于Del原创 2009-02-27 14:20:00 · 7170 阅读 · 0 评论 -
Delphi对象的default数组属性
uses Contnrs; // 这个单元包含Delphi新增的容器对象,比如TObjectList// TList的缺省数组属性 property Items[Index: Integer]: Pointer read Get write Put; default;procedure TForm1.Button1Click(Sender: TObject);var原创 2009-03-02 11:59:00 · 2643 阅读 · 0 评论 -
在Delphi中实现对目录拷贝、删除和搬移的操作
{在工作中遇到了需要对目录进行拷贝、删除和搬移的需求,Delphi本身提供了一些目录操作函数,但只是针对空目录而言,对目录下带有子目录的情况,更是无能为力。利用Win32 API函数和结构,以及递归的程序设计思想,笔者实现了对任意目录进行拷贝、删除和搬移的功能(分别相当于DOS中的XCopy、DelTree和Move命令)。以下分别给出了实现代码:}//1、拷贝目录//为了能拷贝目转载 2009-02-24 11:42:00 · 729 阅读 · 0 评论 -
Delphi选择文件夹
uses FileCtrl;function SelectDirectory(var Directory: string; // 英文对话框 Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload;function SelectDirectory(const Caption: string; // 中文对话框原创 2009-02-24 10:20:00 · 3417 阅读 · 0 评论