Vb教程 Vb.net教程 Vfp教程 C/C++教程 Vc/Vc++教程 Delphi教程 Java教程 Powerbuilder
  杀毒频道 | 短信频道 | 网络电视 | 论文中心 | 学上网 | 学软件 | 网页特效 | 电脑基础 | 论坛  
  NCRE | 软考 | CET | 职称英语 | 司法考试 | 报关员 | 公务员 | CATTI | CPA考试  
  Html教程 | Css教程 | Xml教程 | Asp教程 | Asp.net | Php教程 | Jsp教程 | Linux教程 | QQ技巧  
Photoshop Illustrator ImageReady Maya教程 3D Max教程 Lightscape Coredraw教程 Authorware Autocad教程 Freehand教程
Access教程 Mysql教程 Sql server Oracle教程 Word教程 Excel教程 Powerpoint Frontpage Asp.net源码 Php源代码
Flash教程 Fireworks Dreamweaver C#教程 outlook教程 系统安装 vbscript教程 Javascript Jsp源代码 Asp源代码
您的位置:首页 >> C/C++教程 >> 正文

Borland C++Builder 5.0教程(9)
文章来源:pconline 作者:陈明浩

标准对话框的应用

   对话框,可能是Windows里面最常见的窗口,不管是打开文件、保存文件,还是查找或者替换等,无一不是Windows的对话框。在C++Builder的可视组件库(VCL)中,总共提供了十个标准的对话框组件,我们可以在组件面板的【Dialogs】页中找到这些通用对话框组件,如下所示:



   它们从左到右依次是:文件打开对话框(OpenDialog)、文件保存对话框(SaveDialog)、图形文件打开对话框(OpenPictureDialog)、图形文件保存对话框(SavePictureDialog)、字体对话框(FontDialog)、颜色对话框(ColorDialog)、打印对话框(PrintDialog)、打印机设置对话框(PrintSetupDialog)、查找对话框(FindDialog)和替换对话框(ReplaceDialog)。

   在这里我们先研究一下最常用的几个对话框,分别是文件打开对话框(OpenDialog)、文件保存对话框(SaveDialog)、字体对话框(FontDialog)、颜色对话框(ColorDialog)、查找对话框(FindDialog)以及替换对话框(ReplaceDialog)。现在就让我们一起来慢慢逐一分析研究。
一.文件打开对话框和文件保存对话框

   文件打开对话框组件为应用程序打开一个已经存在的文件,文件保存对话框组件将现有的文档保存到磁盘的文件上。

1. Execute()方法

   我们可以通过调用Execute()方法来显示文件打开对话框或文件保存对话框。如下图所示



2. Filter属性

   这个属性显示在文件列表框中的文件类型。例如,我们如果选择了‘*.txt’的文件类型,那么只有文本文件才会显示在文件列表框中。我们可以通过过虑编辑器(Filter Editor)决定Filter属性的所有可能取值。



3. FileName属性

   在FileName属性中保存了文件操作对象的完整文件路径和文件名。

4. 实现代码

if(OpenDialog1->Execute()) //打开打开文件对话框

{

RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName); //把文件读取到多文本编辑

//器中

}

if(SaveDialog1->Execute()) //打开保存文件对话框

{

RichEdit1->Lines->SaveToFile(SaveDialog1->FileName); //把多文本编辑器的内容保存到

//文件中

}
二.字体对话框和颜色对话框

   字体对话框(FontDialog)和颜色对话框(ColorDialog)用于在应用程序中选择适当的字体属性和颜色属性,从而使文档变得富于表现力。

if(FontDialog1->Execute()) //打开字体对话框

{

RichEdit1->Font=FontDialog1->Font;//把多文本编辑器的字体设置为所选字体

}



if(ColorDialog1->Execute()) //打开颜色对话框

{

RichEdit1->Font->Color=ColorDialog1->Color;//把多文本编辑器的颜色设置为所选颜色

}

