文本编辑器的设计(二)

2016-01-29 14:02 23 1 收藏

文本编辑器的设计(二),文本编辑器的设计(二)

【 tulaoshi.com - Delphi 】

 

4.4.2查找对话框部件 

  查找对话框部件为应用程序提供查找对话框, 用户可使用查找对话框在文本文件中查找字符串。

  可用Execult方法显示查找对话框,如图4.8。应用程序要查找的字符放到FindText属性中。Options 属性可决定查找对话框中有哪些选项。例如, 用户可选择是否显示匹配检查框。Options的常用选项如表4.2所示。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/delphi/)

如果用户在对话框中输入字符并选择FindNext按钮,对话框将发生OnFind事件。 

表4.2 查找对话框的Options属性的取值及含义

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

取值           含义

───────────────────────────────────────

frDown 如果是真值,对话框中出现Down按钮,查找方向向下。如果是假

值,Up按钮将被选中,查找方向向上,frDown 值可在设计或运行

时设置。

frDisableUpDown 如果是真值,UpDown按钮将变灰,用户不能进行选取;如果是

假值,用户可以选择其中之一。

frFindNext 如果是真值,应用程序查找在FindNext属性中的字符串。

frMatchCase 如果是真值,匹配检查框被选中。设计、运行时均可设置。

frWholeWord 如果是真值,整字匹配检查框被选中,设计、运行时均可设置。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

  在OnFind事件中可使用Options属性来决定以何种方式查找。Find方法响应查找对话框的OnFind事件。 

  procedure TEditform.Find(Sender: TObject);

begin

with Sender as TFindDialog do

if not SearchMemo(Memo1, FindText, Options) then

ShowMessage('Cannot find "' + FindText + '".');

end;

          其中SearchMemo函数是Search单元中定义的,SearchMemo可在TEdit,TMemo,以及其它TCustomEdit派生类中查找指定的字符串。查找从控件的脱字号(^) 开始, 查找方式由Options决定。如果向后查找从控件的StlStart处开始,如果向前查找则从控件的SelEnd处查找。

  如果在控件中找到相匹配的字符串,则字符串被选中,函数返回真值。如无匹配的字符串,函数返回假值。

  特别注意的是TEdit,TMemo中有一个HideSeletion属性,它决定当焦点从该控制转移至其它控制时,被选中的字符是否保持被选中的状态。如果是真值,则只有获得焦点才能保持被选中状态。查找时,焦点在查找对话框上,因此要想了解查找情况,必须将HideSeletion设成假值。控制的缺省值为真值。

  SearchMemo代码如下: 

unit Search;

interface

uses WinProcs, SysUtils, StdCtrls, Dialogs;

const

WordDelimiters: set of Char = [#0..#255] - ['a'..'z','A'..'Z','1'..'9','0']; 

function SearchMemo(Memo: TCustomEdit;

const SearchString: String;

Options: TFindOptions): Boolean; 

function SearchBuf(Buf: PChar; BufLen: Integer;

SelStart, SelLength: Integer;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/delphi/)

SearchString: String;

Options: TFindOptions): PChar; 

implementation 

function SearchMemo(Memo: TCustomEdit;

const SearchString: String;

Options: TFindOptions): Boolean;

var

Buffer,

来源:http://www.tulaoshi.com/n/20160129/1492341.html

延伸阅读
标签: Web开发
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "' target=_blank rel=nofollow>http://www.w3.org/TR/html4/loose.dtd" html head titleUBB编辑器/title meta http-equiv="Content-Type" content="text/html; charset=gb2312" link href="style.css" rel="style...
注:续网友 hua 之后,网友 Linuxhero 在讨论区发布了他改进 hua 编写的编辑器程序,并消除了文件存储的乱码问题,本站测试了这个程序,效果不错,希望两位网友再接再励不断地把这个编辑器完善起来,同时也谢谢两位网友对非常空间的支持! ----------------------------------------------------------- 作者:linuxhero ...
标签: 电脑入门
★ 公式编辑器的来历 你一定知道在Word中有个公式编辑器应用程序,但你可能不清楚它其实不是微软公司开发的,它是Design Science公司的Mathtype公式编辑器特别版,是为Microsoft应用程序而定制的。 ★ 公式编辑器的安装 公式编辑器不是Office默认安装的组件,如果要使用它,重新安装Office至如图1所示步骤时,在Office工具中选择公式编辑器...
用VC++设计语法编辑器 作者:ZhengXu 下载源代码 语法编辑器是一个可以对程序设计语言进行语法编辑的文本编辑器,它对程序设计语言进行语法关键字进行加亮处理,如注释行、字符串、语法关键字、数字等,这样使得源程序更容易阅读,VB、VC++、DELPHI 等开发环境都提供了语法编辑功...
标签: 电脑入门
MAC用户在需要修改HTML文件时,常常会想用文本编辑进行修改。不过在使用文本编辑打开后,用户们会发现页面变得非常乱,而无法修改。那么该怎么解决这个问题呢? 解决方法: 其实文本编辑不会傻到没有办法让你以HTML代码的方式来编辑文件的。你要做的仅仅是按下cmd+,打开偏好设置,然后切换到打开和储存标签,在忽略HTML文件里的多信息...

经验教程

449

收藏

46
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部