DELPHI技巧
Delphi7的开发调试技巧及快捷键.

(转 Delphi7的开发调试技巧及快捷键Delphi 开发的调试技巧1、设置调试选项Delphi 主菜单。
【 Project 】 ->【 Options 】 , 或单击工程管理器中的【 Project Options 】按钮。
显示 Project Options,选择 Complier<1>选中 Debug Information :把调试信息嵌入到 DCU 单元文件,会加大编译后的DCU 文件,但不会影响最后生成的 exe 的大小和执行速度。
同时激活【 Search 】菜单中的【 Find Error 】命令。
当文件中包含调试信息并得到一个运行时错误 (run-time error, 记录下 Delphi 提供的 16进制地址,在【 Search 】->【 Find Error 】中输入, Delphi 将重新编译程序,并停留在产生错误的命令行。
<2>Local symbols:决定调试器能否看到在 Implementation 中定义的局部变量。
<3>Reference infoj选项 /Definition Only选项是否产生应用程序中对象标识符的引用信息。
信息和对象代码存在 dcu 文件中, 可以使用对象浏览器查看。
如果 Definition Only 选项同时选中,编译器将生成标识符定义位置的信息,能够激活对象浏览器的 Refenrence 页。
如果不选, Dcu 文件更小。
编辑器命令{$D} Debug Information{$L} Local Information{$Y} Symbol Information{$C} Assertions2、使用内部调试器<1> 命令行参数在【 Run 】->【 Parameters 】中设置<2>断点条件断点使源代码断点只有在满足某个条件时才有效。
在【 View 】->[Debug windows]->【 BreakPoints 】打开“BreakPoint List”对话框, 右击断点,从弹出菜单中选择属性。
delphi教程

delphi教程
Delphi 是一种基于 Pascal 的编程语言,用于创建窗体应用程序和控制台应用程序。
以下是一些Delphi的教程和指南,可以帮助您入门以及深入了解Delphi的各种功能和特性。
1. Delphi 简介和基础知识
- Delphi 是什么?它的历史和背景
- 安装和设置 Delphi 开发环境
- Delphi IDE 的界面和基本功能介绍
- Delphi 的 Pascal 语法和常用关键字
2. Delphi 窗体应用程序开发
- 创建一个简单的窗体应用程序
- 窗体的属性和事件
- 使用组件和控件设计用户界面
- 处理用户输入和事件响应
3. Delphi 数据库应用程序开发
- 连接和操作数据库
- 使用 SQL 查询和更新数据库
- 数据库表格和字段的创建和管理
- 数据集和数据绑定
4. Delphi 高级特性和技巧
- 使用面向对象编程技术
- 使用线程和并发处理
- 图形和图像处理
- 异常处理和调试技巧
5. Delphi 与其他技术的集成
- 使用外部 DLL 和动态链接库
- 与 Web 服务进行通信
- 与其他编程语言进行互操作
- 创建和使用自定义组件和控件
以上是一些Delphi教程的主要内容,在学习过程中,您可以通过搜索更多的资料来深入了解每个主题。
准备好了解Delphi 的强大功能和灵活性吗?开始学习吧!。
delphi常用技巧

delphi常用技巧
Delphi是一种强大的编程语言,有许多有用的技巧和功能可以帮助提高开发效率。
以下是一些Delphi常用的技巧:
1. 使用快捷键:Delphi支持许多快捷键,使用这些快捷键可以快速完成常见的任务,如Ctrl+C用于复制,Ctrl+V用于粘贴等。
2. 快速查找和替换:使用Ctrl+Shift+F可以打开查找和替换对话框,输入要查找的文本,然后输入要替换的文本,最后点击“全部替换”即可。
3. 调试技巧:在调试时,可以使用断点、观察表达式、单步执行等技巧来检查程序的运行情况。
4. 自定义控件:Delphi支持自定义控件,可以创建自己的控件来满足特定的需求。
5. 使用第三方控件:Delphi有许多第三方控件可用,这些控件可以提供更多的功能和更好的用户体验。
6. 优化代码:使用一些技巧可以优化代码的运行速度和可读性,例如使用局部变量、避免不必要的对象创建等。
7. 使用异常处理:在Delphi中,可以使用异常处理来处理运行时错误和异常情况。
8. 使用多线程:Delphi支持多线程编程,可以使用多线程来提高程序的性能和响应速度。
9. 使用数据库:Delphi支持多种数据库连接方式,可以使用数据库来存储和检索数据。
10. 使用第三方库:Delphi有许多第三方库可用,这些库可以提供更多的功能和更好的性能。
希望这些技巧可以帮助你更好地使用Delphi进行开发。
delphi编程技巧

DELPHI编程技巧一一、Delphi集成环境与代码调试A 修改Delphi的系统信息默认的Delphi消息、警告和例外描述都是英文的,将这些内容翻译成另一种语言或修改它们使其适合你的需要的最简单方法是编辑资源文件并改变相应的字符串,这些文件位于BIN 目录。
主要资源文件有:SysUtils单元的信息(文件没有找到、转换错误信息等)在sysutils.res 中,数据库错误信息在dbconsts.res中,VCL信息在consts.res中。
注意一些字符串使用格式字符,如%s或%d,来产生最终的字符串,在这种情况下,应将这些字符保留在适当的位置。
B 如何清除无用代码Delphi提供了自动清除源代码中无用代码的强大功能,一般来说,当你保存文件时,Delphi 自动将源代码中空的类方法删除,保证了源代码的清洁。
在没有编译和保存文件的前提下,也可以清除无用代码,方法是:在Delphi 3/4中单击“File”*癝ave As...”菜单命令(在Delphi 1/2中单击“File”*“Save File As...”菜单命令),打开“Save As...”对话窗口,单击“取消”按钮即可。
C 在Delphi 4集成环境中不使用浮动功能你无疑知道Delphi 4集成环境支持大多数窗口的浮动功能。
但是,有时你不想让一个窗口具有浮动功能。
浮动窗口在需要时,十分有用,但在不需要时,也十分恼人。
有两种方法可以改变一个窗口的浮动属性。
第一种方法是:每个可浮动窗口具有一个本地菜单项目---Dockable,如果你不希望一个特定的窗口具有浮动功能,简单地用鼠标右键单击窗口,选空Dockable菜单项目。
这个窗口的浮动功能就关闭了,直到你再选中Dockable项目为止。
这一技术可以防止特定的窗口可停靠。
但有时,你仅仅希望暂时关闭浮动功能,这时,只需要按下<Ctrl>键,再拖动窗口。
D 在工具菜单中添加项目在Delphi集成环境中按F1键可以打开多数Delphi帮助标题,这种方法可以快速打开相关标题的帮助窗口。
delphi十个小技巧

delphi十个小技巧1、判断一个字符串是否包含于另外一个字符串的方法例如:if pos('ab','abcd')<>0 thenmessagedlg('ab是包含于abcd',mtConfirmation,[mbYes, mbNo],0);pos(obj,target) 在target字符串中找出第一个出现obj的第一个字符位置,如果找不到,返回0.2、如何使窗口全屏,类似游戏一样,而不是窗口的最大化!(1)BorderStyle 为 bsNone(2)Windowstate 为 wsMaximized(3) 退出时可加一个按钮之类的,写上 close 即可退出。
3、数字格式化输出format('%8.2f',[123.456]),返回字符串'123.46'。
4、播放一个wav文件usemmsystem;SndPlaySound('hello.wav',SND_FILENAME or SND_SYNC);5、InputBox,InputQuery和ShowMessage函数的威力usesdialogs;vars,s1:string;b:boolean;begins:=trim(Inputbox('NewPassword','Password','masterkey'));b:=s<>'';s1:=s;if b then b:=InputQuery('ConfirmPassword','Password',s1);if not b or (s1<>s) thenShowMessage('Password Failed');end;6、几个有关子目录的操作的过程MkDir(str); ChDir(str); GetDir(DriveID,str); SetCurrentDir(str);IOResult --上面几个过程调用成功即返回0值7、将一个可视控件变成图形类型例如将一个带背景的LABEL变成一个TIMAGE图片类型,可以这样做:image1.width:=label1.width;image1.height:=label1.height;label1.perform(WM_PAINT,image1.Canvas.Handle,0);8、如何得到字符的ASCII值得到字符的ASCII值,可以用如下语句:var: a:integer;string1:string;beginstring1:='ABC';a:=byte(string[1]); {此时就得到'A'的ASCII值}end;9、动态更新DBGrid的颜色例如,如果一个城市的人口大于200万,我们就让它显示为蓝色。
delphi打印技巧

结果就一目了然了。
2.将结果直接送到打印机
Delphi提供了两种打印方式:一是将结果输送到Form,再调用Form的print方法将结果输送到打印机,二是将结果直接输送到打印机。如果你采用第一种方式,则无论你怎样调整Form的PrintScal属性,打印出来的东西也不会让你满意。因此建议采用第二种方式。
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
如果你想自己用Delphi编写一个打印程序,那么,下面这些技巧或许对你有所帮助。
1.获取、显示当前打印机的分辨率
Windows下的打印分辨对打印程序有着至关重要的作用,如果你想知道打印机的分辨率,请在程序中加入一行:
ShowMessage(′水平分辨率′+inttostr(GetDeviceCaps(printer Handle,LOGPIXELSX))+chr(13)+′垂直分辨率:′+ inttostr(GetDeviceCaps(printerHandle,LOGPIXELSY)));
如果想让打印程序在任何打印机上都能正常地打印,你就必须改变你的度量单位。如果采用固定的度量,不同分辨率的打印效果是不同的。举例来讲:printerCanvasrectangle(0,0,360,720)在360×360的佳能4200SP上能打出一个1英寸宽、2英寸高的矩形,但在600×600的惠普6L上只能打出0.6英寸宽、1.2英寸高的矩形。使用打印机的点数做为度量单位是一个明智的选择。具体做法如下:
3.尽量不要使用AssignPrn
尽管AssignPrn简化了文本打印操作,使输出到打印机像输出到文件一样简单。但简单带来的是一系列的不方便:你无法知道当前打印的行数,无法准确控制行距,无法灵活改变字体字形等等。还是用打印机的Canvas属性进行打印吧。
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\CurrentVersionSystemRoot键,取得如: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(' /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('','','',0);ExecuteFile('mailto:tingweb@','','',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小技巧杂记-winstonbonaparte的专栏-CSDN博客
Delphi小技巧杂记-winstonbonaparte的专栏-CSDN博客Delphi小技巧杂记收藏//获取任务栏尺寸procedure TForm1.Button1Click(Sender: TObject);varTaskList: HWnd;Bordered: TRect;beginTaskList := FindWindow(’Shell_TrayWnd’, nil);GetWindowRect(TaskList, Bordered);Label1.Caption := ’Left: ’ + IntToStr(Bordered.Left);Label2.Caption := ’Right: ’ + IntToStr(Bordered.Right);Label3.Caption := ’Top: ’ + IntT oStr(Bordered.Top);Label4.Caption := ’Bottom: ’ + IntT oStr(Bordered.Bottom);end;//修改指定路径下的文件只读属性function PathSetAttr(sFilePath: string): Boolean;varSearchRec: TSearchRec;beginResult := False;if Copy(sFilePath, Length(sFilePath) - 1, Length(sFilePath)) <> ’\’ thensFilePath := sFilePath + ’\’;if DirectoryExists(sFilePath) thenbeginif FindFirst(sFilePath+’*.*’, faAnyFile, SearchRec) = 0 thenbeginFileSetAttr(, 32);while FindNext(SearchRec) = 0 doFileSetAttr(, 32);end;Result := True;end;end;//为控件加边框procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT;procedure TForm1.WMNCPaint(var Msg: TWMNCPaint);vardc: hDC;Pen: hPen;OldPen: hPen;OldBrush: hBrush;begininherited;dc := GetWindowDC(Handle);msg.Result := 1;Pen := CreatePen(PS_SOLID, 1, RGB(255, 0, 0));OldPen := SelectObject(dc, Pen);OldBrush := SelectObject(dc, GetStockObject(NULL_BRUSH));Rectangle(dc, 0, 0, Self.Width, Self.Height);SelectObject(dc, OldBrush);SelectObject(dc, OldPen);DeleteObject(Pen);ReleaseDC(Handle, Canvas.Handle);end;//制作透明窗体procedure CreateParams(var Params: TCreateParams); override; //重载 CreateParams 过程的实现procedure TForm1.CreateParams(var Params: TCreateParams);begin//先继承原来的 CreateParams 过程inherited;//然后修改 Param.ExStyle 的值,使窗体具有透明效果Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT;end;procedure TForm1.FormCreate(Sender: TObject);begininherited;//将画布的笔刷样式改成bsClear 以及时清除窗体原来的内容,这样窗体就有透明效果Canvas.Brush.Style := bsClear;end;//Memo 组件的光标定位procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);varLpos, Cpos, Linelength: integer;beginLpos := SendMessage(Memo1.Handle, EM_LineFromChar, Memo1.SelStart, 0);Cpos := SendMessage(Memo1.Handle, EM_LineIndex, Lpos, 0);LineLength := SendMessage(Memo1.Handle, EM_LineLength, Cpos, 0);Cpos := Memo1.SelStart - Cpos;Label1.Caption := IntToStr(Lpos);Label2.Caption := IntToStr(Cpos);Label3.Caption := IntToStr(LineLength);end;//点击客户区也能拖动窗口procedure WmNCHitTest(var Msg: TWMNCHitTest); message WM_NCHitTest;procedure TForm1.WmNCHitTest(var Msg: TWMNCHitT est);beginDefaultHandler(Msg);if Msg.Result = HTClient thenMsg.Result := HTCaption;end;//自定义Memo控件的边界procedure TForm1.Button1Click(Sender: TObject);varRect: TRect;beginSendMessage(Memo1.Handle, EM_GETRECT, 0, LongInt(@Rect));Rect.Left := 20;Rect.Top := 20;Rect.Right := Rect.Right - 19;Rect.Bottom := Rect.Bottom - 19;SendMessage(Memo1.Handle, EM_SETRECT, 0, LongInt(@Rect));Memo1.Refresh;end;//在系统菜单上添加自定义菜单项procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;constidMyFunc = $f200;procedure TForm1.FormCreate(Sender: TObject);beginAppendMenu(GetSystemMenu(Handle, False), MF_STRING, idMyFunc, ’我的系统菜单项’);end;procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);begininherited;if Msg.CmdType and $FFF0 = idMyFunc thenShowMessage(’我的系统菜单项’);end;COOLBAR内嵌TOOLBAR,但是TOOLBAR的按钮偏上的解决办法:把COOLBAR的COOLBAND的BORDERSTYLE设为SINGLE。
Delphi的8个技巧
Delphi的8个技巧2. Delphi hint的字体和色彩如何改变Delphi中TApplicatio n的属性有HintColor及HintPauseo可以通过设置HintColor改变应用程序中的Hint的颜色、通过设置HintPause 改变触发出nt的时间。
但遗憾的是: Delphi中Hint的字体不可以改变。
3. Delphi里如何计算日期算时间在delphi中是最容易的,如下:var ss:TDateTime其实Tdatetime是个双精度的浮点数,它的小数点前表示天数:如ss二ss+20 表示从ss开始向后20天,如果ss二234.567它就表示234.567天,当然是从公元0年开始计算的!4 如何用Delphi编ScreenSaver? (null)屏幕保护程序无非是扩展名换成了SCR的可执行程序,它接受两种命令行参数: s运行命令参数c配置命令参数Windows通过向程序发s命令行参数来启动程序。
要注意的是:程序的窗口是无边框和标题:窗口大小应与屏幕大小样;还要注意窗口的事件的处理。
5. Delphi 中如何改目录的名字调用RenameFile函数,如:RenameFile('c:\wang\temp','c:\wang\tmp');6. DELPHI显示JPE G图像文件只要uses中加入JPE G就行JPE G单元里是有个TJPEGlmage类,可定义变量如Jpe g,用LoadFromFile调入某个JPEG文件,然后用Form的Canvas.Draw(x,y,Jpeg)即可显示7. Delphi中对Jpe g格式文件的处理..(1).在Uses 中加入JPEG单元!(2).定义个全程变量,例如var AJPEG: TJPEGlmage;(3).在Form 的OnCreate事件中加入·Canvas.Pen.Co1or:二clB1ackCanvas.Pen.Sty1e:二psSo1id;Canvas.Brush.co1or:二clBtnFaceCanvas.Brush.Sty1e:二bsSo1id;//此上是设置Canvas的一些属性,便于以后//C1ear Form and Load a new]PEG fi1e;A]peg:二T]peglmage.Create;//动态生成A]peg; A]peg.LoadFromFi1时'D:\Temp.j阻')//生成A]peg 后,调入]PEG 文件!(4).在Form 的OnPain事件中加入Canvas.Rectang1e(2,2,560,430); //画个黑框的矩形将图片围住!x:二10; y:二10;Form1.Canvas.Draw(x,y,A]peg); //以(x,y)为左上角输出]PEG文件!//实际上其作用是当图形被破坏是使图形恢复!(5).在,Load'或,Browse' 按钮的OnClick事件中加入:beginif OpenPictureDia1og1.ExecutethenbeginA]peg.Free;//释放旧A]peg;A]peg:二T]peglmage.Create;//产生一个新的A]peg;A]peg.LoadFro mF i1e(OpenPictureDia1og1. Fi1ename);//载入]PE G文件!endCanvas.Rectang1e(2,2,560,430);//将Form C1ear;x:二10y:二10;Form1.Canvas.Draw(x,y,A]peg);//显示新的A]peg;end8. DELPHI3启动画面in your *.dbrfi1es do itbegin{Create a sp1ashform}sp1ash:二Tsp1ash.Create(self);sp1ash.Show;sp1ash.updateApp1ication.lnitia1ize;App1ication.CreateForm(..)end;sp1ash. close; sp1ash.free; App1ication.Run。
Delphi常用技巧
Delphi常⽤技巧在⽹上⾏⾛时,经常会看到弹出的桌⾯⼩窗体,有时做⼴告,有时向你致以节⽇的问候;⼈们称其为桌⾯⼩精灵;有的桌⾯⼩精灵会⾃动移动,有的固定在屏幕的某⼀⾓落,动画闪烁,煞是迷⼈。
本⼈⽤Delphi制作了⼀款桌⾯⼩精灵,愿与⼤家共享。
桌⾯⼩精灵的实现功能:当运⾏时,在屏幕的左下⾓显⽰⼀⽆边框、⽆标题栏的⼩窗体,并⾃动向屏幕的右上⾓移动,窗体上的⼩精灵——可爱的马先⽣,⼀会跃起,⾼呼“马到成功!”,⼀会含情脉脉地向你招⼿“再见”;同时,还不断地闪烁显⽰当前时间,时刻提醒你抓紧时间呦!当你嫌它碍事时,你可以按下⿏标左键,将它拖到任意位置。
如果你厌烦它不停移动,你可以双击⿏标左键,它会⽼⽼实实地呆在原地不动,只要你⽤⿏标轻轻⼀点,它⼜会⾼⾼兴兴地上路,当你单击“再见”时,桌⾯⼩精灵就会消失,你不想⼀试⾝⼿吗?请跟我来!运⾏后效果图 ⽣成⼀窗体,设置窗体属性如下:Name属性为Form1,BorderStyle属性为bsNone,FormStyle属性为StyOnTop,Height属性值240,Width属性值209。
窗体上分别添加组件,设置属性如下: (1)添加两个Image组件,Name属性分别设为Image1、Image2,Align属性均设为alClient (以使Image组件充满整个窗体),Image1的Enabled为False,Image2的Enabled为True,然后通过Picture属性为Image1、Image2添加图⽚(适合的图⽚格式:BMP、JPG )。
(2)在Image上再添加两个Timer组件,Name属性分别为Timer1、Timer2,Enabled属性均为True,Interval属性均为1000毫秒。
(3)在Image上再添加⼀个Label组件,Name:=Label1,Caption:=“马到成功!”,Enabled:=True,Font属性为“华⽂⾏楷,粗斜体,三号字,红⾊”(根据你的图⽚设置适当的字体、字号、字体颜⾊)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
◇[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\CurrentV ersionSystemRoot键,取得如: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;//取当前目录名,无'\'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(' /c copy *.* c:\',SW_Normal);winexec('start abc.txt');ShellExecute或ShellExecuteEx//启动文件关联程序function executefile(const filename,params,defaultDir:string;showCmd:integer):T Handle; ExecuteFile('C:\abc\a.txt','x.abc','c:\abc\',0);ExecuteFile('','','',0);ExecuteFile('mailto:tingweb@','','',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',DA TE);◇[DELPHI]字符串的过程和函数。
如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'。
V al(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_ESCAPEF1--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]操作Cookieresponse.cookies("name").domain:='';with response.cookies.add dobeginname:='username';value:='username';end◇[DELPHI]增加到文档菜单连接uses shellapi,shlOBJ;shAddToRecentDocs(shArd_path,pchar(filepath));//增加连接shAddToRecentDocs(shArd_path,nil);//清空◇[杂类]备份智能ABC输入法词库windows\system\user.remwindows\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); beginif msg.message=256 then ... //ANY键if msg.message=112 then ... //F1if msg.message=113 then ... //F2end;◇[杂类]隐藏共享文件夹共享效果:可访问,但不可见(在资源管理、网络邻居中)取共享名为:direction$访问://computer/dirction/网页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=">设为首页<aonclick="this.style.behavior='url(#default#homepage)';this.sethomepage('');"href="#">设为首页</a>收藏本站<a href="javascript:window.external.addfavorite('','[未名码头]')">收藏本站</a>加入频道<a href="javascript:window.external.addchannel('')">加入频道</a>◇[DELPHI]文本编辑相关checkbox1.checked:=not checkbox1.checked;if checkbox1.checked then richedit1.font.style:=richedit1.font.style+[fsBold] elserichedit1.font.style:=richedit1.font.style-[fsBold]//粗体if checkbox1.checked then richedit1.font.style:=richedit1.font.style+[fsItalic] elserichedit1.font.style:=richedit1.font.style-[fsItalic]//斜体if checkbox1.checked then richedit1.font.style:=richedit1.font.style+[fsUnderline] elserichedit1.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 UPDA TE升级补丁序列号100000318590X25fx0◇[DELPHI]文件名的非法字符过滤for i:=1 to length(s) doif s[i] in ['\','/',':','*','?','<','>','|'] then◇[DELPHI]转换函数的定义及说明datetimetofiledate (datetime:Tdatetime):longint; 将Tdatetime格式的日期时间值转换成DOS格式的日期时间值值,返回字符串日期显示成为00/00/00,如果datetime参数中没有时间值,返回字符串中的时间部分显示成为00:00:00 AMdatetimetostring (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位。