Delphi
文章平均质量分 91
huang714
不断的学习,充实自己。
展开
-
Delphi 26 岁
诞生于1995年的 Delphi 现在已经 26 岁了。1995年2月14日,Borland 公司推出了面向开发者的新工具——Delphi,旨在接替 DOS 时代盛行一时的 Turbo Pascal。说到这两款产品必然离不开它们的灵魂人物——Anders Hejlsberg,他编写了 Turbo Pascal 第一个版本的编译器,加入 Borland 后继续开发 Turbo Pascal,并带领小组设计了 Turbo Pascal 的继任产品 Delphi。Anders Hejlsberg 还担任了 T原创 2021-03-02 11:03:33 · 211 阅读 · 0 评论 -
简化版拼音反查单元
unit IMCode;(* 简化版拼音反查单元: 修改内容 去掉外挂字典,简化代码*)interface/// <summary>/// 要生成拼音的字符串ansi/// </summary>/// <param name="stText">要生成拼音的字符串ansi</param>/// <param name="iMode">模式</param>/// <param name="iCount.原创 2020-08-06 10:11:55 · 2134 阅读 · 0 评论 -
DELPHI日期时间函数
rocedure TForm1.Button1Click(Sender: TObject);beginMemo1.Lines.Add(FormatDateTime('yyyy-mm-dd',StartOfTheMonth(Now)));Memo1.Lines.Add(FormatDateTime('yyyy-mm-dd HH-MM-SS',EndOfTheMonth(Now)));//Memo1.Lines.Add(DateTimeToStr(StartOfTheMonth(Now...原创 2020-07-23 11:08:41 · 1386 阅读 · 0 评论 -
API 进程与线程函数
遍历进程并获取进程路径代码文件:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObj.原创 2020-07-21 09:04:18 · 242 阅读 · 0 评论 -
GetActiveWindow - 获取当前活动窗口的句柄/ FlashWindow - 闪烁窗口/改变矩形大小
GetActiveWindow - 获取当前活动窗口的句柄//声明: GetActiveWindow: HWND; {无参数; 返回当前活动窗口的句柄}//举例:var h: HWND;begin h := GetActiveWindow; FlashWindow(h, True);end;FlashWindow - 闪烁窗口//声明:FlashWindow( hWnd: HWND; {窗口句柄} bInvert: BOOL {设为 True 才会闪..原创 2020-07-21 09:03:56 · 1223 阅读 · 0 评论 -
GetFocus - 获取当前拥有焦点的窗口的句柄
//声明:GetFocus: HWND; {无参数; 返回当前拥有焦点窗口的句柄}//举例:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm1 = class(TForm) Button1: TButton; Memo1: TMem.原创 2020-07-21 09:04:28 · 1399 阅读 · 0 评论 -
GetParent - 判断两个窗口是不是父子关系
//声明:IsChild( hWndParent, hWnd: HWND {参数是两个窗口句柄, 父窗口在前}): BOOL;原创 2020-07-14 14:20:25 · 271 阅读 · 0 评论 -
IsIconic、IsZoomed - 分别判断窗口是否已最小化、最大化
//声明:IsIconic( hWnd: HWND {窗口句柄}): BOOL;IsZoomed( hWnd: HWND {窗口句柄}): BOOL;原创 2020-07-14 14:19:51 · 991 阅读 · 0 评论 -
MoveWindow - 改变窗口的位置与大小
//声明:MoveWindow( hWnd: HWND; {窗口句柄} X, Y: Integer; {位置} nWidth, nHeight: Integer; {大小} bRepaint: BOOL {是否重绘}): BOOL;//举例:procedure TForm1.Button1Click(Sender: TObject);begin MoveWindow(Button1.Handle, 0.原创 2020-07-14 14:19:15 · 661 阅读 · 0 评论 -
SetWindowPos - 改变窗口的位置与状态
//声明:SetWindowPos( hWnd: HWND; {窗口句柄} hWndInsertAfter: HWND; {窗口的 Z 顺序} X, Y: Integer; {位置} cx, cy: Integer; {大小} uFlags: UINT {选项}): BOOL;//hWndInsertAfter 参数可选值:HWND_TOP = 0; {在前面}HWND_BOTT.原创 2020-07-14 14:18:18 · 1213 阅读 · 0 评论 -
WindowFromPoint- 获取指定点所在窗口的句柄
//声明:WindowFromPoint(Point: TPoint): HWND;//举例:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm1 = class(TForm) Button1: TButton; Timer1: TT.原创 2020-07-14 14:17:41 · 670 阅读 · 0 评论 -
GetWindowRect、GetClientRect - 获取窗口的外部与内部矩形
提示:1、其实用 Delphi 内部同类函数很方便的, 但系统函数是全局的;2、使用 GetClientRect 时, 一般要 Windows.GetClientRect, 因为 TForm 的父类有同名函数.//声明:{获取窗口外部矩形(相对于屏幕)}GetWindowRect( hWnd: HWND; {窗口句柄} var lpRect: TRect {用于返回的矩形指针}): BOOL;{获取窗口内部矩形}GetClientRect( hWnd: HWND.原创 2020-07-14 14:16:54 · 513 阅读 · 0 评论 -
GetParent、SetParent、MoveWindow - 获取、指定父窗口和移动窗口
提示: SetParent 应该 Windows.SetParent, 因为 TForm 的父类有同名方法.//声明:{获取父窗口句柄}GetParent(hWnd: HWND): HWND;{指定父窗口}SetParent( hWndChild: HWND; {子句柄} hWndNewParent: HWND {父句柄}): HWND; {成功返回原父窗口句柄; 失败返回 0}{移动窗口}MoveWindow( hWnd: HWND; .原创 2020-07-14 14:15:46 · 1252 阅读 · 0 评论 -
delphi数据类型列表
分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 2147483647 4 有符号32位 Cardinal 0 .. 4294967295 4 无符号32位 Shortint -128 .. 127 1 有符号8位 Smallint -32768 .. 32767 2 有符号16位 Longint -2147483648 .. 214原创 2020-07-13 17:17:00 · 191 阅读 · 0 评论 -
BCB和Delphi 执行顺序与快捷键
BCB和Delphi中Form的事件触发顺序实现一项功能通常要做两件事:a)首先要知道在哪里控制;b)其次要知道如何控制。然而,很多情况下都是我们已经知道怎么去控制,但不知道控制点选在哪里。这主要是因为我们对组件事件的触发顺序搞不清楚。构造函数->OnCreate->OnShow->OnActivate->OnPaint->OnCloseQuery->...原创 2020-04-13 16:00:30 · 489 阅读 · 0 评论 -
BCB 中测量Richedit 的文本总行高
BCB 中测量Richedit 的文本总行高1,需要使用EM_FORMATRANGE 消息2,实现的代码如下://---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include "Unit1.h"/...原创 2019-04-15 08:25:03 · 336 阅读 · 0 评论 -
C++Builder的基本功能
C++Builder的基本功能我们用高级语言写程序,我们很得意,因为高级语言比较接近人类的语言,使我们用起来得心应手,所以我们当然得意。但我们更得意的一定是让程序代码赶快变成可执行文件。无论是在写代码的过程,还是最后要编译成可执行文件,都需要有一个工具存在。这一工具一般称为编程集成环境(IDE)。之所以称为集成,是因为从写代码到最后软件的出炉,我们需要它的地方实在太多了,这里列出其中...原创 2019-05-07 09:09:15 · 4631 阅读 · 0 评论 -
BUilder高效率代码
今天分析了一个C++Bulider (Delphi)程序的汇编代码,发现了提高代码效率的一个小窍门,希望能给C++Builder和Delphi程序员做代码优化的时候提供一点参考。汇编代码是这样的:一开始判断一个文本框的输入字符是否为空,汇编代码里面有:00456DAB |. 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C]00456DAE |....原创 2019-05-07 09:16:03 · 301 阅读 · 0 评论 -
Builder聊天
创建基于Internet的应用程序,你也许会想到复杂的WinSock编程。不过,C++ Builder3提供了新的WebBroker的Internet套件,其中的TClientSocket和TServerSocket组件封装了Windows的有关API,大大简化了WinSock编程。要通过Internet传输数据,至少需要一对Socket,一个Socket在客户端,另一个Socket在服务器端。其...原创 2019-05-07 09:19:50 · 244 阅读 · 0 评论 -
Builder中使用Access数据库
Access数据库在管理中得到了广泛的应用,在长期的使用中已有很多数据资料存储在Access数据库的文件中,用C++ Builder编程时,往往也需要使用Access数据库,来实现数据的传递。在C++ Builder中使用Access数据库既可以在设计期实现,也可以在运行期通过编程实现。下面就以一个简单的例子,来说明在C++ Builder中如何使用Access数据库。在设计期使用Ac...原创 2019-05-07 09:20:16 · 867 阅读 · 0 评论 -
BCB中利用剪贴板复制粘贴
将一个字符串拷贝到剪贴版中的不同方法:#include <vcl/Clipbrd.hpp>// 方法一: TClipboard *pClipboard = new TClipboard(); pClipboard->AsText = "拷贝到剪贴版的文字数据"; delete pClipboard;// 方法二: TClipboard *p...原创 2019-07-16 17:01:50 · 876 阅读 · 0 评论 -
Borland C++Builder 3 VS Delphi 3
自从Borland推出了Borland C++ Builder之后,许多人时常会询问BCB和Delphi有什么不同?除了使用的语言(C/C++ v.s. Object Pascal)之外,是不是都一样?也有人经 常会不满的指出,是不是BCB 一定会在功能上落后Delphi一个版本,那么使用BCB的人比 起Delphi 的程序员来说,是不是代表全用BCB的人是二等公民.说实话在BCB ...原创 2019-04-30 09:23:59 · 598 阅读 · 0 评论 -
C++Builder的基本功能
C++Builder的基本功能我们用高级语言写程序,我们很得意,因为高级语言比较接近人类的语言,使我们用起来得心应手,所以我们当然得意。但我们更得意的一定是让程序代码赶快变成可执行文件。无论是在写代码的过程,还是最后要编译成可执行文件,都需要有一个工具存在。这一工具一般称为编程集成环境(IDE)。...原创 2019-04-30 09:14:36 · 9824 阅读 · 2 评论 -
RichEditCtrl的使用经验
一.常见问题a.可以编译,不能执行的AfxInitRichEdit();b.升级默认的Riched版本(默认的有一些bug),如可在InitInstance中添加LoadLibrary("RICHED20.DLL")最后注意 FreeLibrary 如果是CRichEditView基类的可用BOOL CXXXXXXView::PreCreateWindow(CREATE...原创 2019-04-02 08:57:05 · 1063 阅读 · 0 评论 -
Richedit使用大全
一.常见问题a.可以编译,不能执行的AfxInitRichEdit();b.升级默认的Riched版本(默认的有一些bug),如可在InitInstance中添加LoadLibrary("RICHED20.DLL")最后注意FreeLibrary如果是CRichEditView基类的可用BOOL CXXXXXXView::PreCreateWindow(CREATESTRUCT&...转载 2019-04-01 08:18:40 · 983 阅读 · 0 评论 -
C++ Builder组件属性详解
尽管C++Builder的组件种类繁多,每种组件又都有许多不同的属性,但是在这些众多的属性中有相当一部分是大多数组件所共有的。因此我们应当主要掌握这些共有组件。在设计时设置属性一般是通过属性窗口来进行的。在属性窗口设置组件属性的操作步骤如下: 1) 打开相应对象的属性窗口。 2) 从属性列表中选定属性名称。 3) 在属性窗口的右列输入或选择新的属性值。注意:有些属性在设置值右侧有…按钮,单击...原创 2019-04-12 08:43:30 · 3050 阅读 · 0 评论 -
常用的BCB 函数
文件: ActnListCreateAction 函数 创建一个指定类型的Action,显示在action list editor中。EnumRegisteredAction 过程 枚举已经注册的ActionRegisterAction 过程 注册ActionUnRegisterAction 过程 反注册Action文件: ClassesBounds 函数 输入上下高宽返回...原创 2019-04-12 08:45:02 · 1393 阅读 · 0 评论 -
解决BCB RICHEDIT控件在特有的格式 无法删除,是因为有保护属性
如果你的控制字符只有一个字符那不存在keendom所说的问题:如果有多个字符,为防止控制字符被编辑可使用protect属性,用消息来实现//上接取属性语句Richedit::CHARFORMAT2fmt;fmt.cbSize=sizeof(Richedit::CHARFORMAT2A);fmt.dwMask=CFM_PROTECTED;fmt.dwEffects=...原创 2019-04-15 08:24:55 · 329 阅读 · 0 评论 -
RichEdit的用法总结
richedit 常见使用问题一.常见问题a.可以编译,不能执行的在需要在相应的对话框中加上InitInstance(void)函数中添加AfxInitRichEdit();b.升级默认的Riched版本(默认的有一些bug),如可在InitInstance中添加LoadLibrary("RICHED20.DLL")最后注意 FreeLibrary如果是...转载 2019-04-02 08:57:17 · 4038 阅读 · 0 评论 -
c++builder RichEdit的源码显示之亮显(附代码)
因为要在richEdit中显示pb源码,故写了亮显代码。因为只做显示,无需编辑,所以不想借用控件,那样升级维护比较麻烦。图先:基本和pb中看到的效果一直,而且处理了数字(整数和小数),枚举常量。注释,字符串优先处理。/*附属定义const int KEYWORD_QTY = 140;const int KEYWORD_MAXLEN = 15 ,KEYWORD_MINLEN =...转载 2019-03-25 08:43:16 · 871 阅读 · 0 评论 -
新代码, 通过空格分割要高亮的内容, 你把你图片里的顿号改成空格就行了
procedure TForm1.Button1Click(Sender: TObject); procedure _HighLightText(AStr: string); var nPos, nStrLength, nAllLength: Integer; begin nPos := 0; nAllLength := RichEdit2.GetTextL...原创 2019-04-15 08:25:16 · 320 阅读 · 0 评论 -
unicode转换
static std::wstring MBytesToWString(const char* lpcszString); static std::string WStringToMBytes(const wchar_t* lpwcszWString); static std::wstring UTF8ToWString(const char* lpcszString);...原创 2019-03-12 08:42:28 · 420 阅读 · 0 评论 -
控件命名
原创 2019-04-12 08:44:41 · 310 阅读 · 0 评论 -
C++builder常用函数
六.Borland C++ Builder VCL的时间函数 1. Date 返回TDateTime对象,包含当前的年月日信息,函数原型如下: System::TDateTime __fastcall Date(void); 2. Time 返回TDateTime对象,包含当前的时间信息,函数原型如下: System::TDateTime __fast...原创 2019-04-02 08:57:54 · 1733 阅读 · 0 评论 -
XE7、XE8启动界面全屏问题的解决方法
XE7、XE8启动界面全屏问题的解决方法一、选择Project下的Options二、进入如下图界面根据Splash Image 的要求分别裁切出对应的尺寸大小 426*320行行 设置Splash Gravity的参数 Fill单击“OK”完成,这个时候启动界面还是不会全屏。关键也就在下面的设置了六、把原来存放的文件放到别外一个文件夹下去...转载 2019-04-29 13:20:51 · 827 阅读 · 0 评论 -
微信支付全流程对接文档
微信支付全流程对接文档 第一部分:诊中支付 1.1.1患者信息查询 请求地址 注意 诊疗卡类型必须支持身份证和院内诊疗卡两种(patCardType = 1或5); 当诊疗卡类型为身份证时(patCardType = 5),患者姓名不能为空,HIS根据患者姓名跟身份证号码查询患者信息,当匹配到多条患者信...原创 2019-05-07 09:09:58 · 4018 阅读 · 0 评论 -
调用预定
MFC的DLL 一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。 DLL的背景知识 ...原创 2019-04-12 08:43:19 · 229 阅读 · 0 评论 -
读取XML
如何读取xml文件?<?xml version= "1.0 " encoding= "GB2312 "?><vote product_id= "YXTP " count= "0 " total= "0 "> <key id= "1 " name= "1 " count= "65 " /> <ke...原创 2019-04-12 08:44:05 · 218 阅读 · 0 评论 -
C++ Builder API函数大全
C++ Builder API函数大全1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetClo...原创 2019-04-01 08:18:48 · 340 阅读 · 0 评论 -
DBGrid 应用全书
DBGrid 应用全书在 Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一。但是 DBGrid 缺省的外观未免显得单调和缺乏创意。其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观的目的。通过编程,我们可以改变 DBGrid 的表头、网格、网格线的前景色和背景色,以及相关的字体的...原创 2019-04-02 08:56:46 · 1134 阅读 · 0 评论