delphi语言
实际经验记录和优秀文章转载
ysgs129
这个作者很懒,什么都没留下…
展开
-
禁止程序重復啟動的技巧
Mutex 作为系统核心对象是可以跨进程的(临界区就不行), 我们可以利用互斥对象禁止程序重复启动.工作思路:先用 OpenMutex 尝试打开一个自定义名称的 Mutex 对象, 如果打开失败说明之前没有这个对象存在;如果之前没有这个对象, 马上用 CreateMutex 建立一个, 此时的程序应该是第一次启动;再重复启动时, 那个 OpenMutex 就有结果了, 然后强制退出.最后...原创 2020-05-02 10:36:13 · 133 阅读 · 0 评论 -
Delphi方法的类型
对象的方法能定义成静态(static)、虚拟(virtual)、动态(dynamic)或消息处理(message)。请看下面的例子: TFoo = class procedure IAmAStatic; procedure IAmAVirtual; virtual; procedure ...原创 2020-05-02 10:35:15 · 251 阅读 · 0 评论 -
Delphi控件开发浅入深出(八)
Delphi的一大亮点就是它的数据库开发能力。而数据敏感组件则在这中间起着很重要的作用。在Delphi的Data Control页面下的控件都是用于显示和编辑数据库中的数据的。相信大家已经体会到数据敏感控件的好处了。我们这一节就给大家演示一下数据敏感控件的开发方法。需要提醒大家的是,不像其他体系的控件,数据敏感控件并没有一个统一的基类,只要是从TwinControl类或其子类派生就可以,数据敏感...原创 2020-05-02 10:34:14 · 145 阅读 · 0 评论 -
Delphi控件开发浅入深出(七)
Delphi中有很多对话框组件,例如TopenDialog、TfontDialog等。这些控件的特点就是虽然是不可视控件,但是在运行时都有一个可视化的效果,比如TopenDialog的可视化效果就是一个打开对话框。我们这次将开发一个日期对话框控件,当我们调用控件的Execute方法(不一定非要使用Execute方法,不过大部分对话框控件都是使用这个方法,我们也就按照惯例来了)时,就会弹出一个可以选...原创 2020-05-02 10:33:03 · 173 阅读 · 0 评论 -
Delphi控件开发浅入深出(六)
控件的关联在Delphi中也是很常见的,我们可以设定一个控件的某个属性指向另一个控件。比如我们在窗体上放上Tedit,TpopupMenu两个控件,然后设定Tedit的PopupMenu属性为TpopupMenu控件,运行后在Tedit点击右键就会弹出刚才设定的那个TpopupMenu菜单,也就是说Tedit,TpopupMenu联手完成了任务。再比如TDBEdit控件的DataSource属性就...原创 2020-05-02 10:32:01 · 277 阅读 · 0 评论 -
Delphi控件开发浅入深出(五)
复合控件是Delphi控件中非常重要的一种控件,复合控件就是将两个或两个以上的控件重新组合成一个新的控件。例如TspinEdit、TlabeledEdit、TDBNavigator等就是复合控件,TDBNavigator其实就是在一个Panel放上若干个Button而已。制作一个复合控件时,我们一般从TwinControl派生控件。我们这次做的控件是拥有一个Edit编辑框和一个Button按钮的...原创 2020-05-02 10:30:50 · 176 阅读 · 0 评论 -
Delphi控件开发浅入深出(四)
我们这个控件将演示控件的自定义事件的书写。这个控件有一个类型为string的SensitiveText属性,当用户在输入框中输入的文字为InvalidText时就会触发OnSensitiveText事件。按照惯例,我先把源码展示给大家:unit TextSenseEdit;interfaceusesSysUtils, Classes, Controls, StdCtrls;typeTS...原创 2020-05-02 10:29:41 · 182 阅读 · 0 评论 -
Delphi控件开发浅入深出(三)
用过Delphi1(好古老的东东呀!)的人相信都记得这个开关控件 ,不知道当初Borland为什么把这么一个在开发普通应用程序中应用不到的工控控件放到Delphi中,而且在Delphi2及其以后的版本中再也没有见过它的身影。让我们怀着怀旧的心情把这位“开国元老”请出来吧!1、建立位图资源文件:用Image Editor建立一个Res文件,并在文件中分别建立下面两个位图,并分别命名为SWITCH...原创 2020-05-02 10:28:36 · 219 阅读 · 0 评论 -
Delphi控件开发浅入深出(二)
通过开发上边这个控件,我们已经对Delphi控件开发有了基本的认识。下面我们将系统的讲述一下控件开发的知识。制作控件第一件事就是选择适当的 Delphi对象类型作为父对象,以派生新的对象。子对象可以继承父对象的全部非 private部件,但不能摆脱不需要的部件。因此,所选父对象应尽可能多地包含子对象所需的属性、事件和方法,但不应包含子对象不需要的东西。Delphi必须从Tcomponent或Tc...原创 2020-05-02 10:27:14 · 174 阅读 · 0 评论 -
Delphi控件开发浅入深出(一)
有人说过“不会开发控件的Delphi程序员不是真正的程序员”。Delphi正是由于高度的可扩展性和大量的第三方控件的支持才能吸引无数程序员挑剔的目光。即使是由于工作需要使用其他开发工具的开发者也常常怀念和Delphi度过的日日夜夜。接触Delphi已经一年多了,从当初对着Delphi组件面板上上百个控件不知所措,到现在已经可以根据需要开发一些有一定难度的控件,其中走过的路是十分艰辛的,所以特此写下...原创 2020-04-26 14:31:02 · 333 阅读 · 0 评论 -
禁止程序重復啟動的技巧
Mutex 作为系统核心对象是可以跨进程的(临界区就不行), 我们可以利用互斥对象禁止程序重复启动.工作思路:先用 OpenMutex 尝试打开一个自定义名称的 Mutex 对象, 如果打开失败说明之前没有这个对象存在;如果之前没有这个对象, 马上用 CreateMutex 建立一个, 此时的程序应该是第一次启动;再重复启动时, 那个 OpenMutex 就有结果了, 然后强制退出.最后...原创 2020-04-26 14:28:54 · 143 阅读 · 0 评论 -
Delphi方法的类型
对象的方法能定义成静态(static)、虚拟(virtual)、动态(dynamic)或消息处理(message)。请看下面的例子: TFoo = class procedure IAmAStatic; procedure IAmAVirtual; virtual; procedure ...原创 2020-04-26 14:27:58 · 111 阅读 · 0 评论 -
QQ农场外挂源代码
//QQ农场外挂源代码unit WebQQFunction;interfaceusesWindows, SysUtils, Classes, StdCtrls, IdBaseComponent, IdComponent, StrUtils, ExtCtrls,IdTCPConnection, IdTCPClient, IdHTTP, jpeg, IdAuthentication, IdH...原创 2020-04-25 09:50:28 · 3542 阅读 · 1 评论 -
delphi中string如何转化为array of char
1:我知道,我对这方面研究很深!标准答案:例子:procedure TForm1.Button1Click(Sender: TObject);varmychar: array of char;mystr: string;beginmystr:=‘this’;setlength(mychar,4); //设置数组长度move(mystr[1],mychar[0],length(my...原创 2020-04-25 09:47:56 · 1826 阅读 · 0 评论 -
两个变量的值交换方法
我分析了一下执行代码中间变量:Temp := Num1;Num1 := Num2;Num2 := Temp;加减:Num1 := Num1 + Num2;Num2 := Num1 - Num2;Num1 := Num1 - Num2;乘除:Num1 := Num1 * Num2;Num2 := Num1 div Num2;Num1 := Num1 div Num2;异或...原创 2020-04-25 09:46:57 · 386 阅读 · 0 评论 -
Delphi 中String类型原理介绍
Delphi中字符串的操作很简单,但幕后情况却相当复杂。Pascal传统的字符串操作方法与Windows不同,Windows吸取了C语言的字符串操作方法。32位Delphi中增加了长字符串类型,该类型功能强大,是Delphi缺省的字符串类型。字符串类型在Borland公司的TurboPascal和16位Delphi中,传统的字符串类型是一个字符序列,序列的头部是一个长度字节,指示当前字符串的长度...原创 2020-04-25 09:45:47 · 714 阅读 · 0 评论 -
怎么获取本机网卡号
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;constMAX_ADAPTER_NAME_LENGTH = 256;MAX_ADAPTER_DESCRIPTION_LENGTH = 12...原创 2020-04-24 14:40:13 · 347 阅读 · 0 评论 -
獲取flash句柄
function EnumerateChildWindows(hWnd: HWND; lParam: LPARAM): BOOL; stdcall;varClassName: Array[0…255] of char; // this holds the class name of our child windowsbeginGetClassName(hWnd,ClassName,25...原创 2020-04-24 14:38:58 · 283 阅读 · 0 评论 -
結構體文件的讀寫(.dat)
讀寫方式一:KChratList := TLRDL2StyleList.Create(‘E:\Voice-king\ADSLRDLC_CE2\090602.dat’);//重點k:=0;for i:= KChratList.Count-1 downTo 0 dobegininc(k);if k >2000 then Break;TheItem := KChratList[i];...原创 2020-04-24 14:37:54 · 187 阅读 · 0 评论 -
勾子用法實例
unit hook11;interfaceusesWindows,SysUtils,Classes,Messages;typePKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;KBDLLHOOKSTRUCT = recordvkCode: DWORD;ScanCode: DWORD;Flags: DWORD;Time: DWORD;dwExtraI...原创 2020-04-24 14:36:29 · 116 阅读 · 0 评论 -
Interface 在DELPHI里的用法示例
任务描述:我们有4个类,分别生成4个对象:A、B、C、DA需要调用B的方法,把数据送给B;然后,B调用C的方法,把A送来的数据送给C;然后,C调用D的方法,把B送来的数据送给D;然后,当D使用完这个数据后,D要调用C的方法将处理结果通知C;C再把处理结果通知B;B再把处理结果通知A;要求:写A、B、C、D四个类的时候,要避免对象之间的紧密偶合。按传统做法,大概是让A、B、C、D四...原创 2020-04-23 19:35:15 · 489 阅读 · 0 评论 -
delphi面向對象的覆蓋和重載代碼例子
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;Edit1: TEdit;pr...原创 2020-04-23 19:33:53 · 129 阅读 · 0 评论 -
delphi读写txt文件
memo控件读取txtmemo1.Lines.LoadFromFile(‘E:**.txt’);Procedure NewTxt(FileName:String);VarF : Textfile;Beginif fileExists(FileName) then DeleteFile(FileName); {看文件是否存在,在就刪除}AssignFile(F, FileNa...原创 2020-04-23 19:30:56 · 757 阅读 · 0 评论 -
即将逝去的Delphi前景在何方
自1995年Borland公司发布Delphi 1.0以来,Delphi受到很多开发者的亲睐,到1999年发布Delphi5,Delphi以其开发快捷、控件丰富、易于上手等优势吸引了众多的开发者,用户人数达到高潮,一度超越Visual Studio。可是好景不长,在推出Delphi7之后不久,Borland公司也走向衰败,最终被人收购,仅卖了区区7500万美元。Borland公司倒闭的主要原因...转载 2020-04-10 14:39:34 · 1720 阅读 · 0 评论