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;