当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: ◇[DELPHI]网络邻居复制文件uses shellapi;
 

 

    摘要: uses tlhelp32,psapi; (1)显示进程列表:procedure tform1.button2click(sender: tobject);var lppe: tprocessentry32; found : boolean; hand : thandle; p:dword; s:string;begin listbox1.items.clear ; hand := creat......
    摘要:   有不少人讨论过显示系统键(capslock、numlock、insert、scrolllock等)状态的问题,用得最多的方法是添加一个timer,在事件中刷新系统键状态显示;另一个方法是做一个系统hook,在hook中刷新显示。这两种方式都会严重占用系统资源,第一种方法还存在延迟的问题。现在介绍第三种方法:   键盘按钮被按下时系统会发送wm_keydown、wm_char、wm_keyu......


先人的DELPHI基础开发技巧

◇[delphi]网络邻居复制文件

uses shellapi; 【程序编程相关:IntToBin(2-16进制转换函数)

【推荐阅读:在Access中创建表及如何指定字段类型

copyfile(pchar(newfile.txt),pchar(//computername/direction/targer.txt),false); 【扩展信息:ShadowStarCodeFast开发

◇[delphi]产生鼠标拖动效果

通过mousemove事件.dragover事件.enddrag事件实现,例如在panel上的label:

var xpanel,ypanel,xlabel,ylabel:integer;

panel的mousemove事件:xpanel:=x;ypanel:=y;

panel的dragover事件:xpanel:=x;ypanel:=y;

label的mousemove事件:xlabel:=x;ylabel:=y;

label的enddrag事件:label.left:=xpanel-xlabel;label.top:=ypanel-ylabel;

◇[delphi]取得windows目录

uses shellapi;

var windir:array[0..255] of char;

getwindowsdirectory(windir,sizeof(windir));

或者从注册表中读取,位置:

hkey_local_machine\software\microsoft\windows\currentversion

systemroot键,取得如:c:\windows

◇[delphi]在form或其他容器上画线

var x,y:array [0..50] of integer;

canvas.pen.color:=clred;

canvas.pen.style:=psdash;

form1.canvas.moveto(trunc(x[i]),trunc(y[i]));

form1.canvas.lineto(trunc(x[j]),trunc(y[j]));

◇[delphi]字符串列表使用

var tips:tstringlist;

tips:=tstringlist.create;

tips.loadfromfile(filename.txt);

edit1.text:=tips[0];

tips.add(last line addition string);

tips.insert(1,insert string at no 2 line);

tips.savetofile(newfile.txt);

tips.free;

◇[delphi]简单的剪贴板操作

richedit1.selectall;

richedit1.copytoclipboard;

richedit1.cuttoclipboard;

edit1.pastefromclipboard;

◇[delphi]关于文件.目录操作

chdir(c:\abcdir);转到目录

mkdir(dirname);建立目录

rmdir(dirname);删除目录

getcurrentdir;//取当前目录名,无\

getdir(0,s);//取工作目录名s:=c:\abcdir;

deletfile(abc.txt);//删除文件

renamefile(old.txt,new.txt);//文件更名

extractfilename(filelistbox1.filename);//取文件名

extractfileext(filelistbox1.filename);//取文件后缀

◇[delphi]处理文件属性

attr:=filegetattr(filelistbox1.filename);

if (attr and fareadonly)=fareadonly then ... //只读

if (attr and fasysfile)=fasysfile then ... //系统

if (attr and faarchive)=faarchive then ... //存档

if (attr and fahidden)=fahidden then ... //隐藏

◇[delphi]执行程序外文件

winexec//调用可执行文件

winexec(command.com /c copy *.* c:\,sw_normal);

winexec(start abc.txt);

shellexecute或shellexecuteex//启动文件关联程序

function executefile(const filename,params,defaultdir:string;showcmd:integer):thandle;

executefile(c:\abc\a.txt,x.abc,c:\abc\,0);

executefile(http://tingweb.yeah.net,,,0);

executefile(mailto:tingweb@wx88.net,,,0);

◇[delphi]取得系统运行的进程名

var hcurrentwindow:hwnd;sztext:array[0..254] of char;

begin

hcurrentwindow:=getwindow(handle,gw_hwndfrist);

while hcurrentwindow <> 0 do

begin

if getwindowtext(hcurrnetwindow,@sztext,255)>0 then listbox1.items.add(strpas(@sztext));

hcurrentwindow:=getwindow(hcurrentwindow,gw_hwndnext);

end;

end;

◇[delphi]关于汇编的嵌入

asm end;

可以任意修改eax.ecx.edx;不能修改esi.edi.esp.ebp.ebx.

◇[delphi]关于类型转换函数

floattostr//浮点转字符串

floattostrf//带格式的浮点转字符串

inttohex//整数转16进制

timetostr

datetostr

datetimetostr

fmtstr//按指定格式输出字符串

formatdatetime(yyyy-mm-dd,hh-mm-ss,date);

◇[delphi]字符串的过程与函数

insert(obj,target,pos);//字符串target插入在pos的位置.如插入结果大于target最大长度,多出字符将被截掉.如pos在255以外,会产生运行错.例如,st:=brian,则insert(ok,st,2)会使st变为brokian.

delete(st,pos,num);//从st串中的pos(整型)位置开始删去个数为num(整型)个字符的子字串.例如,st:=brian,则delete(st,3,2)将变为brn.

str(value,st);//将数值value(整型或实型)转换成字符串放在st中.例如,a=2.5e4时,则str(a:10,st)将使st的值为 25000.

val(st,var,code);//把字符串表达式st转换为对应整型或实型数值,存放在var中.st必须是一个表示数值的字符串,并符合数值常数的规则.在转换过程中,如果没有检测出错误,变量code置为0,否则置为第一个出错字符的位置.例如,st:=25.4e3,x是一个实型变量,则val(st,x,code)将使x值为25400,code值为0.

copy(st.pos.num);//返回st串中一个位置pos(整型)处开始的,含有num(整型)个字符的子串.如果pos大于st字符串的长度,那就会返回一个空串,如果pos在255以外,会引起运行错误.例如,st:=brian,则copy(st,2,2)返回ri.

concat(st1,st2,st3……,stn);//把所有自变量表示出的字符串按所给出的顺序连接起来,并返回连接后的值.如果结果的长度255,将产生运行错误.例如,st1:=brian,st2:= ,st3:=wilfred,则concat(st1,st2,st3)返回brian wilfred.

length(st);//返回字符串表达式st的长度.例如,st:=brian,则length(st)返回值为5.

pos(obj,target);//返回字符串obj在目标字符串target的第一次出现的位置,如果target没有匹配的串,pos函数的返回值为0.例如,target:=brian wilfred,则pos(wil,target)的返回值是7,pos(hurbet,target)的返回值是0.

◇[delphi]关于处理注册表

uses registry;

var reg:tregistry;

reg:=tregistry.create;

reg.rootkey:=hkey_current_user;

reg.openkey(control panel\desktop,false);

reg.writestring(title wallpaper,0);

reg.writestring(wallpaper,filelistbox1.filename);

reg.closereg;

reg.free;

◇[delphi]关于键盘常量名

vk_back/vk_tab/vk_return/vk_shift/vk_control/vk_menu/vk_pause/vk_escape

/vk_space/vk_left/vk_right/vk_up/vk_down

f1--f12:$70(112)--$7b(123)

a-z:$41(65)--$5a(90)

0-9:$30(48)--$39(57)

◇[delphi]初步判断程序母语

delphi软件的dos提示:this program must be run under win32.

vc++软件的dos提示:this program cannot be run in dos mode.

◇[delphi]操作cookie

response.cookies("name").domain:=http://www.086net.com;

with response.cookies.add do

begin

name:=username;

value:=username;

end

◇[delphi]增加到文档菜单连接

uses shellapi,shlobj;

shaddtorecentdocs(shard_path,pchar(filepath));//增加连接

shaddtorecentdocs(shard_path,nil);//清空

◇[杂类]备份智能abc输入法词库

windows\system\user.rem

windows\system\tmmr.rem

◇[delphi]判断鼠标按键

if getasynckeystate(vk_lbutton)<>0 then ... //左键

if getasynckeystate(vk_mbutton)<>0 then ... //中键

if getasynckeystate(vk_rbutton)<>0 then ... //右键

◇[delphi]设置窗体的最大显示

onformcreate事件

self.width:=screen.width;

self.height:=screen.height;

◇[delphi]按键接受消息

oncreate事件中处理:application.onmessage:=myonmessage;

procedure tform1.myonmessage(var msg:tmsg;var handle:boolean);

begin

if msg.message=256 then ... //any键

if msg.message=112 then ... //f1

if msg.message=113 then ... //f2

end;

◇[杂类]隐藏共享文件夹

共享效果:可访问,但不可见(在资源管理.网络邻居中)

取共享名为:direction$

访问://computer/dirction/

◇[java script]java script网页常用效果

网页60秒定时关闭

<script language="java script"><!--

settimeout(window.close();,60000)

--></script>

关闭窗口

<a href="/" onclick="javascript:window.close();return false;">关闭</a>

定时转url

<meta http-equiv="refresh" content="40;url=http://www.086net.com">

设为首页

<a onclick="this.style.behavior=url(#default#homepage);this.sethomepage(http://086net.com);"href="#">设为首页</a>

收藏本站

<a href="javascript:window.external.addfavorite(http://086net.com,[未名码头])">收藏本站</a>

加入频道

<a href="javascript:window.external.addchannel(http://086net.com)">加入频道</a>

◇[delphi]随机产生文本色

randomize;//随机种子

memo1.font.color:=rgb(random(255),random(255),random(255));

◇[delphi]delphi5 update升级补丁序列号

1000003185

90x25fx0

◇[delphi]文件名的非法字符过滤

for i:=1 to length(s) do

if s[i] in [\,/,:,*,?,<,>,|] then

◇[delphi]转换函数的定义及说明

datetimetofiledate (datetime:tdatetime):longint; 将tdatetime格式的日期时间值转换成dos格式的日期时间值

datetimetostr (datetime:tdatetime):string; 将tdatatime格式变量转换成字符串,如果datetime参数不包含日期值,返回字符串日期显示成为00/00/00,如果datetime参数中没有时间值,返回字符串中的时间部分显示成为00:00:00 am

datetimetostring (var result string;

const format:string;

datetime:tdatetime); 根据给定的格式字符串转换时间与日期值,result为结果字符串,format为转换格式字符串,datetime为日期时间值

datetostr (date:tdatetime) 使用shortdateformat全局变量定义的格式字符串将date参数转换成对应的字符串

floattodecimal (var result:tfloatrec;value:

extended;precision,decimals:

integer); 将浮点数转换成十进制表示

floattostr (value:extended):string 将浮点数value转换成字符串格式,该转换使用普通数字格式,转换的有效位数为15位.

floattotext (buffer:pchar;value:extended;

format:tfloatformat;precision,

digits:integer):integer; 用给定的格式.精度与小数将浮点值value转换成十进制表示形式,转换结果存放于buffer参数中,函数返回值为存储到buffer中的字符位数,buffer是非0结果的字符串缓冲区.

floattotextfmt (buffer:pchar;value:extended;

format:pchar):integer 用给定的格式将浮点值value转换成十进制表示形式,转换结果存放于buffer参数中,函数返回值为存储到buffer中的字符位数.

inttohex (value:longint;digits:integer):

string; 将给定的数值value转换成十六进制的字符串.参数digits给出转换结果字符串包含的数字位数.


...   下一页
 ·dephi发布时免安装环境    »显示摘要«
    摘要: 以往的程序一般先进行打包,然后在用户机器上这行安装过程。 在这篇文章里,介绍怎样将dephi编译的程序直接复制(copy)到用户的机器上就能运行,这也是智能客户端特点之一。 1.如何将程序用到的类库编译到可执行文件中? 选择菜单project\options,选择packages标签,不选择“build with runtime packages”复选框。这种设置可......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE