|
摘要:DDE(Dynamic Data Exchange),称为动态数据交换。用于进程间的通讯,看看他如何来和Word交互。在System页签下有TDdeClientConv组件,拖一个放到界面上,然后我们写如下代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleServer, StdCtrls, DdeMan;type TForm1 = class(TForm) Button1: TButton; Dde...
阅读全文
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls;type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; procedure FormCreate(Sender: TObject); private { Private declara...
阅读全文
摘要:PMouseHookStruct = ^TMouseHookStruct; {$EXTERNALSYM tagMOUSEHOOKSTRUCT} tagMOUSEHOOKSTRUCT = packed record pt: TPoint; hwnd: HWND; wHitTestCode: UINT; dwExtraInfo: DWORD; end; TMouseHookStruct = tagMOUSEHOOKSTRUCT;library Mouse_HookDLL;{ Important note about DLL memory management: S...
阅读全文
摘要:数据库结构:包括两张表BaseData和UserRightData,BaseData中是一张基本表,里面不区分用户,UserRightData是用户权限表,结构和BaseData一样,只是多了用户字段,增加用户时,就是从BaseData表中复制数据到UserRightData中,并标识用户ID。字段说明:FucCode:该字段与控件tag对应FucName:功能名称IsSel:是否有权限的标志IsFuc:标识该项是否是可以执行的功能FucPID:父节点ID,用来生成树形结构时用权限管理单元:UserRightCenterunit UserRightCenter;interfaceuses W.
阅读全文
摘要:procedure TUIOperate.FillTree(treeview: TTreeView);var findq: TADOQuery; node: TTreeNode; //这个方法是根据记录的id字段值,查找TreeView上的父节点 function FindParentNode(id:Integer):TTreeNode; var i:Integer; begin Result := nil; for i := 0 to treeview.Items.Count - 1 do begin //比较Node的Data值和记录的id值 ...
阅读全文
摘要:关键字:MethodAddress:取得方法的地址,这个方法需要是published的。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TShowInfo = procedure(info:string) of object; //声明一个procedure类型,参数和ShowInfo一致 TForm1 = class(TForm) Button1: TButton; pr...
阅读全文
摘要:这是DLL的代码library MyDll;uses SysUtils, Dialogs, Classes;procedure ShowInfo(info:PChar);stdcall;begin ShowMessage('您选择了【'+info+'】');end;function GetCaption:Pchar;begin Result := '中国';end;exports ShowInfo, GetCaption;{$R *.res}beginend.View Code 这是调用窗体的代码本例只使用了一个DLL,所以当有多个DLL时,需要
阅读全文
摘要:SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_LAYERED ); WS_EX_ACCEPTFILES = 0x00000010 指明了一个已创建视窗具有拖拽文件功能 WS_EX_APPWINDOW = 0x00040000 强制一个可见的顶级视窗到工具栏上 WS_EX_CLIENTEDGE = 0x00000200 使一个视窗具有凹陷边框 WS_EX_COMPOSITED = 0x02000000 Windows XP:...
阅读全文
摘要:1.FastReport中如果访问报表中的对象?可以使用FindObject方法。TfrxMemoView(frxReport1.FindObject(’memo1′)).Text:=’FastReport’;2.FastReport中如何使用上下标?设置frxmemoview.AllowHTMLTags := True;在Text输入如下上标:mm2下表:k6举一反三,你还可以使用其他HTML标记。3.FastReport中如何打印总页数?设置两次报表后加入引号内内容 “第[Page#]页 共[TotalPages#]页”4.FastReport中如何动态加入变量及变量组?建立变量组名frx
阅读全文
摘要:1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, StdCtrls; 8 9 type10 TForm1 = class(TForm)11 Button1: TButton;12 Button2: TButton;13 Button3: TButton;14 procedure Button1Click(Sender: TObject);15 ...
阅读全文
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, Buttons, ExtCtrls, TrayIconForm, AppEvnts; type TShareInfo = record Actived : array [ 1..4 ] of boolean; end; PShareInfo = ^TShareInfo; ...
阅读全文
摘要:要求:一个EXE,如何将它做成这样的效果:1、双击它时,像一个FORMS程序那样正常显示窗体运行。2、注册成系统服务,每次都可以从service.msc中启动它。也就是说,没注册之前,它可以当作普通FORMS程序运行,注册之后,它就可以当系统服务运行。做法:参考Delphi 里面scktsrvr的源代码,Program Files/Borland/Delphi7/Bin 搜索scktsrvr 就会看到有个scktsrvr.dpr,查看它的工程源程序,原理:在启动程序时,通过启动的方式来决定如何加载程序。必须的地方使用红色标记:program RODBLayer;{#ROGEN:RODBLaye
阅读全文
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type //定义接口如果接口独立成一个文件,则在应用程序中和实现程序中都要引用该接口文件; ICar = interface (IInterface) ['{ED52E264-6683-11D7-B847-001060806215}'] procedure drive; end; //接口实现类1,一定要加入Tint...
阅读全文
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;const TIMER_ID = 200;type TForm1 = class(TForm) Label1: TLabel; btkilltime: TButton; btsettime: TButton; procedure Button1Click(Sender: TObject); procedure btkilltimeCl...
阅读全文
摘要:实例1 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; constWM_ME=WM_USER+100; //自定义消息; type TForm1 = class(TForm) Button1: TButton;procedure Button1Click(Sender: TObject);//第一种消息处理方式; 只能处理常量消息; procedure wmme(var message:T...
阅读全文
摘要:TUniConnection的SpecificOptions参数决定了数据库连接配置参数,但可惜的是,SpecificOptions设计器界面,Devart公司只能让它在设计期配置!SpecificOptions参数为什么那么有用呢?举个例子讲,如果你要连接MSSQL,可能碰到老版本的OLEDB或者当下的NativeClient版本,具体参数可选为:prAuto、prSQL、prNativeClient、prCompact。因此,我们如果自己做界面参数配置,必须获取SpecificOptions默认值和下拉框表列表值。首先在界面上放TUniConnection,设置ProviderName为S
阅读全文
摘要:var BmpPath: PChar;begin BmpPath := 'C:\Temp\Test.bmp'; SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BmpPath, SPIF_UPDATEINIFILE);end;函数原型BOOL WINAPI SystemParametersInfo( _In_UINT uiAction, _In_UINT uiParam, _Inout_PVOID pvParam, _In_UINT fWinIni);SPI_GETBEEP = 1; {} SPI_SETBEEP ...
阅读全文
摘要:在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示.但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢?FormatMessage 可以, 但这个函数太复杂了; 可以用 SysErrorMessage 代替它.举例:var err: string; ErrorCode: DWORD;begin ErrorCode:=GetLastError; ShowMessage(IntToStr(ErrorCode)); err := SysErrorMessage(ErrorCode); ShowMessage(err); {操作
阅读全文
摘要:; not allowed before ELSEElSE前不允许有“;” clause not allowed in OLE automation section在OLE自动区段不允许“”子句 is not a type identifier不是类型标识符 not previously declared as a PROPERTY前面没有说明PROPERTYGOTO leads into or out of TRY statement GOTO进入或超出TRY语句的范围 clause expected, but found要求子句,但出现16-Bit fixup encountered ..
阅读全文
摘要:Windows 数据类型Delphi 数据类型描述LPSTRPAnsiChar字符串指针LPCSTRPAnsiChar字符串指针DWORDLongWord整数BOOLLongBool布尔型PBOOL^BOOL指向布尔值的指针PByte^Byte指向字节值的指针PINT^Integer指向整数值的指针PSingle^Single指向单精度浮点值的指针PWORD^Word指向16位值的指针PDWORD^DWORD指向32位值的指针LPDWORDPDWORD指向32位值的指针UCHARByte8位值(可用来表示字符)PUCHAR^Byte指向8位值的指针SHORTSmallint带符号16位整数UI
阅读全文
|