大悟还俗

邮箱 key_ok@qq.com 我的收集 http://pan.baidu.com/share/home?uk=1177427271
  新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年11月18日

摘要: 我们知道在文本框等可以接收输入的组件中,我们可以看到闪烁的光标,并可以输入文字,如果我们在,比如窗体上时,因为不支持输入,也无法显示闪烁的光标,那我们 有办法做自己的输入吗?当然可以,下面我们演示在Form上来输入文字。 用到的API函数如下GetTextMetrics:获取程序当前的字体信息,存放到TEXTMETRIC结构中CreateCaret:为系统插入标记创建一个新的形状,并且将插入标记的属主关系指定给特定的窗口。插入标记的形状。可以是线、块或位图ShowCaret:显示光标SetCaretPos:设置光标的位置unit Unit1;interfaceuses Windows, Me. 阅读全文

posted @ 2013-11-18 17:20 大悟还俗_2 阅读(633) 评论(0) 推荐(0) 编辑

摘要: RTTI需要引用单元TypeInfo至于RTTI的数据结构,大家可以参考TypeInfo单元的代码看例子,先为大家介绍一下根据字符串找到属性,并且对其修改的例子根据属性字符串找到属性,并修改属性GetPropInfo 函数用于获得属性的 RTTI 指针 PPropInfo。它有四种重载形式,后面三种重载的实现都是调用第一种形式。AKinds 参数用于限制属性的类型,如果得到的 PPropInfo 不属于指定的类型,则返回 nil。 function GetPropInfo(TypeInfo: PTypeInfo; const PropName: string): PPropInfo; func 阅读全文

posted @ 2013-11-18 17:19 大悟还俗_2 阅读(263) 评论(0) 推荐(0) 编辑

摘要: 功能: 根据省份更新地市信息-------------------------------------------------------------------------------}procedure TForm.GetCityInfo;var iXMLAreaFile : IXMLDocument; sFileName,aProvince,sProvince,sCity : string; nCol,nNum,nCityCount,nprovinceCount : Integer;begin iXMLAreaFile := TXMLDocument.create(nil)... 阅读全文

posted @ 2013-11-18 17:15 大悟还俗_2 阅读(980) 评论(0) 推荐(0) 编辑

摘要: procedure CreateParams(var Params: TCreateParams); override; procedure MainForm.Createparams(var Params: TCreateParams);begin inherited; With Params do begin WndParent := Application.MainForm.Handle; Params.ExStyle := WS_EX_TOPMOST; end;end;View Code 阅读全文

posted @ 2013-11-18 17:12 大悟还俗_2 阅读(510) 评论(1) 推荐(0) 编辑

摘要: 例如对windows发消息让文本选中。 SendMessage(Text1.hwnd,EM_GETSEL,0,-1); EC_LEFTMARGIN(&H1) EC_USEFONTINF //设置左边距时使用EC_RIGHTMARGIN EC_USEFONTINF //设置右边距时使用EC_USEFONTINF,O//边距 设置编辑控件的左、右边距,当wParam含EC_LEFTMARGIN时在lParam的低16位指定左边距点数,当wParam含EC_RIGHTMARGIN时在lParam的高16位指定右边距点数。当指定wParam为EC_USEFONTINFO时,则用当前字体的字符& 阅读全文

posted @ 2013-11-18 15:02 大悟还俗_2 阅读(404) 评论(0) 推荐(0) 编辑

摘要: library Hook;uses SysUtils, Windows, Classes, ApiDefine in 'ApiDefine.pas', APIHook in 'APIHook.pas';{$R *.res}var HookHandle: HHook;function HookProc(code:Integer;wparam:WPARAM;lparam:LPARAM):LRESULT;stdcall;begin Result := CallNextHookEx(HookHandle,code,wparam,lparam);end;procedure 阅读全文

posted @ 2013-11-18 10:37 大悟还俗_2 阅读(312) 评论(0) 推荐(0) 编辑

摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;type //导入表元素结构 TImageImportDiscriptor = packed record OriginalFirstThunk: DWORD; DataTimpStamp: DWORD; ForwardChain: DWORD; DLLName: DWORD; FirstThunk: D... 阅读全文

posted @ 2013-11-18 10:36 大悟还俗_2 阅读(634) 评论(0) 推荐(0) 编辑

