中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
Delphi基础开发技巧(14)
作者:佚名 时间:2007-09-18 16:48 出处:51cto 责编:月夜寒箫
              摘要:Delphi基础开发技巧(14)
[DELPHI]接口和类的一个范例代码

Type{接口和类申明:区别在于不能在接口中申明数据成员、任何非公有的方法、公共方法不使用PUBLIC关键字}

Isample=interface//定义Isample接口

function getstring:string;

end;

Tsample=class(TInterfacedObject,Isample)

public

function getstring:string;

end;

//function定义

function Tsample.getstring:string;

begin

result:='what show is ';

end;

//调用类对象

var sample:Tsample;

begin

sample:=Tsample.create;

showmessage(sample.getstring+'class object!');

sample.free;

end;

//调用接口

var sampleinterface:Isample;

sample:Tsample;

begin

sample:=Tsample.create;

sampleInterface:=sample;//Interface的实现必须使用class

{以上两行也可表达成sampleInterface:=Tsample.create;}

showmessage(sampleInterface.getstring+'Interface!');

//sample.free;{和局部类不同,Interface中的类自动释放}

sampleInterface:=nil;{释放接口对象}

end;

 

[DELPHI]任务条就看不当程序

var

ExtendedStyle : Integer;

begin

Application.Initialize;

ExtendedStyle := GetWindowLong (Application.Handle, GWL_EXSTYLE);

SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle OR WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW);

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

[DELPHI]ALT+CTRL+DEL看不到程序

在implementation后添加声明:

function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';

RegisterServiceProcess(GetCurrentProcessID, 1);//隐藏

RegisterServiceProcess(GetCurrentProcessID, 0);//显示

[DELPHI]检测光驱符号

var drive:char;

cdromID:integer;

begin

for drive:='d' to 'z' do

begin

cdromID:=GetDriveType(pchar(drive+':\'));

if cdromID=5 then showmessage('你的光驱为:'+drive+'盘!');

end;

end;

[DELPHI]检测声卡

if auxGetNumDevs()<=0 then showmessage('No soundcard found!') else showmessage('Any soundcard found!');

[DELPHI]在字符串网格中画图

StringGrid.OnDrawCell事件

with StringGrid1.Canvas do

Draw(Rect.Left, Rect.Top, Image1.Picture.Graphic);

[SQL SERVER]SQL中代替Like语句的另一种写法

比如查找用户名包含有"c"的所有用户, 可以用

use mydatabase

select * from table1 where username like'%c%"

下面是完成上面功能的另一种写法:

use mydatabase

select * from table1 where charindex('c',username)>0

这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字

符串及其它的运算上, 所以运用charindex函数也没什么大不了. 用这种方法也有好处, 那就是对%,|等在不能直接用like

查找到的字符中可以直接在这charindex中运用, 如下:

use mydatabase

select * from table1 where charindex('%',username)>0

也可以写成:

use mydatabase

select * from table1 where charindex(char(37),username)>0

ASCII的字符即为%

[DELPHI]SQL显示多数据库/表

SELECT DISTINCT A.bianhao,a.xingming, b.gongzi FROM "jianjie.dbf" a, "gongzi.DBF" b

WHERE A.bianhao=b.bianhao

[DELPHI]RFC(Request For Comment)相关

IETF(Internet Engineering Task Force)维护RFC文档http://www.ietf.cnri.reston.va.us

RFC882:报文头标结构

RFC1521:MIME第一部分,传输报文方法

RFC1945:多媒体文档传输文档

[DELPHI]TNMUUProcessor的使用

var inStream,outStream:TFileStream;

begin

inStream:=TFileStream.create(infile.txt,fmOpenRead);

outStream:=TFileStream(outfile.txt,fmCreate);

NMUUE.Method:=uuCode;{UUEncode/Decode}

//NMUUE.Method:=uuMIME;{MIME}

NMUUE.InputStream:=InStream;

NMUUE.OutputStream:=OutStream;

NMUUE.Encode;{编码处理}

//NMUUE.Decode;{解码处理}

inStream.free;

outStream.free;

end;

[DELPHI]TFileStream的操作

//从文件流当前位置读count字节到缓冲区BUFFER

function read(var buffer;count:longint):longint;override;

//将缓冲区BUFFER读到文件流中

function write(const buffer;count:longint):longint;override;

//设置文件流当前读写指针为OFFSET

function seek(offset:longint;origin:word):longint;override;

origin={soFromBeginning,soFromCurrent,soFromEnd}

//从另一文件流中当前位置复制COUNT到当前文件流当前位置

function copyfrom(source:TStream;count:longint):longint;

//读指定文件到文件流

var myFStream:TFileStream;

begin

myFStream:=TFileStream.create(OpenDialog1.filename,fmOpenRead);

end;

[JavaScript]检测是否安装IE插件Shockwave&Quicktime

var myPlugin = navigator.plugins["Shockwave"];

if (myPlugin)

document.writeln("你已经安装了 Shockwave!")

else

document.writeln("你尚未安装 Shockwave!")

var myPlugin = navigator.plugins["Quicktime"];

if (myPlugin)

document.writeln("你已经安装了Quicktime!")

else

document.writeln("你尚未安装 Quicktime!")


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有