预览模式: 普通 | 列表
九大功能集一身(IP阻塞,CC攻击,线程限制,防盗链,URL重写,代码过滤,信息过滤,SQL注入防护,上传攻击防护)IDC网站天使(IDCWebAngel) 1.0.0.7 正式版发布!

什么是“网站天使”?

众所周知“天使”即是上帝派来守护人类的使者!他们拥有着常人没有的能力!也就是因为他们拥有常人没有的能力,他们才可以守护人类!

查看更多...

分类:IDC网站天使 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 939
转自:路西法地狱    作者:朱学恒

    “人类虽然聪明到能够消灭许多的物种,但是,到目前为止,还没有办法救回任何一个被他们灭绝的族类。”——Gerald Durrel,《CATCH ME A COLOBUS》
    
    龙枪系列中出现了很多的巨龙,他们有的是善良的,有的是邪恶的,有的老眼昏花,有的年轻激进,都让人对于这些活在传说中的生物感到好奇。我们自称龙的传人,皇帝要穿龙袍,喝酒有景德镇的著名瓷器“九龙公道杯”,端午节还可以划龙船;而西方的龙则是看守金苹果,把守伊甸园,任意吞吃无辜的人类,是魔王撒旦的使徒,几乎每一个功成名就的英雄都必需要宰上一两个才行。不过,这个带着极重神秘色彩的传说生物到底是怎么诞生的,而东方和西方又各有着什么样的传说呢?就让我们来看看吧!

查看更多...

Tags: 生物

分类:休闲娱乐 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 817

Delphi嵌入式汇编一例

用delphi写的程序,把x指针指向的4个字节次序颠倒过来:
function toulong(x: pchar): longword;
begin
   result := (longword(x^) shl 24) or
     (longword((x + 1)^) shl 16) or
     (longword((x + 2)^) shl 8) or

查看更多...

Tags: Delphi嵌入式汇编一例

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 928

Delphi编程技巧十则

Delphi作为一门新起的Windows编程语言,由于其集
众多的优秀特性于一身,因而越来越得到广大编程人员和
发烧友的青睐。以下十则技巧涉及的面比较广泛,希望能
够对Delphi的爱好者有所裨益。

  1.类似于vb.中的doevents功能。

查看更多...

Tags: Delphi编程技巧

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 908

回调函数与Delphi的事件模型

回调函数:回调函数是这样一种机制:调用者在初始化一个对象(这里的对象是泛指,包括OOP中的对象、全局函数等)时,将一些参数传递给对象,同时将一个调用者可以访问的函数地址传递给该对象。这个函数就是调用者和被调用者之间的一种通知约定,当约定的事件发生时,被调用者(一般会包含一个工作线程)就会按照回调函数地址调用该函数。这种方式,调用者在一个线程,被调用者在另一个线程。在Windows API中有一些函数使用回调函数,例如CreateThread、SetWindowLong等。对应的回调函数定义为如下形式:function CallBackFunc(Wnd: HWND; Msg, WParam, LParam: Longint): Longint;stdcall;procedure ThreadFunction(Ptr: Pointer);stdcall;消息:消息也可以看作是某种形式的回调,因为消息也是在初始化时由调用者向被调用者传递一个句柄和一个消息编号,在约定的事件发生时被调用者向调用者发送消息。这种方式,调用者在主线程中,被调用者在主线程或者工作线程中。Delphi事件模型:在Delphi的VCL中有很多可视化组件都是使用事件模型,例如TForm的OnCreate事件,其原理是:在设计时指定事件函数,在运行时事件触发,则会调用在设计时指定的事件函数。在机制上,Delphi事件模型与回调是一样的。但具体形式有些区别,纯的回调函数是全局函数的形式,而Delphi事件是对象方法的形式,即可以定义如下回调函数类型typeTCallBackFunc = procedure (pData: Pointer) of object;这就使得Delphi事件只能在Delphi内部使用,而回调函数是可以跨语言的。另外还要注意,回调函数一般(在Delphi的组件是在主线程中)是在回调体中创建的线程,因此要有临界区保护。