摘要: uses mshtml, ActiveX;//初始加载网易主页procedure TForm1.FormCreate(Sender: TObject);begin Webbrowser1.Navigate('http://www.163.com/');end;procedure TForm1.Button1Click(Sender: TObject);varI: Integer;Document: IHTMLDocument2;Element: IHTMLElement;Anchors: IHTMLElementCollection;sLink: string;begin // 阅读全文

posted @ 2013-11-18 10:32 大悟还俗_2 阅读(237) 评论(0) 推荐(0) 编辑

摘要: 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... 阅读全文

posted @ 2013-11-18 10:30 大悟还俗_2 阅读(312) 评论(0) 推荐(0) 编辑

摘要: 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... 阅读全文

posted @ 2013-11-18 10:29 大悟还俗_2 阅读(453) 评论(1) 推荐(0) 编辑

摘要: 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... 阅读全文

posted @ 2013-11-18 10:27 大悟还俗_2 阅读(414) 评论(0) 推荐(0) 编辑

摘要: 数据库结构:包括两张表BaseData和UserRightData,BaseData中是一张基本表,里面不区分用户,UserRightData是用户权限表,结构和BaseData一样,只是多了用户字段,增加用户时,就是从BaseData表中复制数据到UserRightData中,并标识用户ID。字段说明:FucCode:该字段与控件tag对应FucName:功能名称IsSel:是否有权限的标志IsFuc:标识该项是否是可以执行的功能FucPID:父节点ID,用来生成树形结构时用权限管理单元:UserRightCenterunit UserRightCenter;interfaceuses W. 阅读全文

posted @ 2013-11-18 10:26 大悟还俗_2 阅读(452) 评论(0) 推荐(0) 编辑

摘要: 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值 ... 阅读全文

posted @ 2013-11-18 10:23 大悟还俗_2 阅读(323) 评论(0) 推荐(0) 编辑

摘要: 关键字: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... 阅读全文

posted @ 2013-11-18 10:22 大悟还俗_2 阅读(210) 评论(0) 推荐(0) 编辑

摘要: 这是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时,需要 阅读全文

posted @ 2013-11-18 10:21 大悟还俗_2 阅读(393) 评论(0) 推荐(0) 编辑

摘要: 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:... 阅读全文

posted @ 2013-11-18 10:18 大悟还俗_2 阅读(1639) 评论(0) 推荐(0) 编辑

摘要: 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 阅读全文

posted @ 2013-11-18 10:17 大悟还俗_2 阅读(431) 评论(0) 推荐(0) 编辑

摘要: 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 ... 阅读全文

posted @ 2013-11-18 10:15 大悟还俗_2 阅读(282) 评论(0) 推荐(0) 编辑

2013年11月11日

摘要: 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; ... 阅读全文

posted @ 2013-11-11 13:06 大悟还俗_2 阅读(683) 评论(1) 推荐(0) 编辑