三.查找和替换对话框

   查找对话框(FindDialog)为应用程序提供查找功能,我们可以通过使用查找对话框在文本文件中查找指定的字符串。应用程序要查找的字符串对象放在FindText属性中,当我们在查找对话框中输入了目标字符串并点击‘查找下一个’ 按钮,查找对话框将发生OnFind事件。但是查找对话框并不负责字符串查找工作,所以我们要在这个事件中代码中添加实现代码。



void __fastcall TForm1::FindDialog1Find(TObject *Sender)

{

//加入实现查找字符串的功能的代码

}

   替换对话框(ReplaceDialog)为应用程序提供替换功能。它试从查找对话框对象继承而来,所以除了包括查找对话框的所以功能外,还包括用户替换被选中的字符串。当我们在查找对话框中输入了目标字符串并点击‘查找下一个’ 按钮,查找对话框将发生OnFind事件,我们要在这个事件中代码中添加实现查找的代码;当我们点击‘替换’或者‘全部替换’的按钮时,产生OnReplace事件,我们要在这个事件中添加实现替换的代码。



void __fastcall TForm1::ReplaceDialog1Find(TObject *Sender)

{

//加入实现查找字符串的功能的代码

}

void __fastcall TForm1::ReplaceDialog1Replace(TObject *Sender)

{

//加入实现替换字符串的功能的代码

}
 以下是一个文字处理程序,它包括了我们上面讲到的几个通用对话框,可以实现读取文本文件,改变文本文件的字体和颜色,以及在文本中查找和替换字符串等功能。

主要代码:

void __fastcall TForm1::ToolButton1Click(TObject *Sender)

{

if(OpenDialog1->Execute())

{

RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);

}

}

//-------------------------------------------------------------

void __fastcall TForm1::ToolButton2Click(TObject *Sender)

{

if(SaveDialog1->Execute())

{

RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);

}

}

//--------------------------------------------------------------

void __fastcall TForm1::ToolButton3Click(TObject *Sender)

{

if(FontDialog1->Execute())

{

RichEdit1->Font=FontDialog1->Font;

}

}

//--------------------------------------------------------------

void __fastcall TForm1::ToolButton4Click(TObject *Sender)

{

if(ColorDialog1->Execute())

{

RichEdit1->Font->Color=ColorDialog1->Color;

}

}

//---------------------------------------------------------------

void __fastcall TForm1::ToolButton5Click(TObject *Sender)

{

FindDialog1->Execute()

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ToolButton6Click(TObject *Sender)

{

ReplaceDialog1->Execute()

}

//------------------------------------------------------------

void __fastcall TForm1::FindDialog1Find(TObject *Sender)

{

int FoundAt,StartPos,ToEnd;

if(RichEdit1->SelLength)

{

StartPos=RichEdit1->SelStart+RichEdit1->SelLength;//从文件的当前位置开始查找

}

else

{

StartPos=0; //从文件开头开始查找

}

ToEnd=RichEdit1->Text.Length()-StartPos;//一直查找到文件的末尾

FoundAt=RichEdit1->FindText(FindDialog1->
FindText,StartPos,ToEnd,TSearchTypes()<
if(foundat!=-1) //如果返回'-1'就是没找到,否则就是找到

{

RichEdit1->SetFocus();

RichEdit1->SelStart=FoundAt;

RichEdit1->SelLength=FindDialog1->FindText.Length();

}

}

//---------------------------------------------------------------

void __fastcall TForm1::ReplaceDialog1Replace(TObject *Sender)

{

TReplaceDialog *dlg=(TReplaceDialog *)Sender;

int SelPos=RichEdit1->Lines->Text.Pos(dlg->FindText);

if(SelPos>0) //如果找到,就把找到的字符串替换掉

{

RichEdit1->SelStart=SelPos-1;

RichEdit1->SelLength=dlg->FindText.Length();

RichEdit1->SelText=dlg->ReplaceText;

}

else

{

MessageBeep(0);

}

}

[返回]

编程语言 web开发 数据库 网络技术 操作系统 服务器 网页设计 图形设计 办公软件 常用软件 学电脑

Copyright© www.bianceng.cn Powered by 编程入门网 All Rights Reserved.
关于本站 | 版权声明 | 联系我们 | 友情链接 |
编程入门网 版权所有