Tags: 回调函数 Delphi事件模型

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 959

如何为Delphi程序添加事件和事件处理器

Delphi是一种功能很强的可视化程序开发工具。我们在使用Delphi开发WINDOWS 应用程序的过程中,虽然Delphi为每个可视化组件都提供了很多属性(Property)和事件(Event),但在实际应用中可能会碰到一些自己需要的特殊事件,这些特殊事件Delphi 又没有提供,这时我们就需要为应用程序添加这些特殊事件。当这些事件发生后,又能马上调用处理这些事件的过程。本文通过实例来说明如何为应用程序添加事件和处理事件的过程。
  在Delphi中,事件实际上是专门化的属性,它是一个过程(procedure)的指针。要添加事件,首先应在所定义的类中说明一个用来指向事件过程的指针,该指针的作用是当事件一旦发生,就通过这个指针执行所指向的处理这个事件的过程。最后通过指定符 published公布定义的事件属性以及与之关联的事件处理过程指针。

  本例中,FtooBig为定义的事件处理过程指针,OnTooBig为事件属性名。事件处理过程指针FtooBig通过程序的初始化使之指向过程TooBig1。在Delphi的表单(Form1)上放置三个编辑框,分别为Edit1、Edit2和Edit3,放一按钮Button1。程序中设私有整型变量val1、val2和res,变量res用来记录val1和val2的乘积,并用Edit3显示出来。当通过Edit1和Edit2输入的数据有一个大于100时,会触发一个事件,并调用事件处理过程TooBig1显示一个对话框,说明此事件已经发生并已进行处理。源程序代码如下, 该程序在Delphi 3中调试通过。

unit Unit1;

查看更多...

Tags: Delphi事件 事件处理器

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 828

Delphi代码风格约定

Delphi代码风格约定
qingrui li 据Charles Calvert的Object Pascal Style Guide编注

注:很多用Delphi的人不注意代码风格,经常写一些不规范的代码,以致别人很难看懂且容易出错。希望本文能鼓励广大Delphi爱好者统一到标准风格,共同前进。

本文描述了格式化Delphi代码的标准风格。次风格基于Delphi开发组的编码约定。我们承认很多流行的源码使用了不同于我们的风格,但是我们强烈推荐在公共源码社区使用Borland风格。

查看更多...

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 870
近日,在网上看到有网友问曰:如何确定一个对象指针是否可用?也就是说,如何确定一个对象指针是否指向一个真正可用的对象实例?其实这本不应该成为一个问题。因为对于程序设计者来说,他应该能够控制自己的程序不去访问一个无效的指针,因为所有的对象实例的创建和销毁都在他控制之下。并且即便没有一个直接的办法来判断对象指针是否可用,也可以通过其他间接的途径(比如使用一些标识等)来做到这一点(比如当我们销毁一个对象实例后,我们将对象指针的指置为nil)。但是假如我们抛开以上所说的这两点不谈,单单来研究在Delphi中,究竟有没有办法来判断一个对象指针是否可用,那情况会如何呢?

在Object Pascal中,一个类可以有两种类型的方法,一种称为对象方法(Object Method),另一种是类方法(Class Method)。所谓对象方法,指的是方法的定义是针对对象(或称实例)的,因此调用该方法需要基于某个对象(或称实例),比如类的析构函数Destroy就是一个对象方法(其实我们经常用到的绝大部分方法都是对象方法)。而类方法,指的是方法的定义是基于一类对象而言,因此调用该方法不需要基于特定的对象实例,比如类的构造函数Create就是如此。这一点,对我们有些启发。判断一个对象指针是否可用,似乎可以通过以下步骤来完成。首先,我们可以判断该对象指针是否是nil,如果是,那么大功告成,确定不可用无疑;如果否,那么尝试执行该对象的某个对象方法,看看是否出现诸如无效内存访问等的异常,由此来判断该对象是否可用。用如下代码来验证我们的想法:

var

查看更多...

Tags: 指针

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 776