- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安网站维护基地 来源:黑客防线网安网站维护基地 浏览次数:0 |
begin
Inc(I);
if I >= Length(SearchString) then
begin
if (not (frWholeWord in Options)) or
(SearchCount = 0) or
(Result[I] in WordDelimiters) then
Exit;
Break;
end;
end;
Inc(Result, Direction);
Dec(SearchCount);
end;
Result := nil;
end;
end.
4.4.3 替换对话框部件
替换对话框部件为应用程序提供替换对话框。如图4.9。它包括查找对话框的所有功能,此外还允许使用者更换被选中的字符串。FindText 属性是应用程序需查找的字符串。ReplaceText属性是被选中字符的替换字符串。Options 属性决定对话框的显示方式。其值如表4.3所示。
与查找对话框一样,替换对话框亦有OnFind 事件。用户输入查找字符串并按FindNext按钮时,发生OnFind 事件。用户选择Replace 或ReplacAll 时, 对话框发生OnRelpace事件,要替换的字符串存入ReplaceText属性中,要编写相应的代码以支持替换功能。
表4.3 替换对话框的Options属性的取值及含义
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
取值 含义
────────────────────────────────────────
frRelpace 如果是真值, 应用程序将ReplaceText 属性中的字符串替换
FindText属性中的字符串。
frReplacAll 如果是真值,应用程序将ReplaceText属性中的字符串替换,
查找到的所有FindText属性中的字符串。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
例程中TEditForm.Replace方法响应OnReplace事件,Replace方法首先判断控制中被
选中字符串是否与替换字符串相等,如果不等则进行替换。而后根据Options中的方式循
环进行查找替换。直至无匹配字符串为止。其代码如下:
procedure TEditForm.Replace(Sender: TObject);
var
Found: Boolean;
begin
with ReplaceDialog1 do
begin
if AnsiCompareText(Memo1.SelText, FindText) = 0 then
Memo1.SelText := ReplaceText;
Found := SearchMemo(Memo1, FindText, Options);
while Found and (frReplaceAll in Options) do
begin
Memo1.SelText := ReplaceText;
Found := SearchMemo(Memo1, FindText, Options);
end;
if (not Found) and (frReplace in Options) then
ShowMessage('Cannot find "' + FindText + '".');
end;
end;
4.4.4 打开对话框部件
打开对话框部件为应用程序显示打开对话框。使用Execute方法可显示打开对话框用户通过选择文件类型下拉框中的文件类型,可以确定显示在文件列表中的文件。 例如,如果用户选择*.txt文件类型,那么只有在当前目录下的文本文件才会显示在文件列表中。文件扩展名通常也称为过滤器。
打开对话框包含一个Filters(过滤器)的属性,它可确定文件类型和在文件类型下拉框中的顺序。应用程序可以为打开对话框定义多个过滤器,对话框的FilterIndex 属性可以决定哪个过滤器是文件类型下拉框中的缺省过滤器。如FilterIndex等于2,表示程序运行时出现在文件类型下拉框的过滤器是第2个过滤器。
例程中关于文件打开的代码如下:
procedure TEditForm.Open/Click(Sender : TObject);
begin
if OpenDialog/.Execult then
begin
…
Open(Open Dialog/.FileName)
end
end;
打开,保存对话框中的Options属性值见表4.4
表4.4 打开、保存对话框的Options属性取值及含义
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
值 含义
──────────────────────────────────────
ofAllowMultiSelect 如果是真值,则允许在文件名列表中选择多个文件。
ofCreatePrompt 如果是真值,当用户在文件编辑框中输入一不存在的文件名,
并选择OK按钮,则会出现消息框, 提示用户此文件不存在并
询问是否以此文件名创建一新文件。
ofExiengronDifferent 如果是真值,从对话框中返回的文件扩展名将不同于缺省扩展名。
其值存入DefaultExt属性中。
ofFileMustExist 如果是真值, 当用户在文件编辑框中输入一个不存在的文件名时,
并选择OK按钮, 则会出现一消息框提示用户此文件不存,并询
问是否输入了正确的路径和文件名。
ofNoChangeDir 如果是真值,当前目录将设置成对话框第一次出现的目录,并忽
略任何目录改变。
ofOverWritePrompt 如果是真值,当用户试图保存一个已存在的文件时, 将出现一消息
框,提示用户此文件已存在,并询问是否覆盖。
ofPathMastExit 如果是真值,用户在文件名编辑框只能输入有效路径名, 否则出
现消息框,提示用户路径无效。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表4.4 打开、保存对话框中的Options属性取值及含义
文件保存对话框与打开对话框类似,如图4.11。它的Option属性见上表。例程在保存文件前先对文件进行读写判断,如果文件是只读文件或未指定文件名的新文件, 则程序对文件不保存,否则备份文件。代码如下:
procedure TEditForm.Save1Click(Sender: TObject);
procedure CreateBackup(const Filename: string);
var
BackupFilename: string;
begin
BackupFilename := ChangeFileExt(Filename, BackupExt);
DeleteFile(BackupFilename);
RenameFile(Filename, BackupFilename);
end;
function IsReadOnly(const Filename: string): Boolean;
begin
Result := Boolean(FileGetAttr(Filename) and faReadOnly);
if Result then MessageDlg(Format('%s is read only.',
[ExtractFilename(Filename)]), mtWarning, [mbOK], 0);
end;
begin
if (Filename = '') or IsReadOnly(Filename) then
SaveAs1Click(Sender)
else
begin
CreateBackup(Filename);
Memo1.Lines.SaveToFile(Filename);
Memo1.Modified := False;
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |