📄 130.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://bbs.tsinghua.edu.cn"><font face="黑体"><big><big>水木清华★</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> Delphi编程 (BM: strayli FlyingBoy) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="454"> <p align="center">[<a href="index.htm">回到开始</a>][<a href="100.htm">上一层</a>][<a href="131.htm">下一篇</a>]
<hr><p align="left"><small>检测磁盘是否变化 <br>
<br>
最简单的检查CD-ROM或是磁盘是否有过变化的方法 是检查其volume号码。你可 <br>
以简单地运用下面的函数来返 回磁盘的volume系列号码GetDiskVolSerialID('E'), <br>
函数代码如下: <br>
function GetDiskVolSerialID(cDriveName:char):DWord; <br>
var <br>
dwTemp1,dwTemp2:DWord; <br>
begin <br>
GetVolumeInformation(PChar(cDriveName+':l'), Nil,0,Result, dwTemp2,dwTemp2,Nil <br>
,0); <br>
end; <br>
<br>
鼠标击了哪一个对象 <br>
<br>
在Win95中,鼠标的右键起到了很大的作用,但是,由于历史的原因,对于右键的 <br>
使用即使在Delphi中,也还不够有效,下面的程序可以告诉你如何知道刚才鼠标右击 <br>
的对象名称。首先建立一个popmenu,然后以下的代码就可以告诉你刚才右击的对象名 <br>
称: <br>
PopupMenu1.PopupComponent.ClassName <br>
<br>
控制INI文件 <br>
<br>
<br>
要利用.INI文件做程序有关数据的存储工作,就需要能读和写.INI文件,所以列了如 <br>
下方法给大家参考: <br>
从.INI文件中获取字符串 <br>
var <br>
strResult:pchar; <br>
begin <br>
GetPrivateProfileString( <br>
'windows', // []中标题的名字 <br>
'NullPort', // =号前的名字 <br>
'NIL', // 如果没有找到字符串时,返回的默认值 <br>
strResult, //存放取得字符 <br>
100, //取得字符的允许最大长度 <br>
'c:\forwin95\win.ini' // 调用的文件名 <br>
); <br>
edit1.text:=strResult; //显示取得字符串 <br>
从.INI文件中获取整数 <br>
edit1.text:=inttostr(GetPrivateProfileInt( <br>
'intl', // []中标题的名字 <br>
'iCountry', // =号前的名字 <br>
0,// 如果没有找到整数时,返回的默认值 <br>
'c:\forwin95\win.ini' // 调用的文件名 <br>
)); <br>
)); <br>
向.INI文件写入字符串 <br>
WritePrivateProfileString( <br>
'windows', // []中标题的名字 <br>
'load', // 要写入“=”号前的字符串 <br>
'accca', //要写入的数据 <br>
'c:\forwin95\win.ini' // 调用的文件名 <br>
); <br>
向.INI文件写入整数 <br>
WritePrivateProfileSection( <br>
'windows', // []中标题的名字 <br>
'read=100', // 要写入的数据 <br>
'c:\forwin95\win.ini' // 调用的文件名 <br>
); <br>
<br>
防止Win95显示严重错误 <br>
<br>
不管你的程序如何反复调试,交给用户之后,总有可能发生你意想不到的错误, <br>
如何避免Win95显示出白色的窗口,告诉你的用户发生了难堪的意外错误呢?我们可以 <br>
这样做: <br>
var <br>
wOldErrorMode:Word; <br>
begin <br>
begin <br>
wOldErrorMode:=SetErrorMode(SEM_FAILCRITICALERRORS); <br>
try <br>
finally <br>
SetErrorMode(wOldErrorMode); <br>
end; <br>
end; <br>
<br>
状态条插入可视控件 <br>
<br>
首先,在FROM中放置一个状态条控件Status。调节Status.Panels,在其中插入3个 <br>
状态条嵌板。把第二个嵌板的参数Style设置成psOwnerDraw。这一点很重要,如果没 <br>
有这样做,将永远无法显示文字以外的东西。然后在状态条的OnDrawPanel事件中插入 <br>
一行StatusDrawRect:=rect;以记录参数Style设置成psOwnerDraw的嵌板的坐标。 <br>
第二步,在FROM的Private中申明一个TProgressBar类型的变量Progress。然后在 <br>
一个菜单的消息响应过程中调用Create方法把它建立起来,再设定状态条为该进程条 <br>
的父窗口,进而设定进程条的一些必要参数。例如:最大值、最小值、原点坐标、高 <br>
度和宽度等。 <br>
最后编译一下该程序,你就会发现在状态条中被插入了一个运动着的进程条。 <br>
类似地,你还可以在状态条中插入其他可视控件,如:按键、位图和动画控件等 <br>
等。 <br>
以下是范例程序: <br>
type <br>
type <br>
TForm1 = class(TForm)//定义一个窗口类 <br>
Status: TStatusBar; <br>
MainMenu1: TMainMenu; <br>
file1: TMenuItem; <br>
insertprocressbar1: TMenuItem; <br>
N1: TMenuItem; <br>
exit1: TMenuItem; <br>
procedure FormCreate(Sender: TObject); <br>
procedure StatusDrawPanel(StatusBar: TStatusBar; Panel: <br>
TStatusPanel;const Rect: TRect); <br>
procedure FormDestroy(Sender: TObject); <br>
procedure exit1Click(Sender: TObject); <br>
procedure insertprocressbar1Click(Sender: TObject); <br>
private <br>
colorindex : integer; BookOpen:Boolean; <br>
ssbmp:Tbitmap; progress:TProgressbar; <br>
StatusDrawRect:TRect; //记录要插入状态条特技的坐标范围 <br>
public <br>
{ Public declarations } <br>
end; <br>
<br>
var <br>
var <br>
Form1: TForm1; <br>
<br>
implementation <br>
<br>
{$R *.DFM} <br>
<br>
procedure TForm1.FormCreate(Sender: TObject); <br>
begin <br>
end; <br>
<br>
procedure TForm1.StatusDrawPanel(StatusBar: TStatusBar; <br>
Panel: TStatusPanel; const Rect: TRect); <br>
begin <br>
StatusDrawRect:=rect; //记录要实现状态条特技的坐标范围 <br>
end; <br>
<br>
procedure TForm1.exit1Click(Sender: TObject); <br>
begin <br>
close; <br>
end; <br>
<br>
procedure TForm1.insertprocressbar1Click(Sender: TObject); <br>
var i,count:integer; <br>
staPanleWidth:integer; <br>
begin <br>
progress:=TProgressbar.create(form1); <br>
count:=3000; //进程条的最大值 <br>
staPanleWidth:=status.Panels.Items[2].width; <br>
//由于进程条的很宽,所以需要改变状态条嵌板的宽度,这里先保存它的宽度。 <br>
status.Panels.Items[2].width:=150; // 改变宽度 <br>
status.repaint; <br>
with progress do <br>
begin <br>
top:=StatusDrawRect.top; <br>
left:=StatusDrawRect.left; <br>
width:=StatusDrawRect.right-StatusDrawRect.left; <br>
height:=StatusDrawRect.bottom-StatusDrawRect.top; <br>
//设定进程条的宽度和高度 <br>
visible:=true; <br>
try <br>
Parent := status; //该进程条的拥有者为状态条status <br>
Min := 0; Max := Count; //进程条的最大和最小值 <br>
Step := 1; //进程条的步长 <br>
for i := 1 to Count do <br>
r>
Step := 1; //进程条的步长 <br>
for i := 1 to Count do <br>
Stepit; // 累加进程条 <br>
ShowMessage('现在,进程条将要从内存中被释放'); <br>
finally <br>
Free; //释放进程条 <br>
end; //try <br>
end; //with <br>
status.Panels.Items[2].width:=staPanleWidth; //恢复状态条嵌板的宽度 <br>
end; //begin <br>
<br>
end. <br>
<br>
临时路径 <br>
<br>
有时需要Windows的临时路径来做备份等工作,那么就要知道路径在哪,下面的程序帮 <br>
你忙: <br>
var aa:pchar; <br>
begin <br>
GetTempPath(20,aa); //返回路径名 <br>
edit1.text:=aa; <br>
end; <br>
</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="100.htm">上一层</a>][<a href="131.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -