共学DELPHI基础开发技巧

fuzhan820 2003-07-07 05:39:56
先人的DELPHI基础开发技巧
◇[DELPHI]网络邻居复制文件
uses shellapi;
copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false);

◇[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>
...全文
45 84 打赏 收藏 转发到动态 举报
写回复
用AI写文章
84 条回复
切换为时间正序
请发表友善的回复…
发表回复
ezlz 2004-03-26
  • 打赏
  • 举报
回复
好东西谢谢了
学习ING
yztyzt 2004-03-26
  • 打赏
  • 举报
回复
好东西谢谢了
学习ING
fw0011 2004-03-25
  • 打赏
  • 举报
回复
mark
mumu911 2004-03-25
  • 打赏
  • 举报
回复
精华呀!
weisonwong 2004-03-24
  • 打赏
  • 举报
回复
Yes
mmtxm 2004-03-24
  • 打赏
  • 举报
回复
学习学习
bonniewater 2004-03-24
  • 打赏
  • 举报
回复
当手册用
laiqinghe 2004-03-24
  • 打赏
  • 举报
回复
hao !!!!!!!!!!!!!!!
hongama 2004-03-22
  • 打赏
  • 举报
回复
楼主,谢谢!我现在好爽
ttlyzq 2004-03-21
  • 打赏
  • 举报
回复
好东西
coolwww888 2004-03-21
  • 打赏
  • 举报
回复
学习
lh983508 2004-03-21
  • 打赏
  • 举报
回复
学习```
redlegend_126_com 2004-03-21
  • 打赏
  • 举报
回复
真是好东西啊,应该多一些这样的帖子啊!哈哈,收藏!
daniel2008 2004-03-21
  • 打赏
  • 举报
回复
收藏
jiangshi99 2004-03-20
  • 打赏
  • 举报
回复
真是好东西啊,应该多一些这样的帖子啊!哈哈,收藏!
huaasa 2004-03-20
  • 打赏
  • 举报
回复
学习!!!!支持共享
huajian15 2004-03-16
  • 打赏
  • 举报
回复
ding,收下
seasoftware 2004-03-16
  • 打赏
  • 举报
回复
太感谢了
飞狼兄 2004-03-16
  • 打赏
  • 举报
回复
你真好
hcjingjing 2004-03-16
  • 打赏
  • 举报
回复
谢谢楼主
加载更多回复(64)
关于本书 本书是针对中高级的专业和准专业的程序开发人员而编写的。全书共分五篇:第一篇简要介绍了分布式结构及Delphi 6对 它的支持;第二篇讲述了分布式组件的实现,篇中分别讲述了DCOM架构的基元——COM的编程基础,创建DCOM客户端用& 务器应用以及COM十分布式应用的开发;第三篇讲了另一种分布式技术CORBA的原理及实现;第四篇讲多层分布式数据库系 统,从数据库的链接讲起,由浅入深地讲了MIDAS的概念,它的DCOM及CORBA的实现方式,最后深入剖析了它的结构;第五 篇讲了分布式Web技术,包括现在流行的 Web技术及 Internet Express的应用。本书的各个部分,都辅之有详尽的例子, 您会一步步学习构建各种分布式应用程序。相信,在仔细研读和亲手实践了这些程序之后,您一定会成为分布式开发的能 手。由于计算机技术的可操作性很强,所以,在本书的学习过程中,希望读者一定要亲手操作,边看书边实践,这样才会 达到更好的学习效果。 第一篇 分布式结构介绍 第1章 分布式结构与多层应用系统概述 1.1 分布式结构简介 1.1.1 现有的分布式结构 1.1.2 各种分布式结构的比较 1.2 分布式结构的优点 1.3 多层应用系统介绍 1.4 分布式应用的意义 1.5 用delphi进行分布式应用程序的开发 1.5.1 delphi 6支持的分布式组件技术 1.5.2 开发midas应用 1.5.3 开发分布式web技术 第二篇 delphi 6的 comidcom/com十编程 第 2章 delphi 6的 com编程基础 2.1 com的概念及特性 2.1.1 com简介 2.1.2 com的特性 2.1.3 com的优点 2.2 创建com对象 2.2.l 规划com对象 2.2.2 com对象向导 2.2.3 automation对象向导 2.2.4 定义接口 2.2.5 注册com对象 2.2.6 测试com服务程序 2.3 对象接口介绍 2.3.l 接口的作用 2.3.2 接口的语法 2.3.3 iunknown接口 2.3.4 接口的实现 2.3.5 接口的引用 2.3.6 双重接口 2.4 type library的使用 2.4.1 type library编辑器介绍 2.4.2 type librny的基本操作 第3章 com的高级技术 3.1 dll中对象的实现 3.1.l 编写dll的一般方法 3.1.2 dll的创建 3.1.3 应用程序的创建 3.2 com接口的实现 3.2.1 tinterfacedobject类的接口实现 3.2.2 tinterfacedobject类的多接口实现 3.3 利用类型库进行com编程 3.3.l typedcomobject类概述 3.3.2 创建dll服务程序 3.3.3 创建客户应用程序 第4章 创建dcom客户端用&务器应用 4.1 dcom系统结构及技术特性 4.1.1 dcom的系统结构 4.1.2 dcom的技术特性 4.1.3 com与dcom的比较 4.2 dcom服务器的创建 4.2.l 创建自动化对象 4.2.2 dcom服务器的安装 4.3 dcom客户程序的创建 第5章 com十分布式应用的开发 5.1 com十系统构架 5.1.1 com十简介 5.1.2 com十的系统构架 5.2 com十组件的开发 5.3 客户应用程序的开发 第三篇 delphi 6的 corba编程 第6章 corba编程基础 6.1 corba技术简介 6.2 coana的基本概念 6.2.1 corba对象 6.2.2 接口定义语言idl 6.2.3 对象请求代理orb 6.2.4 根程序stub和框架程序skeleton 6.3 delphi 6对 corba的支持 6.3.1 visibroker技术 6.3.2 sined agent 6.3.3 corba对象接口的实现 6.4 delphi 6中开发 corba的工具介绍 6.4.1 type librny编辑器 6.4.2 支持coana中的类 6.4.3 corba对象向导 6.4.4 corba数据模块向导 6.4.5 coana clientheerver应用程序 6.5 corba对象向导的使用 6.5.1 解析 corba对象向导 6.5.2 创建corba服务器 6.5.3 创建客户程序 6.6 多线程corba应用的开发 6.6.1 创建支持多线程的corba对象 6.6.2 客户端程序的开发 第7章 高级corba编程 7.1 idl语言基础 7.1.1 一个典型的idl 7.1.2 idl常规术语 7.l.3 idl语法 7.l.4 corba模块 7.2 开发corba高级应用程序 7.3 corba客户端/服务器应用程序向导的使用 7.3.1 idl文件的生成 7.3.2 创建corba服务器 7.3.3 创建corba客户应用程序 第四篇 多层分布式数据库系统midas的开发 第8章 数据库的链接 8.l 数据库的建立 8.2 数据库应用程序的开发步骤 8.3 delphi 6数据库应用开发概述 8.3.1 boriand数据库引擎bde 8.3.2 数据库工具 sql explorer 8.3.3 用bde链接本地数据库的一个简单例子 8. 3. 4 delphi中数据存取总结 8.4 odbc技术 8.4.1 odbc的创建 8.4.2 odbc的概念 8.4.3 odbc解决方案 8.4.4 odbc总体结构 8.5 ado 8.5.1 ado本地数据访问的解决方案 8.5.2 基本的ado编程模型 8.5.3 远程数据访问rds的解决方案 8.5.4 delphi 6中的 tado组件的介绍 8.5.5 一个ado具体的例子 8.6 interbase数据库服务器及ibx组件 8.6.1 inierbase的简要介绍 8.6.2 一个ibx的例子 8.7 多层应用处理数据的一些技巧 8.7.1 数据库链接中的 connection pooling链接技术 8.7.2 多层应用处理数据的原理 8.7.3 处理大型数据集的技巧 第9章 用dcom数据模块来实现基本多层分布式系统 9. l 平滑过渡到h层体系结构 9.2 关于多层应用程序 9·3 delphi 6开发基本多层分布式系统 9.3.1 配置数据库 9.3.2 创建应用服务器 9.3.3 创建客户应用程序 9.4 本地数据库查询操作localquers 9.5 delphi 6开发基本多层分布式系统详解 9.5.1 简单应用服务器程序的具体设置 9.5.2 简单客户端程序的具体设置 第10章 midas的高级应用开发 10.1 在 delphi 6开发 midas三层应用程序 10.1.1 在 delphi 6中创建应用服务器 10.1. 2 在delphi 6中创建客户程序 10.1.3 与应用服务器链接 10.1.4 调用服务器上的接口 10.1.5 在客户端纠错 10. 1.6 更新数据 10.2 midas多层应用程序的开发 10. 2.1 delphi 6中无状态的中间层数据存取 10. 2.2 多层体系结构下的事务 10.2.3 一个基本的midas例子 10.2.4 公文包模式介绍以及具体例子 10.2.5 datapooler技术的例子 10. 3 在 midas中使用 activex 10. 3.1 activex控件开发过程 10.3.2 扩展 activex 10.3.3 注册和安装 10. 3.4 发布 activex 10.3.5 一个 midas的 activexform例子 第11章 用 corba数据模块来实现 midas 11.1 corba数据模块向导介绍 11.2 corba服务器的创建 11.2.1 创建 corba数据模块 11.2.2 添加 corba数据模块组件 11.2.3 运行 coana服务器 11.3 客户程序的创建 11.3.1 程序窗体设计 11.3.2 组件设置 11.3.3 添加代码 11.3.4 运行程序 第五篇 分布式web应用开发 第12章 分布式 web应用开发 12.1 现有 web技术 12.1.1 html技术 12.1.2 javascript技术 12.l.3 asp技术 12.1.4 cgi技术 12.1.5 isapi技术 12.2 用internetexpress开发web分布式应用 12.2.1 delphi 6对传统 web技术的支持 12.2.2 internetexpress工作原理 12.2.3 internetexpress组件介绍 12.2.4 web服务器和 internetexpress的通信 12.2.5 internetexpress实用编程 12.3 开发web服务 12.3.1 web服务概念 12.3.2 web服务协议 12.3.3 web服务应用

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