DelphiÖÐʵÏÖ³ÌÐòµÄÑÓʱµÄ·½·¨
ÔÚDelphiÖУ¬Í¨³£¿ÉÒÔÓÃÒÔÏÂÈýÖÖ·½·¨À´ÊµÏÖ³ÌÐòµÄÑÓʱ£¬¼´TTtimer¿Ø¼þ£¬Sleepº¯Êý£¬GetTickCountº¯Êý¡£µ«ÊÇÆ侫¶ÈÊǸ÷²»ÏàͬµÄ¡£
Ò»¡¢ÈýÖÖ·½·¨µÄ¼òµ¥½éÉÜ
1£©TTtimer¿Ø¼þ
¡¡¡¡TTtimer¿Ø¼þµÄʵÖÊÊǵ÷ÓÃWindows API¶¨Ê±º¯ÊýSetTimerºÍKillTimerÀ´ÊµÏֵģ¬²¢¼ò»¯Á˶ÔWM_TIMER ÏûÏ¢µÄ´¦Àí¹ý³Ì¡£Í¨¹ýÉèÖÃOnTimerÊÂ
¼þºÍIntervalÊôÐÔ£¬ÎÒÃÇ¿ÉÒԺܷ½±ãµÄ²úÉúһЩ¼òµ¥µÄ¶¨Ê±Ê¼þ¡£
2£©Sleepº¯Êý
¡¡¡¡Sleepº¯ÊýÓÃÀ´Ê¹³ÌÐòµÄÖ´ÐÐÑÓʱ¸ø¶¨µÄʱ¼äÖµ¡£SleepµÄµ÷ÓÃÐÎʽΪSleep(milliseconds)£¬ÔÝÍ£µ±Ç°µÄ½ø³ÌmillisecondsºÁÃë¡£SleepµÄʵÏÖ
·½·¨ÆäʵҲÊǵ÷ÓÃWindows APIµÄSleepº¯Êý¡£ÀýÈ磺
sleep(1000); //ÑÓ³Ù1000ºÁÃë
Sleep»áÒýÆð³ÌÐòÍ£ÖÍ£¬Èç¹ûÄãÑÓ³ÙµÄʱ¼ä½Ï³¤µÄ»°£¬ÄãµÄ³ÌÐò½«²»Äܹ»ÏìÓ¦ÑÓʱÆÚ¼äµÄ·¢ÉúµÄÆäËûÏûÏ¢£¬ËùÒÔ³ÌÐò¿´ÆðÀ´ºÃÏñÔÝʱËÀ»ú¡£
3£©GetTickCountº¯Êý
¡¡¡¡ÔÚÖ÷³ÌÐòÖÐÑÓʱ£¬ÎªÁË´ïµ½ÑÓʱºÍÏìÓ¦ÏûÏ¢ÕâÁ½¸öÄ¿µÄ£¬GetTickCount()¹¹³ÉµÄÑ»·¾ÍÊÇÒ»ÖÖ¹ãΪÁ÷´«µÄ·½·¨¡£ÀýÈ磺
procedure Delay(MSecs: Longint);
//ÑÓʱº¯Êý£¬MSecsµ¥Î»ÎªºÁÃë(ǧ·ÖÖ®1Ãë)
var
FirstTickCount, Now: Longint;
begin
FirstTickCount := GetTickCount();
repeat
Application.ProcessMessages;
Now := GetTickCount();
until (Now - FirstTickCount >= MSecs) or (Now < FirstTickCount);
end;
¶þ¡¢¸ß¾«¶ÈµÄ΢ÃÐÔÄܼÆÊýÆ÷£¨high-resolution performance counter£©½éÉÜ
¡¡¡¡ÎªÁ˱ȽÏÒÔÉÏ·½·¨µÄ¾«¶È£¬Ê×ÏÈÐèÒªÕÒµ½Ò»¸ö²Î¿¼µÄ¶¨Ê±Æ÷¡£ÔÚÕâÀÎÒÌṩÁËÁ½¸ö²Î¿¼µÄ¶¨Ê±Æ÷¡£Ò»ÊÇÓõ¥Æ¬»úÿ¸ô1.024ms²úÉúÒ»¸öʵʱ
ÖжÏRTI£¬×÷Ϊ¼ÆÊýÆ÷£»¶þÊÇÑ¡ÓÃÁËÒ»¸ö¸ß¾«¶ÈµÄ΢ÃÐÔÄܼÆÊýÆ÷£¨²Î¼û£º
http://msdn.microsoft.com/msdnmag/issues/04/03/HighResolutionTimer/default.aspx £¬»òÕß
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=200249
£©
1£©¼ÆÊýÆ÷µÄDelphiÔ´´úÂë
{
A high-precision counter/timer. Retrieves time differences
downto microsec.
Quick Reference:
Ïà¹ØÎĵµ£º
ÓÅÐãµÄÊý¾Ý¿âÓ¦ÓÃÓ¦µ±³ä·Ö¿¼ÂÇÊý¾Ý¿â·ÃÎʵÄËÙ¶ÈÎÊÌ⡣ͨ³£¿ÉÒÔͨ¹ýÓÅ»¯Êý¾Ý¿â¡¢ÓÅ»¯ ²éѯÓï¾ä¡¢·ÖÒ³²éѯµÈ;¾¶ÊÕµ½Ã÷ÏÔµÄЧ¹û¡£¼´Ê¹ÊÇÕâÑù£¬Ò²²»¿É±ÜÃâµØ»áÔÚ²éѯʱÉÁÏÖÒ»¸ö´øÓÐ SQL·ûºÅµÄɳ©£¬¼´Êó±ê±ä³ÉÁ˲éѯµÈ´ý¡£×î¿ÉÁ¯µÄÊÇÓû§£¬Ëû£¨Ëý£©ÔÚ´ËʱֻÄÜÎÞÄεصȴý¡£Óöµ½¼±ÐÔ×ӵģ¬¸É´àÔÚ´Ëʱ³¢ÊÔ WindowsÖеÄÆäËüÓ¦ÓóÌÐ ......
º¯ÊýÒ»£º
view plaincopy to clipboardprint?
uses
Windows,
SysUtils,
Classes,
ShellAPI;
function RunAndWait(FileName: string; Visibility: Integer): THandle;&nbs ......
uses ShellAPI;
procedure TForm1.Button1Click(Sender: TObject);
begin
//ÓÃIE´ò¿ª
ShellExecute(Handle, 'open', 'IExplore.EXE', 'about:blank', nil, SW_SHOWNORMAL);
//Óûðºü´ò¿ª
ShellExecute(Handle, 'open', 'firefox.exe', 'about:blank', nil, SW_SHOWNORMAL);
//ÓÃĬÈÏä¯ÀÀÆ÷´ò¿ª
&nbs ......
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TDemoForm = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
GetButton: TBitBtn;
CloseButton: TBitBtn;
Bevel1: TBevel;
Label5: TLabel;
......
1£®µ÷ÓÃAPIº¯Êý
procedure CopyFile(fromFileName,ToFileName:string);
var
f1,f2:file;
Begin
AssignFile(f1,fromFileName); file://Ö¸¶¨Ô´ÎļþÃû
AssignFile(f2,ToFileName); file://Ö¸¶¨Ä¿±êÎļþÃû
Reset(f1);
Try
Rewrite(f2);
Try
If Lzcopy(TfileRec(f1).handle,TfileRec(f2).Handle)<0
Then
Raise ......