C++ Builder编写文本编辑器

CB是BORLAND公司继DELPHI之后开发的又一个通用的客户/服务器结构的开发工具。C++Builder的集成开发坏境除了深入更多的Windows95控制元件,可以建立的对象分类更为详细,添加了许多DELPHI所没有的部件之外,C++Builder的界面基本上与DHLPHI完全相同。C++Builder使用C++语言而不是object pascal语言,所以可以产生更快速和更高效的代码。

我学过并使用过foxbase、visual foxpro、c、borland c++、visual basic和visual c++,但从没有一个编程语言像CB这样给我留下如此深刻的印象,下面我就介绍用C++BUILDER编写文本编辑器,功能类似于WINDOWS的记事本,希望能将您带入到有趣味的C++BUILDER世界中。

本程序中对象属性值说明如下:

对象类 属性 属性值

  TMEMO NAME edit
   TBUTTON NAME bopen
   CAPTION “open”
   NAME bsave
   CAPTION “save”
   NAME bexit
   CAPTION “exit”
   TopenDialog NAME opendialog
   TsaveDialog NAME savedialog

源代码如下:

//--------
   #include
   #pragma hdrstop
   #include “Unit1.h”
   #pragma resource “*.dfm”
   Tform1 *Form1;
   _fastcall Tform1::Tform1(Tcomponent * Owner)
   :Tform(Owner)
   {
   }
   //-------以上由电脑自动生成---
   void _fastcall Tform1::FormCreate(Tobject *Sender)
   {
   bsave->Enabled=false; //将“SAVE”键设置为无效
   edit->Lines->Clear(); //清除EDIT中的内容
   edit->Enabled=false; //将EDIT设为无效
   }
   //------以上是窗体建立时初始内容----
   void _fastcall Tform1::bopenClick(Tobject *Sender)
   {
   if(edit->Modified)//若EDIT中的文本已被改变,但未保存,则弹出对话框,询问是否保存
   {yn=Application->MessageBox(“文件已经修改,是否保存?”,“打开”,MB_YESNO|MB_ICONQUESTION);
   if(yn==IDYES)edit->Lines->SaveToFile(savedialog->FileName);
   }
   edit->Enabled=true;
   if(opendialog->Execute())edit->Lines->LoadFromFile(opendialog->FileName);
   edit->Modified=false;
   bsave->Enabled=false;
   }
   //------以上是打开文件按钮的过程------
   void _fastcall TForm1::bsaveClick(Tobject *Sender)
   {
   if(savedialog->Execute())edit->Lines->SaveToFile(savedialog->FileName);
   edit->Modified=false;
   bsave->Enabled=false;
   }
   //------以上是保存文件按钮的过程------
   void _fastcall TForm1::editChange(TObject *Sender)
   {
   bsave->Enabled=true;
   }
   //---------------------
   void _fastcall TForm1::bexitClick(Tobject *Sender)
   {
   Close();
   }

以上在C++BUILDER3.0中测试通过.

时间: 2024-10-03 13:06:10

C++ Builder编写文本编辑器的相关文章

如何用C#编写文本编辑器

  如何用C#编写文本编辑器[2005-8-24版]        南京千里独行2005版权所有,不限转载,请保留版权声明 摘要    本文探讨了使用C#从底层开发一个带格式的文本编辑器的任务,深入探讨了其中的文档对象模型的设计,图形化用户界面的处理和用户操作的响应,说明了其中的某些技术问题和解决之道. 前言     小弟从大学里开始接触编程也有6年了,工作4年也是干编程的活,见过不少程序,自己也编过不少,在学校编程自己觉得是搞艺术品,其实玩一些游戏,比如文明法老王星际等从某些角度看也是搞艺术品

求助:用JAVA编写文本编辑器,撤销功能怎么实现?

问题描述 想知道监听类具体用什么接口,监听类里面具体怎么写,都用什么类?呵呵,小弟实在想不出来,特求各位大神帮忙! 解决方案 解决方案二:用java自带的UndoManager就可以实现网上很多例子但是这个UndoManager有个很大的问题就是撤销是一个字一个字撤销的果如想实现和word一样的撤销,还是要自己来实现一个UndoManager解决方案三:用java自带的Undo的例子importjava.awt.event.ActionEvent;importjava.awt.event.Act

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

  可视化的工具的易用性通常非常优异,因为它更符合人们交互和操作的自然逻辑.不过,要精准控制网页和程序,你总需要一款称心如意的文本编辑器来帮你搞定代码,哪怕是视觉至上的Adobe都会在Master套装里面保留Dreamweaver. 的确,从某种程度上来说,文本编辑器看起来没有可视化程序那么高大上,但是多年以来网页开发的方式和基本流程都没有本质上的改变,因此网页开发也无法和文本编辑器割裂开来.热爱文本编辑器的开发者和设计师都很清楚,一个得心应手的文本编辑器不仅高效而且具备良好的可控性,助力设计,

