delphi
liang08114
业精于勤荒于嬉,行成于思毁于随
展开
-
WaitForMultipleObjects
360百科 WaitForMultipleObjects 认识等待函数 WaitForSingleObjectWaitForMultipleObjects用法详解,一看就懂认识等待函数 WaitForSingleObject转载 2019-05-09 19:55:35 · 856 阅读 · 0 评论 -
Delphi : GetWindowRect获取窗口矩形坐标,SetCursorPos设置鼠标位置
Delphi : GetWindowRect获取窗口矩形坐标,SetCursorPos设置鼠标位置转载 2018-10-19 16:20:19 · 1121 阅读 · 0 评论 -
获取窗体颜色
//获取窗体DC CDC *pDC = GetDC(); //获取颜色值 COLORREF cr = pDC->GetPixel(point); //提取RGB分量 m_nR = GetRValue(cr);//R值 m_nG = GetGValue(cr);//G值 m_nB = GetBValue(cr);//B值 GetDC()函数GetP...原创 2018-10-19 09:33:40 · 1132 阅读 · 0 评论 -
隐藏显示任务栏
//隐藏Windows任务栏var wndHandle: THandle; //用于存储指定窗口的句柄 wndClass: array[0..50] of Char; //用于存储类名begin// strPCopy(@wndClass[0], 'Shell_TrayWnd'); //获取任务栏类名// wndHandle := FindWindow(@wndClass[0],nil);...原创 2018-06-20 09:57:36 · 254 阅读 · 0 评论 -
Delphi 预编译指令总结
Delphi预编译指令总结{$INCLUDE}或{$I}指令管理和调用自定义函数转载 2018-05-11 11:18:04 · 358 阅读 · 0 评论 -
delphi 操作注册表
function CheckAutoRun: Boolean; var Reg: TRegistry; //首先定义一个TRegistry类型的变量Regbegin Result:= False; Reg:=TRegistry.Create; try //创建一个新键 Reg.RootKey:=HKEY_LOCAL_MACHINE; //将根键设置为HKEY_LOCA...原创 2018-04-04 16:18:38 · 445 阅读 · 0 评论 -
解决StrToDateTime()不是有效日期类型的问题
方法一:function GetDateFormat():string;var SysFrset: TFormatSettings;begin Result:=''; GetLocaleFormatSettings(GetUserDefaultLCID, SysFrset); Result:=SysFrset.DateSeparator; //DateSeparator当前...转载 2018-03-13 17:43:15 · 4542 阅读 · 0 评论 -
Delphi常识错误 PChar('aa') LITERAL
为什么?这个问题涉及是DELPHI编译器一个隐含约定DELPHI对单字符 字符串的 解释 将直接解释为LITERAL值本身 而非另行分配一个串然后指向其地址原创 2018-10-17 14:41:59 · 318 阅读 · 0 评论 -
EnumWindows、EnumChildWindows 2 控制其他进程上的控件
C#调用其他程序,比如控制别的程序上的按钮//步骤1:{------------------------------------------------------------------------------- 过程名: EnumChildWndProc 过程描述: 通过EnumChildWindows枚举窗体JSBYKP1中的所有控件 获取...原创 2018-10-29 17:28:05 · 882 阅读 · 1 评论 -
获取特殊文件夹
uses Windows, Registry;function GetShellFolder(): string;begin with TRegistry.Create do try RootKey:= HKEY_CURRENT_USER; if OpenKey('Software\MicroSoft\Windows\CurrentVersio...原创 2019-05-09 15:00:31 · 157 阅读 · 0 评论 -
获取计算机串口列表
procedure GetSysSerialComm(CommLst: TStrings);var reg: TRegistry; ComList: TStringList; i: Integer;begin ComList:= TStringList.Create; reg:= TRegistry.Create; CommLst.Clear; try ...原创 2019-01-31 11:26:35 · 1589 阅读 · 0 评论 -
正则表达式校验手机号
function CheckSJHRegEx(sjh: string): Boolean;var reg: TPerlRegEx;begin reg := TPerlRegEx.Create(); reg.Subject := sjh; reg.RegEx := '1(3|5|7|8)\d{9}'; Result:= reg.Match; FreeAndNil(reg...原创 2019-01-30 16:13:00 · 739 阅读 · 0 评论 -
Hook 底层键盘钩子
声明底层键盘钩子消息数据 结构://Delphi中没有定义KBDLLHOOKSTRUCT结构,自己定义一个type PKBDLLHOOKSTRUCT=^KBDLLHOOKSTRUCT; KBDLLHOOKSTRUCT=record vkCode:DWORD; scanCode:DWORD; flags:DWORD; time:DWORD; d...原创 2019-01-03 11:19:48 · 759 阅读 · 0 评论 -
Delphi7文件操作常用函数一
Delphi7文件操作常用函数一 相应Delphi文章列表:https://blog.csdn.net/kimifdw/article/category/1282078procedure AddLog(sMsg, sFileName: string);var text: TextFile;begin AssignFile(text,sFileName); try ...原创 2019-01-03 09:40:32 · 317 阅读 · 0 评论 -
delphi 隐藏任务栏图标
begin SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);end;http://c.360webcache.com/c?m=8547df3cc9cb8fe2a931045915559d77&q=delphi+%E4%BB%BB%E5%8A%A1%E6%A0%8F%E5%9B%BE%E6%A0%87&...转载 2019-01-17 15:02:31 · 987 阅读 · 0 评论 -
Delphi 注册表操作
unit UnitRegeditFuns;interfaceuses Windows, Registry; function CheckRegEdit(dwRootKey: DWORD; subKey, sName, sValue: string): Boolean;procedure SetRegEdit(dwRootKey: DWORD; subKey, s...原创 2018-12-29 09:58:43 · 298 阅读 · 0 评论 -
WindowTool
获取当前活动窗体的窗体名称var CurHdl: Thandle;procedure TfrmWndTool.tmr1Timer(Sender: TObject);var hdl: THandle; iLen: Integer; str: string;begin hdl:= GetForegroundWindow; if (hdl<> ha...原创 2018-12-28 16:16:36 · 241 阅读 · 0 评论 -
CreateProcess和OpenProcess
var pHandle: THandle; pID: Cardinal;procedure TForm1.OpenClick(Sender: TObject);var aPath: array[1..MAX_PATH]of Char; sInfo: TStartupInfo; pInfo: TProcessInformation;begin GetSyst...原创 2018-12-06 21:37:35 · 933 阅读 · 0 评论 -
键盘鼠标相关
1、首先我们要知道现在鼠标的位置(为了好还原现在鼠标的位置)所以我们就要用到API函数GetCursorPos,它的使用方法如下:BOOL GetCursorPos( LPPOINT lpPoint // address of structure for cursor position );2、我们把鼠标的位置移到要到人物走到的地方,我们就要用到SetCursorPos函数来移动...原创 2018-12-06 14:03:38 · 187 阅读 · 0 评论 -
获取软件版本号
{------------------------------------------------------------------------------- 过程名: GetBuildInfo 过程描述: 获取软件版本号 作者: LYK 日期: 2018.11.02 参数: 无 返回值: string----------...原创 2018-11-02 09:50:15 · 505 阅读 · 0 评论 -
EnumWindows、EnumChildWindows 1 通过进程id获取窗口句柄
通过进程id获取窗口句柄枚举窗体,子窗体:EnumWindows:该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数。EnumChildWindows:枚举一个父窗口的所有子窗口。示例:控制其他进程上的控件...原创 2018-10-30 11:18:01 · 1141 阅读 · 0 评论 -
Delphi编码规范
Delphi编码规范1、注释多写注释,要求注释要达到源代码的30%;在每个单元的最开头以大括号“{注释内容}”的形式,写明该单元的功能作用(非Form单元必须写);在每个单元的接口部分为每个方法写明注释,注释内容包括方法作用、参数含义、返回值含义、作者、编写时间、历次修改说明……;在业务逻辑复杂的方法中,标明各段代码的业务作用;在因为界面特殊原因或者操作特殊原因的特殊代码中,要用注释写明为什么要这...原创 2018-03-15 18:17:55 · 296 阅读 · 0 评论 -
DbgridEh数据导出到Excel的方法(Delphi)
点击打开链接转载 2018-02-05 17:00:25 · 640 阅读 · 0 评论 -
Delphi拖延线程
在有些情况下,事件触发特别频繁,但是我们不希望事件每次触发都执行他对应的功能而是在我们操作完毕后才执行功能。比如:Edit1.OnChange事件对应了一个查询本地库的操作,当我们比较快速的输入时界面总是出现卡顿的现象,感觉很不爽。如何才能使程序在我们停止输入时才执行查询数据库操作呢?我写了一个拖延线程:unit UntTaskDelay;interfaceuses原创 2018-01-09 09:12:07 · 338 阅读 · 0 评论 -
FastReport
动态创建Fastreport[翻译] FastReport 格式化和突出显示转载 2017-09-15 15:27:00 · 339 阅读 · 0 评论 -
GetWindowsDirectory带出指针值
{ Getting the Windows Directory }function GetWinDir: string;vardir: array [0..MAX_PATH] of Char;beginGetWindowsDirectory(dir, MAX_PATH);Result := StrPas(dir);end;// or:function WindowsDire转载 2017-08-29 17:33:36 · 415 阅读 · 1 评论 -
COM简介及一个小Demo
点击打开链接转载 2017-08-05 11:58:39 · 363 阅读 · 0 评论 -
《Inside VCL(深入核心——VCL架构剖析)》.李维 三
一、1、TObject提供了VCL Framework的基础服务;2、TPersistent提供了VCL Framework的持久化能力;3、VCL需要的第3个核心类就是所有VCL组件类继承的根类,所以产生了TComponent;二、作为VCL Framework的核心组件基础类,TComponent必须提供一下基础服务:1、作为基础的根组件类;2、可同时扮演Con原创 2016-08-16 16:08:08 · 1356 阅读 · 0 评论 -
《Inside VCL(深入核心——VCL架构剖析)》.(李维) 一
一、回到从前:1.1、多任务操作系统是如何设计和实现的?1.1.1、系统——多个应用程序方案1:(系统不断读取应用程序状态)系统通过大型循环(Loop)不断坚持么一个恶用用程序是否触发了特定的事件。方案2:(事件驱动模型——事件/消息处理模型)执行环境将事件转换成代表事件的消息,然后发送给对应的应用程序。//消息大概格式TMyMessage = packe原创 2016-12-20 21:03:09 · 1546 阅读 · 0 评论 -
正解PPointer,Pointer
VCL有这样一段代码: function TObject.ClassType: TClass; begin Pointer(Result) := PPointer(Self)^; end; class function TObject.ClassName: ShortString; begin Result :=转载 2017-02-21 09:43:19 · 1085 阅读 · 0 评论 -
浅拷贝与深度拷贝(原型模式)
深度复制转载 2016-05-09 11:14:31 · 906 阅读 · 0 评论 -
doubleBuffered
之前我写的控件有闪烁的问题,然后在构造函数里面使用Delphi(Pascal) codeif not self.doubleBuffered thenself.doubleBuffered:=true解决了一些问题,现在有个新问题就是我控件里面有个变量,比如说private...FPanel :TPanel;然后控件的构造函数中,我也写了转载 2016-04-22 09:35:12 · 735 阅读 · 0 评论 -
delphi多线程TThread详解
delphi多线程TThread详解转载 2016-06-04 15:45:43 · 1136 阅读 · 0 评论 -
多线程同步
利用主线程与子线程间的消息通讯,实现任务处理队列WaitForMultipleObject与MsgWaitForMultipleObjects用法 .CSDN上的同步小Demo:主线程:unit Unit1;interfaceuses LongWaitTrd, Windows, Messages, SysUtils, Variants, Classes, Grap原创 2017-03-04 12:25:52 · 304 阅读 · 0 评论 -
Delphi之指针使用
Delphi之指针使用string详解procedure TForm1.Button1Click(Sender: TObject);var a,b: array[0..19] of char; i: Integer; s, str: string;begin FillChar(a, SizeOf(a), 0); FillChar(b, SizeOf(a), 0...转载 2017-04-25 18:51:20 · 438 阅读 · 0 评论 -
在异步运行时,操作不能进行
在异步运行时,操作不能进行转载 2016-09-01 12:01:43 · 2375 阅读 · 1 评论 -
Delphi Image使用ImageList中的图片
var bmp: Tbitmap;begin bmp := Tbitmap.Create; try if Rlt then begin imagelist1.GetBitmap(1, bmp); img1.Picture.Assign(bmp); end else begin imagelist1.原创 2017-11-01 14:09:19 · 7677 阅读 · 0 评论 -
Delphi OpenDialog使用方法
var OpenDlg: TOpenDialog; strFileName: string;begin OpenDlg := TOpenDialog.Create(nil); try OpenDlg.Filter := '协议文件(*.EXE)|*.EXE|全部文件(*.*)|*.*'; OpenDlg.DefaultExt := '*.EXE'; if原创 2017-11-01 14:39:03 · 12723 阅读 · 0 评论 -
Delphi编译开关=====转帖收藏
Delphi编译开关=====转帖收藏转载 2017-12-19 14:02:06 · 278 阅读 · 0 评论 -
Delphi字符串 消息机制实现消息传递字符串
delphi的消息机制实现消息传递字符串转载 2017-12-18 14:18:08 · 1018 阅读 · 0 评论