随笔分类 -  delphi 笔记

摘要:在做中间层时,中间层往往不需要点击关闭时立刻关闭,而是最小化到托盘。故而特意隐藏关闭按钮功能。 1)隐藏退出功能 用PopMenu退出菜单代替 1.增加popMenu退出菜单,绑定到窗体 2.增加变量控制是否真的退出b_isClose;//True 退出 False 不退出 [delphi] vie 阅读全文
posted @ 2018-03-23 10:42 h2z 阅读(468) 评论(0) 推荐(0) 编辑
摘要:网上关于消息队列技术原理说明的详细文档很多,但涉及到Delphi的具体实现很少,这是我从网上找了一上午的资料,自己整合和尝试的能运行的程序。 打开控制面板->程序->添加组件,添加消息队列 打开控制面板->计算机管理->服务与应用程序->消息队列,添加私有有消息Test. 在Delphi中添加MSM 阅读全文
posted @ 2018-01-12 13:16 h2z 阅读(491) 评论(0) 推荐(0) 编辑
摘要:摘要 面向对象设计(OOD)有助于我们开发出高性能、易扩展以及易复用的程序。其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC、DI以及Ioc容器等概念。通过本文我们将一起学习这些概念,并理清他们之间微妙的关系。 目录 前言 依赖倒置原则(DIP) 控制反转(IoC) 依赖 阅读全文
posted @ 2017-12-08 10:04 h2z 阅读(227) 评论(0) 推荐(0) 编辑
摘要:一、简介: Elite Container是DELPHI下的一个轻量级IoC对象容器(IoC:Inverse of Control,反转控制)。它是参考了Java中的Spring框架(主要是配置文件的写法),并结合DELPHI的特点来构建的。相比Spring的对象容器,它提供的功能更为精简常用(如对 阅读全文
posted @ 2017-12-08 10:03 h2z 阅读(495) 评论(0) 推荐(0) 编辑
摘要:AOP现在很火,网上有这许多支持AOP的框架,对于Delphi来说同样也有MeAOP。不过觉得这些框架太复杂了。 现在有一个系统,基本上都快结束了,整体上当然是没有采用什么AOP的框架。对于这样的系统能否用上AOP的一点点好处呢? 项目组提出在现有的系统上加入日志记录的需求。大家一起来看看我是怎么来 阅读全文
posted @ 2017-12-08 10:01 h2z 阅读(657) 评论(0) 推荐(0) 编辑
摘要:unit CapIp; interface uses Windows, Messages,Classes,winsock,sysutils; const WM_CapIp = WM_USER + 200; STATUS_FAILED =$FFFF; //定义异常出错代码 MAX_PACK_LEN ... 阅读全文
posted @ 2017-11-10 08:29 h2z 阅读(718) 评论(0) 推荐(0) 编辑
摘要:Delphi 支持三种形式的回调函数 全局函数这种方式几乎是所有的语言都支持的,类的静态函数也可以归为此类,它保存的只是一个函数的代码起始地址指针( Pointer )。在 Delphi 中声明一般为: 1 TXXX=procedure/function (参数列表); 类的成员函数类的成员函数作为 阅读全文
posted @ 2017-08-18 14:28 h2z 阅读(705) 评论(0) 推荐(0) 编辑
摘要:DLL注入是一种允许攻击者在另一个进程的地址空间的上下文中运行任意代码的技术。攻击者使用DLL注入的过程中如果被赋予过多的运行特权,那么攻击者就很有可能会在DLL文件中嵌入自己的恶意攻击代码以获取更高的执行权限。 具体而言,该技术遵循以下步骤: 1. 需要将DLL写入磁盘中; 2. “CreateR 阅读全文
posted @ 2017-08-15 15:15 h2z 阅读(951) 评论(0) 推荐(0) 编辑
摘要:mORMot没有控件安装,直接添加到lib路径,工程中直接添加syncommons,syndb等到uses里 在进行网络编程中需要JSON对象的构建与解析,这个Delphi XE+自带:{$IF CompilerVersion>22}, System.JSon{$ELSE}, DBXJSON{$IF 阅读全文
posted @ 2017-08-15 14:32 h2z 阅读(1059) 评论(0) 推荐(0) 编辑
摘要://delphi中exit,abort,break,continue 的区别 exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,while, repeat等循环体continue: 结束循环内的本次处理,继续从循环体的开始位置继续执行 阅读全文
posted @ 2017-08-10 11:44 h2z 阅读(2838) 评论(0) 推荐(0) 编辑
摘要:Move 移动 1、将选定的静态函数从一个类移动到另一个类 2、将选中的类或接口移动到其他单元 Extract Interface 抽取接口 将选定的函数抽取到一个新的接口中 Extract Superclass 抽取基类 将选定的函数、属性、字段从一个类里抽取到一个基类中 Pull Member 阅读全文
posted @ 2017-07-11 16:51 h2z 阅读(220) 评论(0) 推荐(0) 编辑
摘要:最近因为工作需要,需要在不同的开发环境中应用Protobuf,特此,我专门研究了一下。为了防止自己忘记这些事情,现在记录在这里!需要的朋友可以借鉴一些,因为这些东西在GOOGLE和百度上搜索起来真的很费劲! 一、首先说DELPHI的。 因为DELPHI现在用的人不多了,所以找这个东西真心不好找!还好 阅读全文
posted @ 2017-07-09 18:02 h2z 阅读(484) 评论(0) 推荐(0) 编辑
摘要:Windows 2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处:(1)不用登陆进系统即可运行.(2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的.笔者在2003年为一公司开发机顶盒项目的时候,曾经写过课件上传和媒体服务,下面就介绍一下如何用De 阅读全文
posted @ 2017-06-15 16:37 h2z 阅读(678) 评论(0) 推荐(0) 编辑
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,FileCtrl,ShellAPI; type TForm1 阅读全文
posted @ 2017-05-22 11:37 h2z 阅读(1509) 评论(0) 推荐(0) 编辑
摘要:为什么搞WebKit 现在研究WebKit的人越来越多,俺不能免俗,也加入其中。WebKit的火爆也是得益于浏览器和WebOS的混战,随着Palm WebOS, Chrome OS, Firefox OS和Ubuntu Mobile相继发布,WebOS逐渐成为Android和iOS之外的第三世界,而 阅读全文
posted @ 2017-05-16 13:48 h2z 阅读(281) 评论(0) 推荐(0) 编辑
摘要:一、问题背景 大家可能会遇到这样一种情况,自己编写代码的时候,主进程可能会创建很多子进程,但是此时主进程可能由于某种原因自己崩溃,或者认为通过任务管理器结束掉,这时候子进程可能就会依旧存在。下面介绍一种方法可以让到主进程无论什么原因是掉以后子进程也跟着被杀死。 二、技术点 其实也很简单,就是使用一个 阅读全文
posted @ 2017-05-16 11:27 h2z 阅读(2403) 评论(0) 推荐(1) 编辑
摘要:转载:http://www.cnblogs.com/felixYeou/archive/2008/08/27/1277250.html 快速导航 一、 回顾历史二、 智能指针简介三、 Delphi中的interface四、 Delphi中智能指针的实现五、 interface + 泛型 = 强类型的 阅读全文
posted @ 2017-04-28 09:38 h2z 阅读(290) 评论(0) 推荐(0) 编辑
摘要:Align fields (Delphi) Go Up to Delphi Compiler Directives (List) Index Type Switch Syntax {$A+}, {$A-}, {$A1}, {$A2}, {$A4}, {$A8} or {$A16} {$ALIGN O 阅读全文
posted @ 2017-04-27 15:48 h2z 阅读(637) 评论(0) 推荐(0) 编辑
摘要:调用任何COM组件之前,你必须首先初始化COM套件环境,即调用CoInitialize或CoInitializeEx。COM套件环境在线程的生存周期内有效,线程退出前需要调用CoUninitialize释放COM套件。 所谓COM套件,实际上是微软为了方便大家理解而起的一个名字,不过个人认为改名词很 阅读全文
posted @ 2017-04-20 12:02 h2z 阅读(1209) 评论(0) 推荐(0) 编辑
摘要:应恢弘之约,写了一个对其发布的匿名函数动态绑定到事件的封装,代码如下: type TAnonEvent=class public class function Wrap<T1,T2>(OnEvent:T1):T2; end; { TAnonEvent } class function TAnonEv 阅读全文
posted @ 2017-04-20 11:34 h2z 阅读(867) 评论(0) 推荐(0) 编辑