⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 130.htm

📁 水木清华的BBS文章
💻 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 + -