第四章-文本编辑器的设计(一)(2)

4.2 多页面界面 多页面界面是一种非常友好的界面形式.它由一个窗体和多个页面组成, 关于每个页面的信息列在窗体底部的标签(Tabs)上,用户可通过选择标签来进行页面切换. 每次只有一个页面显示在窗体中.MPI较MDI使用更为方便,且切换速度更快.本章例程就是多页面界面的例子.另外Delphi集成开发环境中的代码编辑(Code Editor)窗体是MPI应用在文本编辑中的实例.在MPI中,一个窗体内的多个文件可以方便地进行切换和交换数据. 多页面界面分为静态MPI和动态MPI两种形式.静态MPI

Visual Studio 2008可扩展性开发(七):操作文本编辑器

前言 在可扩展性开发(六)中,我介绍了对于Solution Explorer的基本操作.不过,对咱 们开发人员来说,绝大部分时间面对的还是编辑器. VS2008的编辑器功能已经颇为强大了,如果我们能熟练使用快捷键,编写代码的过程 是相当舒服的,就像<卓有成效的程序员>中所说: "编程时始终优先使用键盘而非鼠标" 但问题在于,VS面向的是所有的开发人员群体,它只能够提供最通用的功能,如果对 VS的编辑器有些额外的需求,我们只好自己动手了,本文将介绍如何扩展文本编辑器. AOM

用java做一个文本编辑器并提供eclipse的编译和运行功能

问题描述 用java做一个文本编辑器并提供eclipse的编译和运行功能 实现如下主要菜单:文件(新建,打开文件,保存,另存为,退出)工具(编译,运行)帮助(关于javaedit)功能要求:1编译和运行结果要能显示在图形界面的组件中:2如果文件没有保存,关闭窗口需要提示保存:3如果文件没有命名,保存需要提示保存:4编译没有保存的java文件,需要先保存再编译:5编写代码获得编译和运行结果,不能直接用console窗口显示.(代码后给下注释) 解决方案 如果你需要简单的,自己可以动手做一下,界面使

C++程序设计:原理与实践(进阶篇)15.6 实例:一个简单的文本编辑器

15.6 实例:一个简单的文本编辑器 列表最重要的性质就是可以在不移动元素的情况下对其进行插入或删除操作.下面我们通过一个例子来说明这一点.考虑应该如何在文本编辑器中表示一个文本文件中的字符.所选用的表示方式应当能够使对文本文件进行的操作简单而高效. 那么具体会涉及哪些操作呢?假设文件能存储在计算机的内存中.也就是说,我们可以选择任何一种适合的表示方式,当需要保存到文件中时,只要把它转换成一个字节流就可以了.相应地,我们也可以把一个文件中的字符转成字节流,从而把它读入内存中.这说明我们只需要选择

制作你的第一个 Atom 文本编辑器插件

序言 这篇教程将会教你怎么制作你的第一个 Atom 文本编辑器的插件.我们将会制作一个山寨版的 Sourcerer,这是一个从 StackOverflow 查询并使用代码片段的插件.到教程结束时,你将会制作好一个将编程问题(用英语描述的)转换成获取自 StackOverflow 的代码片段的插件,像这样: 教程须知 Atom 文本编辑器是用 web 技术创造出来的.我们将完全使用 JavaScript 的 EcmaScript 6 规范来制作插件.你需要熟悉以下内容: 使用命令行 JavaScr

open-写一个文本编辑器的问题

问题描述 写一个文本编辑器的问题 自己在写一个文本编辑器,读取文件的函数open()和打印view()存在问题,但是找不到错误啊/*文本编辑器editor源代码*///预处理开始#include#include#include#includetypedef struct node{ char ch; struct node *next;} node; typedef struct Hnode{ node next; struct Hnode * next1;} Hnode;void open(H