摘要: 要求:一个EXE,如何将它做成这样的效果:1、双击它时,像一个FORMS程序那样正常显示窗体运行。2、注册成系统服务,每次都可以从service.msc中启动它。也就是说,没注册之前,它可以当作普通FORMS程序运行,注册之后,它就可以当系统服务运行。做法:参考Delphi 里面scktsrvr的源代码,Program Files/Borland/Delphi7/Bin 搜索scktsrvr 就会看到有个scktsrvr.dpr,查看它的工程源程序,原理:在启动程序时,通过启动的方式来决定如何加载程序。必须的地方使用红色标记:program RODBLayer;{#ROGEN:RODBLaye 阅读全文

posted @ 2013-11-11 13:05 大悟还俗_2 阅读(311) 评论(0) 推荐(0) 编辑

摘要: 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... 阅读全文

posted @ 2013-11-11 13:04 大悟还俗_2 阅读(375) 评论(0) 推荐(0) 编辑

摘要: 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... 阅读全文

posted @ 2013-11-11 13:03 大悟还俗_2 阅读(700) 评论(0) 推荐(0) 编辑

摘要: 实例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... 阅读全文

posted @ 2013-11-11 13:02 大悟还俗_2 阅读(866) 评论(0) 推荐(0) 编辑

2013年11月9日

摘要: http://www.cnblogs.com/ChinaEHR/archive/2013/10/14/3368299.htmlhttp://www.raysoftware.cn/?p=378http://www.hxhlb.cn/article/32142aaeb67bbc05379369c3.htmlAndroid Sdk Base Path ***************** D:\adt-bundle-windows-x86_64-20130917\sdk Android Ndk Base Path ***************** D:\android-ndk-r9出... 阅读全文

posted @ 2013-11-09 15:35 大悟还俗_2 阅读(207) 评论(0) 推荐(0) 编辑

2013年11月8日

摘要: 万事大吉,只欠根据字体文件(.ttf文件)切换阅读字体,通常Android系统只带三种以下字体.一般用Java/Eclipse开发的话比较简单,typeface的createFromAsset,createFromFile之类的很容易使用.但是由于FireMonkey是跨平台的类库,必然不能和平台帮得太紧,所以提供了抽象的封装.但是也许Delphi XE5是Android平台的第一个版本,有些地方难免有疏漏,FireMonkey的封装没有提供更换字体的功能.但是我要实现的电子书阅读器换字体几乎是必须要实现的功能,所以只能给FireMonkey动动小手术了.FireMonkey的字体加载是由抽象 阅读全文

posted @ 2013-11-08 16:33 大悟还俗_2 阅读(594) 评论(0) 推荐(0) 编辑

摘要: TUniConnection的SpecificOptions参数决定了数据库连接配置参数,但可惜的是,SpecificOptions设计器界面,Devart公司只能让它在设计期配置!SpecificOptions参数为什么那么有用呢?举个例子讲,如果你要连接MSSQL,可能碰到老版本的OLEDB或者当下的NativeClient版本,具体参数可选为:prAuto、prSQL、prNativeClient、prCompact。因此,我们如果自己做界面参数配置,必须获取SpecificOptions默认值和下拉框表列表值。首先在界面上放TUniConnection,设置ProviderName为S 阅读全文

posted @ 2013-11-08 16:24 大悟还俗_2 阅读(635) 评论(0) 推荐(0) 编辑

摘要: 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 ... 阅读全文

posted @ 2013-11-08 01:02 大悟还俗_2 阅读(561) 评论(0) 推荐(0) 编辑

2013年11月7日

摘要: 在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示.但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢?FormatMessage 可以, 但这个函数太复杂了; 可以用 SysErrorMessage 代替它.举例:var err: string; ErrorCode: DWORD;begin ErrorCode:=GetLastError; ShowMessage(IntToStr(ErrorCode)); err := SysErrorMessage(ErrorCode); ShowMessage(err); {操作 阅读全文

posted @ 2013-11-07 11:28 大悟还俗_2 阅读(378) 评论(0) 推荐(0) 编辑

摘要: ; 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 .. 阅读全文

posted @ 2013-11-07 11:27 大悟还俗_2 阅读(227) 评论(0) 推荐(0) 编辑

摘要: 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 阅读全文

posted @ 2013-11-07 11:24 大悟还俗_2 阅读(152) 评论(0) 推荐(0) 编辑

摘要: 分类运算符操作操作数结果类型范例算术运算符+加整数,实数整数,实数X + Y-减整数,实数整数,实数Result - 1*乘整数,实数整数,实数P * InterestRate/实数除整数,实数实数X / 2div整数除整数整数Total div UnitSizemod取模整数整数Y mod 6+(一元)符号等同整数,实数整数,实数+7-(一元)符号相反整数,实数整数,实数-X布尔运算符not否定布尔型Booleannot (C in MySet)and与布尔型BooleanDone and (Total > 0)or或布尔型BooleanA or Bxor异或布尔型BooleanA x 阅读全文

posted @ 2013-11-07 11:23 大悟还俗_2 阅读(184) 评论(0) 推荐(0) 编辑

摘要: 指令参数存放位置参数传递顺序参数内存管理适用地点registerCPU寄存器从左到右被调用者默认,published 属性存取方法必须使用pascal栈从左到右被调用者向后兼容cdecl栈从右到左调用者调用 C++ 共享库stdcall栈从右到左被调用者API 调用safecall栈从右到左被调用者API 调用,如果回调函数;双接口方法必须使用其他指令near far export inline assemble 等,曾经在16下使用 阅读全文

posted @ 2013-11-07 11:22 大悟还俗_2 阅读(171) 评论(0) 推荐(0) 编辑

摘要: Delphi数据类型C/C++ShorInt8位有符号整数charByte8位无符号整数BYTE,unsigned shortSmallInt16位有符号整数shortWord16位无符号整数unsigned shortInteger,LongInt32位有符号整数int,longCardinal,LongWord/DWORD32位无符号整数unsigned longInt6464位有符号整数_int64Single4字节浮点数float*Real486字节浮点数 Doubles8字节浮点数double*Extended10字节浮点数long doubleCurrency64位货币类型 TDa 阅读全文

posted @ 2013-11-07 11:20 大悟还俗_2 阅读(167) 评论(0) 推荐(0) 编辑

摘要: 出现runtime error临时解决办法,于注册表位置中找到如下键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Gdiplus,然后把键DisableTIFFCodec的值置为0..原微软提供的临时修复方法为关闭TIFF文件功能,此方法是重新打开漏洞影响的功能..错误信息形式为: Run-time error nnn at xxxx; 其中nnn是运行时的错误编号; xxxx是运行时的错误地址.编号说明I/O错误: (编号100-149)100磁盘读错误,若要对超过格式文件尾进行读取时101磁盘写错误,若磁盘满时,由CloseFile,Write,Writel 阅读全文

posted @ 2013-11-07 11:09 大悟还俗_2 阅读(1233) 评论(0) 推荐(0) 编辑

摘要: auxGetDevCaps API 获取附属设备容量auxGetNumDevs API 返回附属设备数量auxGetVolume API 获取当前卷设置auxOutMessage API 向输出设备发送消息auxSetVolume API 设置附属设备卷AbortDoc API 终止一项打印作业AbortPath API 终止或取消DC中的一切路径AbortPrinter API 删除打印机缓冲文件AbortSystemShutdown API 停止系统工作AccessCheck API 检验客户访问权限AccessCheckAndAuditAlarm API 检验访问,产生声音或警报Acti 阅读全文

posted @ 2013-11-07 10:41 大悟还俗_2 阅读(483) 评论(0) 推荐(0) 编辑

2013年11月5日

摘要: 第一部分 认识ARM,方案商,GPU1, 芯片1.1 ARMARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片. 正是因为这样,各家都采用了自己的编号来命名,所以CPU型号较为复杂.1.2 RISC & CISC市场上可见到的处理器大致 阅读全文

posted @ 2013-11-05 14:11 大悟还俗_2 阅读(400) 评论(0) 推荐(0) 编辑

2013年11月2日

摘要: 开发者之前说明 http://docwiki.embarcadero.com/RADStudio/XE5/en/Release_Notes_for_XE5 阅读全文

posted @ 2013-11-02 14:41 大悟还俗_2 阅读(204) 评论(0) 推荐(0) 编辑

2013年11月1日

摘要: 第一部分: 1. 设置ADOConnection的ConnectionString属性的OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider(这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件),按 "下一步"按钮 2. 选择数据库名称。注意:Excel的扩展名是*.xls,而默认文件类型是Microsoft Access 数据库(*.mdb), 我们就选择"全部文件(*.*)"吧,接着选择我们要连接的Excel文件咯!!如果在当前路径,就直接填2007.xls。 这时先别慌按 "测试 阅读全文

posted @ 2013-11-01 10:38 大悟还俗_2 阅读(449) 评论(0) 推荐(0) 编辑

摘要: 原对: 飞雪连天射白鹿, 笑书神侠倚碧鸳。这副包含了金庸十四部小说,读起来却浑然天成的对联大概要数70年代人念得最顺口。熟读金庸小说的人们很容易知道,这幅对联,是用金庸的十四部武侠小说书名的第一个字连缀而成的。事实上,这幅对联非常具有比喻意味,可以概括金庸、巴金、鲁迅的某些共点。 飞—《飞狐外传》(1960年) 雪—《雪山飞狐》(1959年) 连—《连城诀》(1963年) 天—《天龙八部》(1963年) 射—《射雕英雄传》(1957年)--金庸“射雕三部曲”之第一部曲,也是其成名作;被金庸小说的读者称为“侠文化的歌颂” 白—《白马啸西风》(1961年)--附在“雪山飞狐... 阅读全文

posted @ 2013-11-01 00:17 大悟还俗_2 阅读(221) 评论(0) 推荐(0) 编辑

2013年10月29日

摘要: http://www.ccrun.com/ C++Builder 阅读全文

posted @ 2013-10-29 15:41 大悟还俗_2 阅读(291) 评论(0) 推荐(0) 编辑