大悟还俗

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

2014年1月25日

摘要: 当A D O开始处理数据后,应用程序必须等到A D O处理完毕之后才可以继续执行。但是除了同步执行方式之外, A D O也提供了异步执行的方式,允许当A D O处理时,应用程序仍然能够先继续执行。而当A D O处理数据完毕之后, A D O会以事件的方式通知应用程序,此时应用程序可以再根据A D O执行的结果来采取相应的动作。使用异步执行方式有许多用途,例如,如果应用程序需要处理花费大量时间的动作,那么A D O可以选择以异步执行方式让A D O在后台执行,而让应用程序继续处理图形用户接口或用户输入的数据。在A D O中使用异步执行方式非常简单,只需要对A D O数据集的E x e c u t 阅读全文

posted @ 2014-01-25 17:41 大悟还俗_2 阅读(1053) 评论(0) 推荐(0) 编辑

摘要: 在Form1中添加控件:两个Indy控件:IdAntiFreeze1,IdHTTP1;一个按钮 :Button1;一个进度条 :ProgressBar1 显示下载速度procedure TForm1.Button1Click(Sender: TObject);varMyStream:TMemoryStream;beginIdAntiFreeze1.OnlyWhenIdle:=False;//设置使程序有反应.MyStream:=TMemoryStream.Create;try//http://www.delphitop.com/IdHTTP1.Get('http://www.appco 阅读全文

posted @ 2014-01-25 16:18 大悟还俗_2 阅读(1959) 评论(0) 推荐(0) 编辑

2014年1月24日

摘要: Windows使用剪贴板观察器和观察链。剪贴板观察器是一个显示剪贴板当前内容的窗口。 通常它应该至少能显示三种普通格式的内容:文字CF_TEXT、位图CF_BITMAP、元文件CF_MET AFILEPICT。剪贴板观察链是一系列相互独立的剪贴板观察窗口,它们都能够接受当前发送 到剪贴板的内容。我们大致按照以下步骤在窗口中处理有关剪贴板的内容。 首先,使用SetClipboardViewer(HWND)函数向剪贴板观察链中加入一个观察窗口。当剪 贴板的内容发生变化时,该窗口会接收到一个WM_DRAWCLIPBOARD消息。该函数需要传递的参 数是观察窗口的句柄。返回值也是一个窗口句柄类型,标识 阅读全文

posted @ 2014-01-24 17:30 大悟还俗_2 阅读(1824) 评论(0) 推荐(0) 编辑

摘要: 原文 :http://blogs.embarcadero.com/sarinadupont/2013/10/16/how-to-load-custom-styles-at-runtime/How to load custom styles at runtimeDuring my session at CodeRage, I briefly talked about how to load custom styles at runtime. I wanted to elaborate on this topic and provide some detailed steps.In this ex 阅读全文

posted @ 2014-01-24 17:28 大悟还俗_2 阅读(290) 评论(0) 推荐(0) 编辑

摘要: http://www.cnblogs.com/del/category/323943.html 记录一下, 作为目录 阅读全文

posted @ 2014-01-24 01:10 大悟还俗_2 阅读(258) 评论(0) 推荐(0) 编辑

摘要: 原文 http://monkeystyler.com/guide/Custom-Grid-Columnsack to FireMonkey TopicsAs we saw in TGrid a FireMonkey grid consists of columns which contain cells made of any descendant of TStyledControl. Or, effectively, any control. A number of column types come built in but it is a pretty simple matter to 阅读全文

posted @ 2014-01-24 01:03 大悟还俗_2 阅读(722) 评论(0) 推荐(0) 编辑

