Delphi 常用技巧
问:如何使程序在执行过程中暂停一段时间? 答:要使在运行中的程序暂停一段时间可以使用 sleep 这个关键词,下面是一个例子
复制内容到剪贴板
代码: 代码:
procedure TForm1.Button1Click(Sender: TObject); var h,m,s,ms:
word; begin Edit1.text:=DateTimeToStr(now); sleep(2000);//2000 就表示 2 个微秒 edit2.text:=DateTimeToStr(now); DecodeTime(strtodatetime(edit2.text)-strtodatetime(edit1.text),h, m,s,ms); showmessage(format(' 小 时 : %d',[h])+format(' 分 钟 : %d',[m])+format(' 秒:%d',[s])+format('微秒:%d',[ms])); end; //另外,这也是一个很好的时间相减例子
报告时间的例子: //先定义: var Present: TDateTime;//定义成日期和时间 begin Year, Month, Day, Hour, Min, Sec, MSec: Word;//定义年月日小时分种秒微 秒 DecodeTime(Present, Hour, Min, Sec, MSec);// 提 出 小 时 分 种 秒 微 秒 , 以 TDataTime 方式 DecodeDate(Present, Year, Month, Day);//提出年月日,以 TDataTime 方式 Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' of Month ' + IntToStr(Month) + ' of Year ' + IntToStr(Year);//显示 Label2.Caption := 'The time is Minute ' + IntToStr(Min) + ' of Hour '
+ IntToStr(Hour);//显示 end; 问:如何在窗口上加入一个 flash 动画? 答:先把 flash 动画放到一个 htm 文件上,然后再把 htm 文件调用到窗口上例子如下:
复制内容到剪贴板
代码: 代码:
procedure TForm1.FormCreate(Sender: TObject); var URL: OleVariant; begin URL := ExtractFilePath(Application.EXEName) + 'fla.htm'; Webbrowser1.Navigate2(URL); end; //要添加一下
webbrowser 控件 问:怎样才能在程序中实现跳转到网页? 答:例子如下:
复制内容到剪贴板
代码: 代码:
procedure TForm1.ToolButton5Click(Sender: TObject); begin shellexecute(handle,nil,pchar('go.163/delphimyself'),n il,nil,sw_shownormal); end; 问:怎样获得本程序的所在目录? 答:例子如下:
复制内容到剪贴板
代码: 代码:
procedure TForm1.FormCreate(Sender: TObject); begin edit1.text:=ExtractFilePath(Application.EXEName); end;
//ExtractFilePath(application.exename); 径,application.exenane
是
得
到
文
件
路
//ExtractFilename(Application.Exename);是得到文件名,EXtractFilename [/code] 问:如何关闭 windows? 答:这个可以关闭 windows9X 系统 exitwindowsex(ewx_shutdown,0);
问:如何获得 windows 的安装目录? 答:这里有一个例子:
复制内容到剪贴板
代码: 代码:
procedure TForm1.Button1Click(Sender: TObject); var dir:array [0..255] of char; begin GetWindowsDirectory(dir,255); edit1.Text:=strpas(dir); end; //先定义一个 dir 数组是 char 类型的 //然后 getwindowsdirectory(dir,255); //用 strpas 函数来显示出来 //还有一个例子也可以做到如下: procedure TForm1.Button1Click(Sender: TObject); var winpath:pchar; begin getmem(winpath,255); GetWindowsDirectory(winpath,255); edit1.text:=winpath; end; *********************** 判断
是否 item 被选中:
复制内容到剪贴板
代码: 代码:
for i:=0 to ListBox.Items.Count-1 do if ListBox.Selected[i] then begin showmessage('有 item 被选中'); break; end 让第一项被选中: ListBox.ItemIndex:=0; ****************************** 获取硬盘序列号
复制内容到剪贴板
代码: 代码:
procedure TForm1.FormCreate(Sender: TObject); var dw,dwTemp1,dwTemp2:DWord; p1,p2:array[0..30] of char; begin GetVolumeInformation(PChar('c:\'),p1,20,@dw,dwTemp1,dwTemp2,p2,20 ); edit1.text:=inttohex(dw,8);//系列号 end; *************************** 在
程序中拖动控件 在控件的 moused