Time of Update: 2017-02-27
在Windows95/98中,都是使用註冊表對系統資料進行管理,有關壁紙的設定資料儲存在Hkey_Current_User\Control Panel\Desktop的Wallpaper和TileWallpaper
Time of Update: 2017-02-27
本執行個體示範如何在程式中動態修改螢幕的解析度,並且不需要重新啟動電腦就可以生效。向表單上添加兩個Button控制項,設計完成的主介面如圖1所示。圖1 主介面在程式中添加一個自訂函數DynamicResolution,它有兩個參數,分別對應於水平和垂直方向的解析度,並且該函數有一個BOOL類型的傳回值,通過判斷傳回值可以判斷DynamicResolution函數是否正確執行。DynamicResolution函數代碼如下:function
Time of Update: 2017-02-27
如果你想做一個CD播放器的話,那本技巧一定少不了。這是一個控制CD-ROM磁碟機門彈出和關閉的方法,首先需要在uses部分加入mmsystem,接著增加兩個TButton按鈕,在按鈕事件裡寫入下列語句,記住在調用完畢後一定要顯示或判斷returnstring,要不程式將出錯:procedure TForm1.Button1Click(Sender: TObject);var
Time of Update: 2017-02-27
當你做一個多媒體播放器時,難免少不了控制音量的大小和左右聲道的播放,下面就介紹一種控制Wave波形輸出裝置音量的方法,該方法不是設定主音量。先在表單上放兩個TTrackBar,分別命名為TrackBar1,TrackBar2,屬性Max都設定為65535,如果覺得刻度太密了,可以把Frequency屬性值設定大一些,然後在Uses段加入MMSystem,並在TrackBar1和TrackBar2的OnChange事件都寫上下列語句:procedure
Time of Update: 2017-02-27
現在很多應用都需要上傳與下載大型檔案,通過HTTP方式上傳大檔案有一定的局限性。幸好FTP作為一個非常老而且非常成熟的協議可以高效穩定地完成大檔案的上傳下載,並且可以完美地實現續傳。就拿我寫的電影伺服器管理端程式來說,各種方案比較後,發現使用FTP可以完美地實現要求。但是要通過WinSocket庫實現FTP比較麻煩,幸好有Indy--一個封裝了大多數網路通訊協定的組件包。通過Indy,程式設計人員可以通過阻塞方式進行編程,可以拋開蹩腳的Winsocket非同步模式,採用與Unix系統上等同的阻塞
Time of Update: 2017-02-27
"一個優秀的Delphi程式員,不僅要會寫控制項,還要會使用控制項。"我還是一個半瓢水的程式員,因此目前為止我所能努力達到的境界是:一個半瓢水的程式員,管他會不會寫控制項,只要能拿來改就可以了。使用過Delphi的朋友都知道,我們在設計Delphi應用程式的某一功能時總是希望能夠有現成的第三方免費控制項可以拿來使用。但實際情況往往是,網上的控制項確實種類繁多,優秀作品也數不勝數,但真正完全能夠符合設計者具體要求的控制項卻很少。究其原因,不外乎以下幾條1、國人開發的應用程式大多
Time of Update: 2017-02-27
題意劉汝佳請了K個客人到他家吃晚飯,加上他的家人:他的老婆、兒子、女兒、媽媽、爸爸、嶽父、嶽母,那麼這頓晚飯一共有K+8個人。因為是吃中餐,所以需要筷子,他家裡一共有N根筷子,而且長短不一,這時劉汝佳的ACMer本性又暴露出來了,他不按照正常的每個人都給兩隻筷子,而是每個人分3根筷子,其中最長的一根用來叉比較大塊的食物,而另外兩根較短的筷子當作正常的使用。為了讓每個人用得更加舒服,顯然,要讓短的兩根筷子長度盡量接近,設這三根筷子的長度為A,B,C(A<=B<=C),那麼較小兩根會有一
Time of Update: 2017-02-27
題目大意一根長為l的木棍,上面有n個"切點",每個點的位置為c[i]要按照一定順 序把每個點都砍段,最後變成了n+1段每砍一次,就會有一個花費,例如長度為10,“切點”為2,那麼砍完 後會變成兩段2,8, 那麼花費為2+8=10如果有多個“切點”,那麼不同順序切會得到不同的花費。最小 花費是多少?思路注意要增加一個c[n] = lf(i, j) 表示(i,j)區間的最小花費f(i, j) = min{ f(i,k)+f(k+1,
Time of Update: 2017-02-27
題意給一棵節點帶權的樹,找到一個有k個節點的子樹,求這個子樹的最大權值思路樹形 dp+背包。f(i, j) 表示以i為根節點的有j個節點子樹的最大權值然後對i的每個子節點做分組背包, 因為對於i的每個兒子,可以選擇分配1,2,3...j-1個節點給它f(i, j) = max{ max{f(i, j-p) + f(v, p) | 1<=p<j} | v是i的兒子節點}ans = max{ f[i][k] | 0<=i<n && i
Time of Update: 2017-02-27
題目大意給一個字串,可以把連續相同的部分進行縮寫成k(S)的形式,S是一個字串,k表示 有連續相同的S例如,abgogogogo,可以縮寫成ab4(go). 還可以嵌套縮寫,比如“nowletsgogogoletsgogogo”, 縮寫成“now2(lets3(go))”思路一道區間dp,但是這題並 不好想f(i, j)表示字串的i~j位的最小位元那麼f(i, j) = min{ min{ f(i,k)+f(k+1, j), i<=
Time of Update: 2017-02-27
題目大意有n個長度為m的二進位串,每個都是不同的。為了把所有字串區分開,你可以詢問,每次可以問某位上是0還是1。問最少提問次數,可以把所有字串區分開來。思路f[s1][s2]: 表示提問的問題是{s1}集合,答案是{s2}時,還需要問幾次才可以全部區分開當問題集合為{s1}時, 如果還不能區分所有答案,那麼就需要繼續再問一個問題,那麼可以推出下一個問題的集合為:nextQuestions = { s1 | (1<<k), 當s1的k位上為0的時候 }那麼可以得到:f[s1
Time of Update: 2017-02-27
題目大意:有個酒店的門會改變尺寸,變化範圍是【0,k】,這個門每秒鐘尺寸可以變大1,可以 減小1,也可以不變。現在有n個人,他們的尺寸為si,每個人在ti時刻想要進入酒店,只有在ti時刻 酒店門的尺寸恰好和這個人的尺寸大小相等,這個人才可以進入。每個人有一個值Pi,當某人進入酒 店,酒店就會增加Pi值。在[0,T]這段時間內(0秒時酒店的門尺寸狀態是0),求讓一些人進入酒店 ,使得總Pi值最大。思路:開始時,以為同一時間兩個人不能同時進入,結果WA了很久。 其
Time of Update: 2017-02-27
啟動Desktop有兩種方法:(1)從Windows中啟動從Windows作業系統介面中,依次點擊功能表項目“開始l程式l Borland DelPhi6 I Database Desk.Top”,就可啟動DeskTop。(2)從Delphi中啟動從Delphi主菜單中單擊“Tools I Database
Time of Update: 2017-02-27
TDXImageList.Items 中的每個 TPictureCollectionItem 的預設透明色是黑色, 並預設透明.本例使用的測試圖片:本例效果圖:代碼檔案:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DXDraws, StdCtrls, DXClass;type TForm1 =
Time of Update: 2017-02-27
Delphi與DirectX 之DelphiX(7): 給TDXImageList載入圖片的最後方案本例效果圖:代碼檔案:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DXDraws, StdCtrls;type TForm1 = class(TForm) DXDraw1: TDXDraw; DXImageList1:
Time of Update: 2017-02-27
我們知道,螢幕解析度的設定影響著表單布局,假設你的機器上螢幕解析度是800*600,而最終 要分發應用的機器解析度為640*480,或1024*768,這樣你原先設計的表單在新機器上勢必會 走樣。這時你一定希望表單能自己適應不同的解析度,下面就有兩種方法可供你參考。一、根據新的解析度自動重畫表單及控制項先在表單單元的Interface部分定義兩個常量,表示設計時的螢幕的寬度和高度(以像素為 單位)。在表單的Create事件中先判斷當前解析度是否與設計解析度相同,如果不同,調用表
Time of Update: 2017-02-27
在可視化開發的時代,表單是絕大部分應用程式的核心,但是開發人員也許已對Windows一成不變的方形表單感到厭煩。其實巧妙地使用API函數即可實現漢字形狀的表單。
Time of Update: 2017-02-27
function CreateThread( lpThreadAttributes: Pointer; dwStackSize: DWORD; lpStartAddress: TFNThreadStartRoutine; lpParameter: Pointer; dwCreationFlags: DWORD; {啟動選項} var lpThreadId: DWORD): THandle; stdcall;CreateThread 的倒數第二個參數 dwCreationFlags(啟動選項)
Time of Update: 2017-02-27
function CreateThread( lpThreadAttributes: Pointer; {安全設定} dwStackSize: DWORD; {堆棧大小} lpStartAddress: TFNThreadStartRoutine; {入口函數} lpParameter: Pointer; {函數參數} dwCreationFlags: DWORD; {啟動選項} var lpThreadId: DWORD
Time of Update: 2017-02-27
DXClass | DXDraws | DIB | DXSounds | DXWave | DXPlay | DXSprite | DXInputDXClass