电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> delphi技术>>Delphi基础开发技巧(14):

Delphi基础开发技巧(14)

来源:远方网络 | 2005-12-31 9:30:06 | (有1967人读过)

[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!")


delphi技术热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号