自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (3)
  • 收藏
  • 关注

原创 如何截获Tab键及如何检测Shift等键状态的方法

1.因为Tab属于控件的控制快捷键 所以不能再OnKeyUp及OnKeyDown中截获 ,那么如何截获Tab键?想截获Tab的方法有以下几种:(1).再窗口的OnShutCut中可以截获到tab键等控制快捷键, Msg.CharCode即为截获到的按键的键值. procedure TFrmHWYDLR_Six.FormShortCut(var Msg: TWMKey; var

2012-05-17 16:15:25 4293

转载 MSSQL与Delphi类型对照一览表 【转】

例:Case DBGrid1.DataSource.DataSet.Fields.FieldByName(字段名).DataType offtBCD: //对应MSSql数据库的decimal、money、numeric、smallmoney类型 end;//其它的请看下面TFieldType is a set of values that parallel the dat

2012-02-19 13:26:11 3387

转载 sql命令备份/恢复数据库

简单命令:备份:BACKUP DATABASE test TO DISK='d:\04-08-07bak.bak'恢复:RESTORE DATABASE test from disk='d:\04-08-07bak.bak' with NORECOVERY利用

2011-09-20 15:56:31 599

原创 windows

1.$00000000到$003FFFFF的内存空间,Windows 9X用此部分内存来维持同MS-Dos和16位Windows的兼容性,应用程序一般不需要对此区域进行操作。2.$00400000到$7FFFFFFF的内存空间, 这是进程的私有内存空间,其他的进程不能通过普通

2011-08-18 11:00:54 409

原创 Application.Terminate 和 ExitProcess

Application.Terminate 只是呼叫 PostQuitMessage 這個 Windows API表明程式準備要結束而已, 它並不會立即中止整個程式, 也不會強迫終止若有其他程序還在運行, 則程式很可能會發生如你描述的那種情形Application.Termina

2011-07-18 09:19:21 2257

转载 dbgrid 缓冲显示(缓冲行为20)

ADOConnection1     连接数据库 ADOQuery1               执行查询             connection     为   ADOConnection1   DataSetProvider1得到adoquery1查

2011-07-05 09:10:18 407

转载 sysobjects.Xtype

SQL Server数据库的一切信息都保存在它的系统表格里。 在大多数情况下,对你最有用的两个列是Sysobjects.name和Sysobjects.xtype。前面一个用来列出待考察对象的名字,而后一个用来定义对象的类型 sysobjects 在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。 列名 数据类

2011-06-28 14:29:00 1982

原创 SQL Server字符串处理函数大全

SQL Server字符串处理函数大全 select语句中只能使用sql函数对字段进行操作(链接sql server),select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。left()是sql函数。select 字段1 from 表1 where charinde

2011-06-28 14:24:00 564

原创 Windowsx小技巧[收集中...]

1.如何在Windows XP 中向“发送到”菜单添加菜单项? 开始->运行->SendTo->将快捷方式拖拽到2.

2011-06-09 17:01:00 335

原创 SQL 补课

判断TableName中是否存在名为ColName的列select name from syscolumns where id = (select id from sysobjects where name=TableName ) and name = ColName;0行 不存在1行 存在  判断TableName表中是否存在主键Select Name f

2011-06-08 16:27:00 342

原创 常用技巧

问:如何让del+CTRL+ALT看不见程序运行?答:为了让程序用ALT+DEL+CTRL看不见,在implementation后添加声明:function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';再在上面的窗口Create事件加上一句:RegisterServiceProcess(GetCurrentProcessID, 1);//隐藏也可以使用下面的函数

2011-05-24 16:43:00 2106

原创 模拟按键函数Keybd_event

<br />Keybd_event<br />共有四个参数,第一个为按键的虚拟键值,如回车键为vk_return, tab键为vk_tab。第二个参数为扫描码,一般不用设置,用0代替就行。第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成“KEYEVENTF_KEYUP”(2),第四个参数一般也是置0即可。用如下代码即可实现模拟按下i键,其中的$49表示i键的虚拟键值:<br />keybd_event($49,0,0,0); <br />keybd_event($49,0,KEY

2011-05-24 16:40:00 880

原创 Windows下组件拖动实现(Panel为例)

<br />Panel的MouseDown事件//移动就写上ReleaseCapture;SendMessage(Panel1.Handle,wm_SysCommand,$F012,0);//改变大小就写上ReleaseCapture;SendMessage(Panel1.Handle,wm_SysCommand,$F008,0);<br /><br />

2011-05-24 16:33:00 484

原创 DBgrid中遍历多选列(TBookmark使用)

sloop := 0; while sloop

2011-05-21 09:09:00 1980

原创 添加资源文件(Cursor为例)

新建Txt文本文件输入cur1 CURSOR FileName //或者 cur1,  CURSOR,  FileName保存为.rc文件Project -> add to project(Shift+F11)->选择RC文件(文件类型选择*.RC)->Build-OK 编译成功后出现.res资源文件调用时可以使用语句Screen.Cursors[1] := LoadCursor(HInstance, 'cur1'); 

2011-05-20 08:39:00 1490 1

原创 重温基础, 巩固记忆(一)

<br />关键字:图中粗体字Unit、interface、uses、type、class、private、public、end、var、implementation<br />等即为关键字。<br />保留字:所谓保留字可以理解为Delphi 系统自定义的,留给Delphi 系统自身使用的识别字。<br />Windows、Messages、SysUtils、Classes、Graphics、Controls、Forms、Dialogs 等就是保留字。<br />自定义识别字:,所谓自定义识别字就是用户自

2011-05-14 14:30:00 533

原创 重温基础,巩固记忆(二)

<br />RichEdit1.ScrollBars 选择滚动条,ssNone[无],ssHorizontal[只有水平],ssVertical[只有垂直],ssBoth[同时有水平和垂直]<br />RichEdit1.SelStart   RichEdit1.SelLength 选中文本的起始位置和长度<br />RichEdit1.SelText   选中的文本<br />FindDialog.FindText 保存查找内容字符串<br />FindDialog.Options 设置全字匹配、区分大小

2011-05-14 14:30:00 471

原创 主窗口及登录窗口的生成顺序

<br />自动生成FrmMain窗体<br />  Application.CreateForm(TFrmMain, FrmMain);<br />并在其Create事件中创建FrmLogin<br /> <br />procedure TFrmMain.FormCreate(Sender: TObject);begin Application.ShowMainForm := False; FrmLogin := TFrmLogin.Create(Self); if FrmLogin

2011-05-05 15:21:00 428

原创 05.05

<br />unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;constWM_ME=WM_USER+100; //自定义消息;typeTForm1 = class(TForm) Button1: TButton;procedure Button1Click(Sender: TObj

2011-05-05 15:14:00 358

原创 获取所有顶层窗口的句柄,类名及标题数组

<br />分别应用了EnumWindows,GetClassName,GetWindowText三个API<br /> <br />unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton;

2011-04-22 10:00:00 2171

原创 将TEdit设置为右对齐

SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or Es_right);

2011-04-12 16:11:00 1201

原创 delphi中Message消息的使用方法

unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;constWM_ME=WM_USER+100; //自定义消息;typeTForm1 = class(TForm)    Button1: TButton;procedure Button1Click(Sender: TObject);//第一种消息处理方式; 只能处理常量消息

2011-04-06 09:05:00 4704

原创 通过DLL加载的窗口最小化或切换后会消失 的解决办法

<br />在DLL调用的时候要传入Application <br />例:<br />procedure CreateForm(vApp:TApplication);begin Application.handle:= vapp.handle; Frm_1:= TFrm_TJJSQ.Create(Application); Frm_1.Showmodal;end;{创建窗口前要设置application.handle. 可以将handle或整个application传

2011-04-01 16:34:00 967

原创 获取当前的输入法状态

1.调用 GetKeyboardLayout 获取输入法的 HKL后, 在注册表中查找输入法名称(以记事本为例)hWnd = WinGetHandle("classname=Notepad")<br />KeyStr=GetKeyboardLayout($hWnd)<br />KeyName=RegRead("HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layouts/" & $KeyStr, "Layout Text")<br

2011-04-01 15:41:00 9744

原创 托盘图标相关

核心内容是 Shell_32.Dll 中的Shell_NotifyIcon函数.Shell_NotifyIcon函数,向任务栏的状态栏发送一个消息函数原型  BOOL Shell_NotifyIcon(  DWORD dwMessage,  PNOTIFYICONDATA lpdata (即Delphi中的TNotifyIconData的地址)  );参数:  dwMessage为输入参数,传递发送的消息,表明要执行的操作。可选的值如下:  NIM_ADD  向托盘区域添加一个图标。此时第二个参数lpdat

2011-03-21 11:34:00 456

原创 下拉菜单美化的相关事件

OnAdvancedDrawItem(Sender: TObject; ACanvas: TCanvas;ARect: TRect; State: TOwnerDrawState): 菜单背景绘制:ACanvas背景画布; ARect:菜单大小区域;State:当前菜单的各种状态   TOwnerDrawState = set of (odSelected, odGrayed, odDisabled, odChecked,    odFocused, odDefault, odHotLight, odIna

2011-03-21 09:58:00 583

原创 Form中组件的遍历

  for i:=0 to Self.ComponentCount -1 do Begin if Self.Components[i] is TButton then (Self.Components[i] as TButton).Caption := 'Component :Button; end; for i:=0 to Self.ControlCount -1 do Begin if Self.Controls[i] is TButton th

2011-03-19 09:54:00 548

原创 线程相关

<br />继承于TThread抽象类。TThread直接继承于Tobject,不可实例化。<br />线程的FreeOnTerminate属性为True时, 线程终止后自动销毁释放相应堆栈;为False时,当应用程序退出时自动释放。<br /> 

2011-03-19 09:51:00 430

原创 delphi中Create参数区别

默认分类 2009-08-05 14:59:31 阅读265 评论0 字号:大中小  delphi中我们创建一个VCL控件时,有多种参数:From.create(参数)参数有以下几种:Application:你的控件的父级是主程序,所以他的级别最高.Self:你的控件的父级是当前窗口,他关闭你也关闭.Sender:你的控件的父级是当前对象.Handle:你的控件的父级是此句柄.Nil:无定义.生成的独立窗体需代码释放。     一般说来,Delphi类的构造方法在TComponent前是不用重载的,而T

2011-03-15 09:45:00 5850

原创 DLL精要

链接方式<br />DLL中以下面的格式声明导出函数<br />exports<br />    FunctionName Index 15 Name MyName,         //Index XX 省略时编号由编译器自动生成, Name XXX 声明别名,也可省略<br /> <br />1. 隐式链接<br /> procedure MyName; external'XXX.DLL';   // 声明后即可在代码中调用MyName函数;<br /> <br />2. 显示链接<br />LibHa

2011-03-11 13:13:00 501

原创 向Excel中导出长位数字时Excel会自动将其转化为类似于1.34E+13的格式,如何将其保存为文本?(如身份证)

1. 在数字前加一个单引号(注:Delphi中''''表示一个单引号,例:''a''表示'a'.);2. 导出数据前加上 Sheet1.Range[ 'b1 ', 'b100 '].NumberFormat:= '@ '; 附: 下面列出常用的一些格式:1) 文本:vnd.ms-excel.numberformat:@2) 日期:vnd.ms-excel.numberfor

2011-03-10 13:20:00 4421

原创 限制窗口的最大尺寸和最小尺寸

<br />1. 控制窗口的大小,使得窗口控制在某一大小中,实现原理是截获Windows系统消息WM_GETMINMAXINFO,<br />(1)、  在Form窗体私有声明部分加上以下一行声明<br />  procedure   WMGetMinMaxInfo(var   msg:tmessage);message   WM_GETMINMAXINFO;<br />(2)、过程中加入代码如下:<br />procedure TForm1.WMGetMinMaxInfo(var msg: tmessag

2011-03-08 10:13:00 2368

原创 ini,txt保存Listbox或ComboBox的问题

<br />1. 可以直接读TXT//保存listbox里面的项到'ListText.txt'文件ListBox1.Items.SaveToFile(ExtractFilePath(Application.ExeName)+'ListText.txt');//将'ListText.txt'文件里面的内容读入listbox ListBox1.Items.LoadFromFile(ExtractFilePath(Application.ExeName)+'ListText.txt')2.i

2011-02-14 15:58:00 1602 3

原创 OnClose和OnDestroy

<br />OnClose():消息响应函数,响应WM_CLOSE消息,当"关闭"按钮被单击的时候(而不是我们眼睛所见的对话框从屏幕上消失时),该函数被调用,用户在响应OnOk()或者OnCancel()函数之后,不会发送WM_CLOSE消息<br />OnDestroy():消息响应函数,响应WM_DESTROY消息,当一个窗口即将被销毁时,被发送<br />在单视图程序中,根据<<深入浅出MFC>>所讲,程序退出时执行的操作顺序为<br />(1)用户点击退出按钮,发送了WM_CLOSE消息<br />

2011-02-11 12:06:00 446

原创 2011.02.11

ExtractFilePath()功能:返回完整文件名中的路径paramstr[0]功能: 返回可执行文件的路径paramstr 作用是把接收到的命令行参数分离出来比如命令行:c:/temp/MyApp.exe /test /save那么:paramstr[0] = 'c:/temp/MyApp.exe'paramstr[1] = '/test'paramstr[2] = '/save'

2011-02-11 12:05:00 302

原创 MessageBox

<br />MessageBox(Handle, PAnsichar, String, MB_OK);<br /> <br />Handle 窗口句柄 NULL时默认为桌面窗口<br />PAnsichar 消息框的正文<br />String 消息框的标题<br />MB_OK 按钮信息<br /> <br />经常出现String与PAnsichar无法兼容的错误, 这时只需强制转换即可 PAnsiChar(Char);<br /> <br /><br />MessageDlg函数 该函数的定义格式如下

2011-02-10 17:04:00 569

原创 Winsock五种的I/O模型

<br />Winsock五种的I/O模型上(转)2009-03-03 21:02Winsock 的I/O操作:<br /><br />1、 两种I/O模式 <br />阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字 默认为阻塞模式。可以通过多线程技术进行处理。 <br />非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。<br

2011-02-10 16:33:00 1554

原创 堆栈

<br />Heap:堆,Heap上分配的内存,系统不释放,哪怕程序退出,那一块内存还是在那里<br />Stack:栈或堆栈,Stack上分配的内存系统自动释放<br /><br />以下摘自     <<Essential   Pascal>>   <br />    <br />      Delphi   用堆的形式来给对象,字符串,动态数组,分配内存;那些有特殊用途的动态存储空间(用GetMem获取)也是用堆实现的。   <br />    <br />      Delphi   用

2011-01-26 12:23:00 325

原创 Windows纸牌链接库Cards.dll的用法

 Cards.dll主要函数的用法:cdtInit proc lpdwCardWidth:DWORD,lpdwCardHeight:DWORDlpdwCardWidth   返回扑克的宽度lpdwCardHeight  返回扑克的高度cdtDraw proc hDC:DWORD,dwX:DWORD, dwY:DWORD,cd:DWORD, md:DWORD,rgbBkgnd:DWORDcdtDrawExt proc hDC:DWORD,dwX:DWORD, dwY:DWORD,dwd

2011-01-26 12:22:00 2379

原创 2011.1.17

1.Tlist的复制(将list中的内容复制给list2)?list3.Assign(List1,Operater,List2);将List1与list2经过Operater操作后赋给list3.Operater的主要参数有laCopy ,其他见帮助.2.将局部变量指针p赋给list1(即list1.add(p))后,free(p)会导致list1.items[i]的内容为零(即初始化).原因: free(p)不仅将p的内容释放,并且将p指向地址中的内容释放。改为FreeAndNil即可。

2011-01-18 12:18:00 349

磁盘恢复神器

磁盘恢复神器 ha——finalData 文件误删不用怕,一键恢复搞定它。 即使全盘格式化,有此神器也不怕。 磁盘医生么么哒,FiNalData碉堡啦。

2019-03-03

MDAC_TYP(Delphi 连接SQL 提示没有注册类别 可以尝试安装此包)

MDAC_TYP最靠谱版本 (Delphi 连接SQL 提示没有注册类别 可以尝试安装此包)

2012-12-28

I60XX使用说明

移动终端I60XX的相关使用说明 比较详细

2012-09-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除