delphi是全新的可視化編程環境,為我們提供了一種方便、快捷的windows應用程序開發工具。它使用了microsoft windows圖形用戶界面的許多先進特性和設計思想,采用了彈性可重復利用的完整的面向對象程序語言(object-oriented language)、當今世界上最快的編輯器、最為領先的開發工具之一。對於廣大的程序開發人員來講,使用delphi開發應用軟件,無疑會大大地提高編程效率。另外DELPHI是一個開放系統,只要靈活使用一些控件,即可開發出各種類型的系統,不論N-Tie程序、多線程程序、分布計算程序(包括DCOM和CORBAR)、TCP程序、Web程序、ActiveX、中間件、推程序(Push),甚至你可以用它來寫匯編程序。下面筆者就列舉幾則DELPHI的開發應用技巧。
1、重新調整表單布局
我們在設計網頁的時候,常常會發現設計好了的表單在屏幕的顯示分辨率更改了後,表單的布局就面目全非了,那麼我們有沒有辦法讓表單隨著分辨率的變化而自動變化呢?在這裡,我們可以借助delphi的幫忙,來設計一個程序達到自動調整的目的。設計時,我們可以使用Interface部分定義屏幕的寬度和高度兩個參數,然後通過程序來判斷當前分辨率是否與設計分辨率相同,最後利用SCALE來達到重新調整表單布局的目的,下面是程序的主要原代碼:
Const
Screenwidth=1024;
Screenwidth=758; //定義屏幕的原始分辨率
procedure TForm1.FormCreate(Sender: TObject);
begin
scaled:=true; //判斷當前分辨率是否與設計分辨率相同
if (screen.width<>Screenwidth) then
begin //重新調整表單布局
height:=longint(height)*longint(screen.height) div Screenwidth;
width:=longint(width)*longint(screen.width) div Screenwidth;
scaleby(screen.width , Screenwidth);
end;
end;
2、查詢工作組身份
如果您是一位局域網的系統管理員的話,肯定要經常對連接在局域網中的各個工作組進行管理和維修,並對每一台工作組建立相關的信息檔案,以後只要根據這些檔案信息就知道對應的工作組的運行情況,從而可以大大提高管理的效率了。此時,可能有人說,要查看這些工作組的信息,不是還要一台一台地打開、一台一台地查看嗎?的確,如果還是這樣操作的話,工作效率肯定還是不會提高,那麼我們有沒有辦法同時獲取局域網中的每一台工作組的信息呢?答案當然是肯定的,我們可以使用DELPHI中的WINSOCK來達到自動獲取工作組的名字和IP地址的目的。
uses Winsock; //調用Winsock單元
procedure TForm1.FormCreate(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
begin //創建 WinSock
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
end;
procedure TForm1.Button1Click(Sender: TObject);
var p : PHostEnt; s : array[0..128] of char; p2 : pchar;
begin //獲取工作組信息
GetHostName(@s,128);
p:=GetHostByName(@s); //返回工作組名稱
Memo1.Lines.Add(p^.h_Name);
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^); //返回工作組IP地址}
Memo1.Lines.Add(p2);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
WSACleanup; //釋放 WinSock單元
end。
3、設計動態按鈕
在信息爆炸式增長的今天,每天都有大量新的網站誕生,每時每刻網上都傳遞著難以計數的信息。建立網站來進行自我宣傳和信息交流已成為一種新潮的媒體宣傳方式,多姿多彩的網頁也成為Internet中最為絢麗的部分。您也許已經注意到,在網絡速度不斷提高的今天,網站的站主們為了留住訪問者的視線,開始越來越多地在網頁中使用精美的動畫、交互式的表單以及其他網頁特效。不過我們要實現這些特效,一般都需要借助類似Photoshop、Flash這樣復雜的圖象設計軟件,而且由這些圖象軟件生成的特效,字節容量往往都會很大,這相對於目前並不理想的帶寬來說不能不算是個遺憾。當然,並不是所有的特效都需要龐大的圖象軟件才能完成,我們同樣可以通過編寫程序的方法來達到設計網頁特效的目的。下面,筆者就以delphi來設計動態網頁按鈕為例,來說明一下我們完全可以使用程序來制作網頁的特效。下面設計的動態按鈕將達到一種界面色彩漸變效果:首先在delphi界面中新建一個表單,來創建一個按鈕,假設該按鈕的名稱為Button,為了能使按此按鈕達到一種色彩漸變的效果,我們通過用漸變的畫刷刷描依次相鄰的矩形塊實現漸變效果,下面就是其具體的原代碼:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:Integer;
Dct:TRect;
begin
j:=Form1.height;
for i:=0 to 255 do //設置矩形框中的顏色值
begin
Canvas.Brush.Color:=RGB(255,255,i); //通過畫不同顏色的矩形畫來刷按鈕的顏色
Dct:=Rect(i*2,0,(i+1)*2,j); //每次刷繪的矩形區域
Canvas.FillRect(Dct); //往矩形中填充顏色
end;
end;