文本编辑器的设计(二)

超级姥姥来了

超级姥姥来了

2016-01-29 14:02

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

4.4.2查找对话框部件 

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

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

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

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

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

取值           含义

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

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

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

时设置。

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

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

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

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

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

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

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

  procedure TEditform.Find(Sender: TObject);

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

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处查找。

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

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

  特别注意的是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;

SearchString: String;

Options: TFindOptions): PChar; 

implementation 

function SearchMemo(Memo: TCustomEdit;

const SearchString: String;

Options: TFindOptions): Boolean;

var

Buffer,

展开更多 50%)
分享

猜你喜欢

文本编辑器的设计(二)

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

文本编辑器的设计(一)

Delphi
文本编辑器的设计(一)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Delphi文本编辑器的设计

编程语言 网络编程
Delphi文本编辑器的设计

一个的简易文本编辑器源码

Web开发
一个的简易文本编辑器源码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

14个为网页设计师而生的文本编辑器

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
14个为网页设计师而生的文本编辑器

为网页设计师而生的14个文本编辑器

电脑网络
为网页设计师而生的14个文本编辑器

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Delphi 中自做动态显示的控件

Delphi 中自做动态显示的控件

Delphi快速入门(一)

Delphi快速入门(一)
下拉加载更多内容 ↓