摘要: TOSVersion增加了一个记录类型:TOSVersion,看名字就知道它和版本功能有关,这比之前的函数好用多了,其实以前也没必要有它,这回是跨平台了才需要它。它可以获知当前运行环境是 x86,还是 x64,是 windows,还是 mac,并且还能得到操作系统的具体版本号,还可以方便的判断当前版本是否高于某个版本。它还有个叫 ToString() 的方法,它返回的结果符合直觉,就是一个格式化过的版本信息文本,而不是象以往 vcl 中的 ToString() 那样返回一个坑爹的类名称,比如在我的机子上是这样 Windows 7 (Version 6.1, Build 7600, 64-bit 阅读全文

posted @ 2014-01-24 01:01 大悟还俗_2 阅读(339) 评论(0) 推荐(0) 编辑

摘要: 有了 FireMonkey 框架,它不同于 VCL ,以往的数据感知控件不能放在它上面,所以 XE2 提供了 LiveBindings 功能作为替代方案。另外它也是个通用的基础设施,同样可用于传统的VCL 这里用一个极简化的例子说明它的意图,在窗体上放一个 edit 和一个 label,找到 label 的 LiveBindings 属性,选 New LiveBinding... ,再选择 TBindExpression 然后设置属性如图所示 这样就把 edit 的 text 属性和 label 的 caption 属性绑定起来了,不用写任何代码。运行后,会看到 label 的内容就是 e.. 阅读全文

posted @ 2014-01-24 00:58 大悟还俗_2 阅读(687) 评论(0) 推荐(0) 编辑

摘要: 原文http://www.malcolmgroves.com/blog/?p=1084一、新建VCL工程加入TAdapterBingSource控件二、定一个TPerson类MyPerson : TPerson; TPerson = class private FAge: Integer; FLastname: string; FFirstname: string; public constructor Create(const Firstname, Lastname : string; Age : Integer); virtual; property Fi... 阅读全文

posted @ 2014-01-24 00:49 大悟还俗_2 阅读(1474) 评论(0) 推荐(0) 编辑

摘要: Component LogoComponent NameDescriptionTBindSourceDBIs used for creating bindings to databases. 创建数据库绑定TPrototypeBindSourceProvides a data source for generating sample data that you can use to get started when you do not already have data to start with. Later you can replace this data source with so 阅读全文

posted @ 2014-01-24 00:04 大悟还俗_2 阅读(495) 评论(0) 推荐(0) 编辑

2014年1月22日

摘要: Delphi XE5 и MongoDB (продолжение)Продолжаем конспект из предыдущего постаhttp://blogs.embarcadero.com/asovtsov/index.php/archives/615, посвященного разбирательству, можно ли разрабатывать приложения на Delphi XE5, получающие и сохраняющие данные в БД MongoDB.Установка драйвера, сборка тестовых прим 阅读全文

posted @ 2014-01-22 18:11 大悟还俗_2 阅读(274) 评论(0) 推荐(0) 编辑

2014年1月21日

摘要: 在XE4中编写完程序后,怎么把相应的文件部署到ios虚拟机和真实机子中呢?下面就来说说。首先选择你要部署的项目,选择Project-》Deployment菜单Deployment菜单打开如下通过按钮把程序所需要的数据文件加载进来,在Remote Path中设置的值为StartUp\Documents。因为代码中取出该文件的路径的代码是begin{$IFDEF IOS} UniConnection1.database:= GetHomePath + PathDelim + 'Documents' + PathDelim +'ShoppingList.db';{$E 阅读全文

posted @ 2014-01-21 17:50 大悟还俗_2 阅读(294) 评论(0) 推荐(0) 编辑

2014年1月18日

摘要: unit Unit11;interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts, FMX.Memo, FMX.Platform, FMX.StdCtrls;type TForm11 = class(TForm) Memo1: TMemo; ToolBar1: TToolBar; Label1... 阅读全文

posted @ 2014-01-18 14:53 大悟还俗_2 阅读(362) 评论(0) 推荐(0) 编辑

2014年1月14日

摘要: 最新(更多)内容,请到 http://www.cnblogs.com/key-ok/p/3465486.htmlBorland Pascal v7.1 (13.89 Mb)Delphi 1 (31.36 Mb)Delphi 2 (33.77 Mb)Delphi 3 (55.99 Mb)Delphi ... 阅读全文

posted @ 2014-01-14 17:12 大悟还俗_2 阅读(1103) 评论(0) 推荐(0) 编辑

2014年1月10日

摘要: procedure ws: WebServiceSoap; H: XXXHeader;begin ws := GetWebServiceSoap; H := XXXHeader.Create; try H.Username := ‘xxx’; H.Password := MD5(‘xxx’); (ws as ISOAPHeaders).Send(H); ws.someMethod; finally H.Free; ws := nil; end;end; 阅读全文

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

2014年1月8日

摘要: select `TABLE_NAME` from `INFORMATION_SCHEMA`.`TABLES` where `TABLE_SCHEMA`='数据库名' and `TABLE_NAME`='表名' ---MYSQL 5 以前没有系统表 只能show databases;show tables;---如果表不存在就建立这个表,那么可以直接用 create table if not exists tablenamcreate database if not exists `dbname`;DROP TABLE IF EXISTS `tbname`;CRE 阅读全文

posted @ 2014-01-08 11:19 大悟还俗_2 阅读(203) 评论(0) 推荐(0) 编辑

2014年1月6日

摘要: { Delphi遍历进程中所有Class的TypeInfo,即便是在implementation中的class或者其他 class的private的子class. 一般普通EXE中的TypeInfo存放在PAGE_EXECUTE_*的内存中,而BPL则存放在PAGE_READ_WRITE的内存中. 所以我们要做的是遍历可执内存的内存片,然后找出TypeInfo的特征. 这里我是只找Class的类型信息,特征是tkClass,classname合法, 沿着typedata中的ParentInfo往前追溯,直到找到TObject的类型信息. 那么认为这是个合法的class的Typ... 阅读全文

posted @ 2014-01-06 00:52 大悟还俗_2 阅读(1032) 评论(0) 推荐(0) 编辑

摘要: http://blog.csdn.net/delphiteacher?viewmode=contentshttp://www.raysoftware.cn/ 阅读全文

posted @ 2014-01-06 00:31 大悟还俗_2 阅读(229) 评论(0) 推荐(0) 编辑

摘要: 有个需求是把一个DLL作为数据打包到EXE中,运行的时候动态加载.但要求不是释放出来生成DLL文件加载.花了一天时间做出来.效果还可以.不过由于是直接分配内存加载DLL的.有一些小缺陷.例如遍历进程中加载的模块的时候是找不到这个DLL的.GetModuleXXXX之类的API也就不能用了.当然也可以Hook这些函数做处理.不过便利不到这个模块也未必不是一个优点.例如写木马黑客之类的代码的时候,可以作为隐藏模块的手段.先分析一下Windows系统加载PE文件时候的步骤吧.可以简单的理解为如下步骤:1.读入文件(利用文件镜像)2.如果是加载的位置和PE头规定的镜像基址不一致(通常是DLL),并且有 阅读全文

posted @ 2014-01-06 00:25 大悟还俗_2 阅读(512) 评论(0) 推荐(0) 编辑

摘要: 以后尽量用Delphi/C++双代码写.GetTickCount返回值是整数,这样的话最多49天多就会复位重新从0开始.Vista以后提供了GetTickCount64这个函数,但是WindowsXP还是主流.在项目中为了处理这个,自己实现了一套办法.这个GetTickCount和真正的额GetTickCount相比会恒定的相差800毫秒左右.不过这个不影响使用.获取开机时间这800毫秒完全可以忽略.计算时间差的话就和GetTickCount是一样的了. Delphi版XE下编译通过. type _SYSTEM_INFORMATION_CLASS = ( SystemBasicIn... 阅读全文

posted @ 2014-01-06 00:15 大悟还俗_2 阅读(1949) 评论(0) 推荐(0) 编辑

摘要: 一个灵巧的Delphi多播实现方案.必须是支持泛型的Delphi版本.也就是Delphi2009以后.强烈建议用DelphiXE. 用法就是例如写一个Class指定一个Event,触发的时候会通知多个Method.和.NET的多播事件机制是一样的. 用法例如:type TFakeButton = class(TButton) private FMultiCast_OnClik : TMulticastEvent; public constructor Create(AOwnder : TComponent);override; destructor Dest... 阅读全文

posted @ 2014-01-06 00:11 大悟还俗_2 阅读(581) 评论(0) 推荐(0) 编辑

2014年1月4日

摘要: 在我的电脑上右击选择“属性”,打开属性面板。然后点击左边的“远程设置”。 2/2如果你要操作的计算机出入外网(大多数是家里网线进线直连电脑),就选择远程桌面选择框中的“允许运行任意版本远程桌面的计算机连接”,并确定。如果为路由器假设的局域网,且两个设备都在该局域网内选择第三项“仅允许运行使用网络级别的身份验证的远程桌面的计算”。并确定。我这里选择的是两个设备均在局域网,所以选择第三项。然后单击确定。Windows7端配置完毕。下面进入Android 端配置,下载并打开软件。界面如下1/5Android 端设置 下载安装好软件后打开软件。界面如下其中+ Connection ... 阅读全文

posted @ 2014-01-04 02:13 大悟还俗_2 阅读(580) 评论(0) 推荐(0) 编辑

2013年12月25日

摘要: DELPHI 写的程序会出---------------------------Pmain---------------------------Error loading MIDAS.DLL.---------------------------确定 ---------------------------原因有三个1 没有MIDAS.DLL 下载一个考过去 2. 没有注册 。 使用 Regsvr32 (不会的话,就百度一下)3.还有一种是之前注册过,在注册表也有。只是和现在目录路径不同了Windows Registry Editor Version 5.00[-HKEY_CLASSES... 阅读全文

posted @ 2013-12-25 18:06 大悟还俗_2 阅读(2100) 评论(0) 推荐(0) 编辑

摘要: http://dev.mysql.com/downloads/mysql/ 阅读全文

posted @ 2013-12-25 14:25 大悟还俗_2 阅读(141) 评论(0) 推荐(0) 编辑

2013年12月23日

摘要: 打开hosts 系统盘的 C:\Windows\System32\drivers\etc 添加以下127.0.0.1 atm.youku.com 127.0.0.1 fvid.atm.youku.com 127.0.0.1 html.atm.youku.com 127.0.0.1 valb.atm.youku.com 127.0.0.1 valf.atm.youku.com 127.0.0.1 valo.atm.youku.com 127.0.0.1 valp.atm.youku.com 127.0.0.1 Lstat.youku.com 127.0.0.1 speed.lstat... 阅读全文

posted @ 2013-12-23 13:52 大悟还俗_2 阅读(276) 评论(0) 推荐(0) 编辑

2013年12月20日

摘要: USE [qhmsw]GO/****** Object: Table [qhmsw].[PublicProvinces] Script Date: 07/22/2013 16:05:56 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [qhmsw].[PublicProvinces]([PP_Id] [int] NULL,--代码Id[PP_Fid] [int] NULL,--父类,省一级为0,市一级为省一级的PP_Id[PP_Name] [varchar](5... 阅读全文

posted @ 2013-12-20 15:28 大悟还俗_2 阅读(531) 评论(0) 推荐(0) 编辑

2013年12月18日

摘要: TField对象的SetText和GetText事件处理函数使用TField对象的SetText和GetText事件处理函数可方便的解决字段的代码与代码所对应值的显示问题TSimpleDataset/TClientDataset对象的Aggregation使用TDataset对象的Aggregate属性可以来计算客户端数据集中数据的总计数值、平均值或是计算最大值和最小值。使用TBookMark来标记记录书签, 访问数据集中的数据通过使用TBookMark以及TDataset对象的 BookMark 属性, 要以为当前的纪录设置书签,例var bk:TBookMark;begin bk:=ds. 阅读全文

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

2013年12月16日

摘要: 方法1:procedure TForm1.Button2Click(Sender: TObject);var JPEGImage: TJPEGImage;beginif SavePictureDialog1.InitialDir =''then SavePictureDialog1.InitialDir := ExtractFilePath(OpenPictureDialog1.FileName);if trim(LabeledEdit1.Text)''then SavePictureDialog1.FileName := trim(LabeledEdit1.T 阅读全文

posted @ 2013-12-16 13:45 大悟还俗_2 阅读(291) 评论(0) 推荐(0) 编辑

2013年12月11日

摘要: Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示如果还为了这个纠结,就直接看看后面的解说,做决定吧。一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的。sql server中的varchar和Nvarchar有什么区别?答:varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。nvarchar(n)包含 n 个字符的可变长度 Unicode 字符数据。 阅读全文

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

2013年12月9日

摘要: 各版本下载地址: http://delphifmx.com/delphidownload 阅读全文

posted @ 2013-12-09 15:23 大悟还俗_2 阅读(14071) 评论(4) 推荐(2) 编辑

摘要: TPngImage原来是SourceFroge上的一个开源项目,现在突然消失了,为什么呢?Nick 在他的博客上写到:TPNGImage被CodeGear/Embarcadero收购了,现在直接就是Delphi 2009的一部分了,大家可以方便的在TImage中使用PNG图片。另外TImageLists也可以直接使用PNG图片了,呵呵。爽吧,不用下载。另外Delphi 2009还提供给大家一些漂亮的PNG图标,在C:\Program Files\Common Files\CodeGear Shared\Images\GlyFX\Icons\PNG下面哦。 阅读全文

posted @ 2013-12-09 15:17 大悟还俗_2 阅读(253) 评论(0) 推荐(0) 编辑

2013年11月26日

摘要: 主程序装载脚本procedure TForm1.FormCreate(Sender: TObject);begin fsScript1.Clear; fsScript1.Parent := fsGlobalUnit; fsScript1.AddComponent(Form1); fsScript1.Lines.LoadFromFile('1.txt'); fsScript1.Run;end; 1.txt文件uses 'lang.txt'; //引用公用的语言单元 procedure button1click(sender: tobject);begin show 阅读全文

posted @ 2013-11-26 15:29 大悟还俗_2 阅读(289) 评论(0) 推荐(0) 编辑

摘要: { Google ZXing Call demo Delphi Version: Delphi XE5 Version 19.0.13476.4176 By: flcop(zylove619@hotmail.com) }unit UMain;interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, ... 阅读全文

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

摘要: uses Androidapi.JNI.Os, Androidapi.JNIBridge;function GetVibratorArray(const AIntArr: array of Int64): TJavaArray;var LIndex: Integer;begin Result := TJavaArray.Create(Length(AIntArr)); for LIndex := Low(AIntArr) to High(AIntArr) do Result.Items[LIndex] := AIntArr[LIndex];end;procedure Vibra... 阅读全文

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

2013年11月25日

摘要: //请自行添加到 Type 处PICONDIRENTRY = ^ICONDIRENTRY;ICONDIRENTRY = packed record bWidth: Byte; bHeight: Byte;" A% f% ?( F* f' A1 R bColorCount: Byte; bReserved: Byte;! l/ c3 ?6 V7 S8 k, z& B9 t0 n wPlanes: Word;5 Q4 a+ ~: R* O) v wBitCount: Word;8 u7 R( K! t) W0 W: W dwBytesInRes: DWOR... 阅读全文

posted @ 2013-11-25 17:52 大悟还俗_2 阅读(646) 评论(0) 推荐(0) 编辑

摘要: 两个字符串对象进行比较,忽略大小写,两个字符串缓冲区地址利用EAX和EDX两个寄存器传给该函数,字符串的长度用4个字节保存在缓冲区的前面,函数用EAX返回比较结果,结果为0表示相同。 function CompareText(const S1, S2: string): Integer; assembler;asm PUSH ESI ; 保存寄存器 PUSH EDI PUSH EBX MOV ESI,EAX ; EAX、EDX的值给ESI、EDI MOV EDI,EDX ... 阅读全文

posted @ 2013-11-25 17:47 大悟还俗_2 阅读(231) 评论(0) 推荐(0) 编辑

2013年11月18日

摘要: unit Main;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,TlHelp32, StdCtrls, ComCtrls,psAPI;type PTokenUser = ^TTokenUser; _TOKEN_USER = record User: TSIDAndAttributes; end; TTokenUser = _TOKEN_USER; TForm1 = class(TForm) btn... 阅读全文

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

摘要: 为了显示效果,在钩子的DLL中我们会获取挂钩函数的窗体句柄,这里的主程序窗体名为"TestMain",通过FindWindow查找。KeyBoardHook.dll代码library KeyBoardHook;{ Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your D 阅读全文

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

摘要: 原理简单,在FTP上维护一个Update.ini文件,里面记录着要更新文件的版本号,本地也有一个Update.ini文件,每次启动更新程序时,先从FTP上下载Update.ini文件到本地名字为Update_new.ini,然后比较这两个文件,如果新的版本号大于旧的,或者新的文件在就ini中没有,这些就表示要更新的文件,然后逐一下载。 本程序名字为AutoUpdate,你生成这个exe,然后和主程序一起打包,创建桌面快捷方式时,指向AutoUpdate,而不是主程序。 在本地还有一个ini文件,比如叫ftp.ini吧,里面内容是[coninfo]main=Project1.exeparam=. 阅读全文

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

摘要: 在很多程序中,都可以看到程序运行中,会有一个Dos窗口,实时显示一些运行信息,这里就告诉大家是如何实现的,我们做个简单的,其实对控制台的操作还有很多,有兴趣的可以去查资料。 用到的API函数如下: //创建控制台 AllocConsole; //获取控制台窗口 GetStdHandle; //向控制台输出信息 WriteConsole; //释放控制台 FreeConsole;unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,.. 阅读全文

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