Delphi编程技巧集锦

YeungTimes

YeungTimes

2016-02-19 15:13

下面是个简单易学的Delphi编程技巧集锦教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

  ◇[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;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  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_MACHINESoftwareMicrosoftWindowsCurrentVersion

  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:abca.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;beginhCurrentWindow:=Getwindow(handle,GW_HWndFrist);while hCurrentWindow  0 dobeginif 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进制TimeToStrDateToStrDateTimeToStrFmtStr//按指定格式输出字符串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 PanelDesktop',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_DOWNF1--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.ddvip.com';with response.cookies.add dobeginname:='username';value:='username';end

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

  uses shellapi,shlOBJ;

  shAddToRecentDocs(shArd_path,pchar(filepath));//增加连接

  shAddToRecentDocs(shArd_path,nil);//清空

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

  windowssystemuser.rem

  windowssystemmmr.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);beginif msg.message=256 then ... //ANY键if msg.message=112 then ... //F1if msg.message=113 then ... //F2end;

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

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

  取共享名为: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;"关闭

  定时转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="http://cms.ddvip.com/index.php#"设为首页

  收藏本站

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

  加入频道

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

  ◇[DELPHI]文本编辑相关

checkbox1.checked:=not checkbox1.checked;if checkbox1.checked then richedit1.font.style:=richedit1.font.style+[fsBold] else richedit1.font.style:=richedit1.font.style-[fsBold]//粗体if checkbox1.checked then richedit1.font.style:=richedit1.font.style+[fsItalic] else richedit1.font.style:=richedit1.font.style-[fsItalic]//斜体if checkbox1.checked then richedit1.font.style:=richedit1.font.style+[fsUnderline] else richedit1.font.style:=richedit1.font.style-[fsUnderline]//下划线memo1.alignment:=taLeftJustify;//居左memo1.alignment:=taRightJustify;//居右memo1.alignment:=taCenter;//居中

  ◇[DELPHI]随机产生文本色

  randomize;//随机种子

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

  ◇[DELPHI]DELPHI5 UPDATE升级补丁序列号

  1000003185

  90X25fx0

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

for i:=1 to length(s) doif 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;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  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给出转换结果字符串包含的数字位数。 

  inttostr (value:longint):string 将整数转换成十进制形式字符串 

  strtodate (const S:string):Tdatetime 将字符串转换成日期值,S必须包含一个合法的格式日期的字符串。 

  strtodatetime (const S:string):Tdatetime 将字符串S转换成日期时间格式,S必须具有MM/DD/YY HH:MM:SS[AM|PM]格式,其中日期和时间分隔符与系统时期时间常量设置相关。如果没有指定AM或PM信息,表示使用24小时制。 

  strtofloat (const S:string):extended; 将给定的字符串转换成浮点数,字符串具有如下格式:

  [+|-]nnn[.]nnn[+|-E|e+|-nnnn] 

  strtoint (const S:string):longint 将数字字符串转换成整数,字符串可以是十进制或十六进制格式,如果字符串不是一个合法的数字字符串,系统发生ECONVERTERROR异常 

  strtointdef (const S:string;default:

  longint):longint; 将字符串S转换成数字,如果不能将S转换成数字,strtointdef函数返回参数default的值。 

  strtotime (const S:string):Tdatetime 将字符串S转换成TDATETIME值,S具有HH:MM:SS[AM|PM]格式,实际的格式与系统的时间相关的全局变量有关。 

  timetostr (time:Tdatetime):string; 将参数TIME转换成字符串。转换结果字符串的格式与系统的时间相关常量的设置有关。 

  ◇[DELPHI]程序不出现在ALT+CTRL+DEL

  在implementation后添加声明:

function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';RegisterServiceProcess(GetCurrentProcessID, 1);//隐藏RegisterServiceProcess(GetCurrentProcessID, 0);//显示

  用ALT+DEL+CTRL看不见

  ◇[DELPHI]程序不出现在任务栏

uses windowsvarExtendedStyle : Integer;beginApplication.Initialize;
展开更多 50%)
分享

猜你喜欢

Delphi编程技巧集锦

编程语言 网络编程
Delphi编程技巧集锦

delphi小技巧集锦

编程语言 网络编程
delphi小技巧集锦

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Delphi编程技巧实例

Delphi
Delphi编程技巧实例

WINDOWS编程技巧之DELPHI篇

编程语言 网络编程
WINDOWS编程技巧之DELPHI篇

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Delphi 拖放编程

编程语言 网络编程
Delphi 拖放编程

Delphi拖放编程

Delphi
Delphi拖放编程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

教你在JSP环境中配置和使用fckeditor

教你在JSP环境中配置和使用fckeditor

如何用JSP读写Cookie

如何用JSP读写Cookie
下拉加载更多内容 ↓