文本编辑器——遇到了下列问题,请帮忙 (有详细的制作过程,可以一起学习) ( 积分: 100 )

  • 主题发起人 主题发起人 langdx
  • 开始时间 开始时间
L

langdx

Unregistered / Unconfirmed
GUEST, unregistred user!
简单的文本编辑器
【功能】
该程序主要功能包括:
1、能执行基本的文件操作,包括新建、打开、保存、打印一个文本文件
2、能对文本进行基本的编辑操作,包括剪切、复制、粘贴、删除、选择及查找
3、能对文本进行简单的格式化操作,包括改变文本的字体、字号、对齐方式等
4、可以在状态栏显示提示信息及当前光标位置。
【制作】
1、向窗体Form1添加组件:在Win32页→RichEdit,StatusBar
在Additional页→ActionManger
设置RichEdit的属性:
1、Align→ alClient
2、点击Lines 中的“…”,打开“String List Edit”,删除内容“RichEdit1”
设置StatusBar的属性:
1、在SimpIeText属性框中键入“末命名文件.txt”
设置ActionManger组件:
1、双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框→单击Action页,再在“New Action(Ins)”下拉箭头(或在Actions框内右击选择“New Action”),然后单击NewAction。
2、当确保NoCategory被选择,单击Action l,在ObjectInspector中,设置下列属性:
(1)在Caption(标题)属性后,键入“新建(&N)”
(2)在Category(类别)属性后,键入“文件”
(3)在Hint(提示)属性后,键入“创建一个新文件”
(4)在ImageIndex(图像索引)后,键入“6”,
(5)在Name(名称)属性后,键入FileNew
(6)在Shortcut(快捷键)属性后,选择Ctrl+N
类似的方法:
(1)在Caption属性后,键入“保存(&S)”
(2)在Category属性后,选择“文件”类别
(3)在Hint属性后,键入“保存文件”
(4)在ImageIndex属性后,键入8
(5)在Name属性后,键入FileNew
(6)在ShodCut属性后,选择Ctrl+S

(1)在Caption属性后,键入“索引(&I)”
(2)在Category属性后,选择“帮助”类别
(3)在Hint属性后,键入“显示帮助”
(4)在Name属性后,键入HelpIndex
(5)在ShodCut属性后,选择F1

(1)在Caption属性后,键入“关于(&A)”
(2)在Category属性后,选择“帮助”
(3)在Hint属性后,键入“显示关于程序信息的内容”
(4)在Name属性后,键入HelpAbout

Delphi提供了许多标准指令,可将这些指令添加到Editing Form1.ActionManager1中,减少编写常用操作指令代码的时间。
1、双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框→单击Action页,再在“New Action(Ins)”下拉箭头(或在Actions框内右击选择“New Standard Action”),然后单击New Standard Action(或在Actions框内右击选择“New Standard Action”)。
2、在‘Standard Action Class’对话框中,按下Ctrl键,在Edit类别下选择TEditCut、TeditCopy、Teditpaste、TEditSelectAll、TEditSelectAll,在File类别下选择TFileOpen、TFileSaveAs和TfileExit,在Help类别下选择ThelpContents。单击OK后,将选择的标准指令添加到相应的类别下,且Delphi自动为这些标准指令添加相应的属性。

菜单Category 指令Caption 显示在工具条上 说明Hint Name ImageIndex 快捷键Shortcut
文件 新建 是 创建一个新文件 FileName 6 Ctrl+N
文件 打开 是 打开一个现存文件 FileOpen1 7 Ctrl+O
文件 保存 是 保存文件 Action1 8 Ctrl+S
文件 另存为 否 另存文件 FileSaveAs1 30 F12
文件 退出 是 退出程序 FileExit1 43 (None)
编辑 剪切 是 剪切当前选择的文本到剪贴板上 EditCut1 0 Ctrl+X
编辑 复制 是 复制当前选择的文本到剪贴板上 EditCopy1 1 Ctrl+C
编辑 粘贴 是 粘贴剪贴板上的文本 EditPaste1 2 Ctrl+V
编辑 全选 否 EditSelectAll1 -1 Ctrl+A
编辑 删除 否 EditSelectAll1 5 Del
帮助 索引 否 显示帮助索引 Action2 -1 F1
帮助 内容 否 显示帮助内容 Help Contents 40 (None)
帮助 关于 否 显示关于程序信息的内容 HelpAbout -1 (None)

添加图像到图像列表中
先添加图像到ImageList组件中。因每一个图像都有—个索引值,且ActionMager组件中的每一个指令都有一个ImageIndex(图像索引)。通过将ActionManger组件的Image属性指定为ImageList1,便可指令拥有相应的图像。
打开C:/Program Files/Borland/Delphi7/Source/Vcl/ActnRes.pas文件,即打开StandardsActions窗口,复制ImageList1到编辑的Form1窗体上。设置ImageList1中Image与ActionMager中ImageIndex值,使得相对应。
选择ActionMager组件中 “all Actions”中的Images属性为ImageList1。即可在Actions:栏中看到效果。
为窗体添加一个菜单条和工具条
1、在窗体上添加ActionMainMenuBar组件(在Additional页上),双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框,拖动Action类(文件、编辑、帮助)到窗体的菜单条上。注意它们的顺序,如果不正确,可通过拖动以改变其位置
2、在窗体上添加ActionToolBar组件(在Additional页上),双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框,拖动Action(新建、打开、复制等)到窗体的菜单条上。
注意:①如果拖动了错误的命令到工具条上,可以将它拖离工具条以删除它。另外,在ObjectTreeview面板中,选中它,按Dde键以删除它。
②如果需要改变一个按钮或菜单项的位置、只需要将它拖动到合适的地方然后放开鼠标即可。
3、工具条上的按钮带有标题文字,去掉标题文字:双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框,选择ToolBars页,在底部的Caption Option下拉框中,选择None,单击OK即可。
主菜单上的快捷键指定的不正确, 修正的方法是在Object TreeView面板中,依次选择代表主菜单项的条目,然后在0bject Inspector中, 设置Caption属性为正确值即可.例如,对于“文件”主菜单,需要修正其caption属性为“文件(&F)”。
编写事件处理代码
1、为“新建”命令编写事件处理代码:
①首先在{Public declarations}后键入:
FileName:String; //声明一个用于保存文件名称全局变量
②按F12键,切换到主窗体中,双击ActionManager组件,选择“文件”类别下的“新建”指令。双击“新建”进入代码编辑器,键入下列代码:
RichEdit1.Clear; //清空文本编辑区域
FileName:='未命名的文件.txt'; //设置文件名为未命名文件
StatusBar1.Panels[0].Text:=FileName; //在状态条上显示文件名
2、为“打开”命令编写事件处理代码:
①双击ActionManager组件,选择“文件”类别下的“打开”指令。在Object Inspector中,Dialog属性→展开该属性,选中Filter→单击“…”,进入Filter Editor
② Filter Name Filter
文本文件 *.txt
说有文件 *.*
问题:
[Error] Unit1.pas(37): Identifier redeclared: 'FileName'
[Error] Unit1.pas(32): Unsatisfied forward or external declaration: 'TForm1.FileOpen1BeforeExecute'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

程序代码如下:错误在哪里呢,请帮忙!!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPStyleActnCtrls, ActnList, ActnMan, ComCtrls, StdCtrls, ImgList,
StdActns, ToolWin, ActnCtrls, ActnMenus;

type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
StatusBar1: TStatusBar;
ActionManager1: TActionManager;
FileName: TAction;
Action1: TAction;
EditCut1: TEditCut;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste;
EditSelectAll1: TEditSelectAll;
EditDelete1: TEditDelete;
FileOpen1: TFileOpen;
FileSaveAs1: TFileSaveAs;
FileExit1: TFileExit;
Action2: TAction;
HelpAbout: TAction;
HelpContents1: THelpContents;
ActionMainMenuBar1: TActionMainMenuBar;
ActionToolBar1: TActionToolBar;
ImageList1: TImageList;
procedure FileNameExecute(Sender: TObject);
procedure FileOpen1BeforeExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
FileName: String; //声明一个用于保存文件名称全局变量
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FileNameExecute(Sender: TObject);
begin
RichEdit1.Clear; //清空文本编辑区域
FileName:='未命名的文件.txt'; //设置文件名为未命名文件
StatusBar1.Panels[0].Text:=FileName; //在状态条上显示文件名
end;
end.


 
简单的文本编辑器
【功能】
该程序主要功能包括:
1、能执行基本的文件操作,包括新建、打开、保存、打印一个文本文件
2、能对文本进行基本的编辑操作,包括剪切、复制、粘贴、删除、选择及查找
3、能对文本进行简单的格式化操作,包括改变文本的字体、字号、对齐方式等
4、可以在状态栏显示提示信息及当前光标位置。
【制作】
1、向窗体Form1添加组件:在Win32页→RichEdit,StatusBar
在Additional页→ActionManger
设置RichEdit的属性:
1、Align→ alClient
2、点击Lines 中的“…”,打开“String List Edit”,删除内容“RichEdit1”
设置StatusBar的属性:
1、在SimpIeText属性框中键入“末命名文件.txt”
设置ActionManger组件:
1、双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框→单击Action页,再在“New Action(Ins)”下拉箭头(或在Actions框内右击选择“New Action”),然后单击NewAction。
2、当确保NoCategory被选择,单击Action l,在ObjectInspector中,设置下列属性:
(1)在Caption(标题)属性后,键入“新建(&N)”
(2)在Category(类别)属性后,键入“文件”
(3)在Hint(提示)属性后,键入“创建一个新文件”
(4)在ImageIndex(图像索引)后,键入“6”,
(5)在Name(名称)属性后,键入FileNew
(6)在Shortcut(快捷键)属性后,选择Ctrl+N
类似的方法:
(1)在Caption属性后,键入“保存(&S)”
(2)在Category属性后,选择“文件”类别
(3)在Hint属性后,键入“保存文件”
(4)在ImageIndex属性后,键入8
(5)在Name属性后,键入FileNew
(6)在ShodCut属性后,选择Ctrl+S

(1)在Caption属性后,键入“索引(&I)”
(2)在Category属性后,选择“帮助”类别
(3)在Hint属性后,键入“显示帮助”
(4)在Name属性后,键入HelpIndex
(5)在ShodCut属性后,选择F1

(1)在Caption属性后,键入“关于(&A)”
(2)在Category属性后,选择“帮助”
(3)在Hint属性后,键入“显示关于程序信息的内容”
(4)在Name属性后,键入HelpAbout

Delphi提供了许多标准指令,可将这些指令添加到Editing Form1.ActionManager1中,减少编写常用操作指令代码的时间。
1、双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框→单击Action页,再在“New Action(Ins)”下拉箭头(或在Actions框内右击选择“New Standard Action”),然后单击New Standard Action(或在Actions框内右击选择“New Standard Action”)。
2、在‘Standard Action Class’对话框中,按下Ctrl键,在Edit类别下选择TEditCut、TeditCopy、Teditpaste、TEditSelectAll、TEditSelectAll,在File类别下选择TFileOpen、TFileSaveAs和TfileExit,在Help类别下选择ThelpContents。单击OK后,将选择的标准指令添加到相应的类别下,且Delphi自动为这些标准指令添加相应的属性。

菜单Category 指令Caption 显示在工具条上 说明Hint Name ImageIndex 快捷键Shortcut
文件 新建 是 创建一个新文件 FileName 6 Ctrl+N
文件 打开 是 打开一个现存文件 FileOpen1 7 Ctrl+O
文件 保存 是 保存文件 Action1 8 Ctrl+S
文件 另存为 否 另存文件 FileSaveAs1 30 F12
文件 退出 是 退出程序 FileExit1 43 (None)
编辑 剪切 是 剪切当前选择的文本到剪贴板上 EditCut1 0 Ctrl+X
编辑 复制 是 复制当前选择的文本到剪贴板上 EditCopy1 1 Ctrl+C
编辑 粘贴 是 粘贴剪贴板上的文本 EditPaste1 2 Ctrl+V
编辑 全选 否 EditSelectAll1 -1 Ctrl+A
编辑 删除 否 EditSelectAll1 5 Del
帮助 索引 否 显示帮助索引 Action2 -1 F1
帮助 内容 否 显示帮助内容 Help Contents 40 (None)
帮助 关于 否 显示关于程序信息的内容 HelpAbout -1 (None)

添加图像到图像列表中
先添加图像到ImageList组件中。因每一个图像都有—个索引值,且ActionMager组件中的每一个指令都有一个ImageIndex(图像索引)。通过将ActionManger组件的Image属性指定为ImageList1,便可指令拥有相应的图像。
打开C:/Program Files/Borland/Delphi7/Source/Vcl/ActnRes.pas文件,即打开StandardsActions窗口,复制ImageList1到编辑的Form1窗体上。设置ImageList1中Image与ActionMager中ImageIndex值,使得相对应。
选择ActionMager组件中 “all Actions”中的Images属性为ImageList1。即可在Actions:栏中看到效果。
为窗体添加一个菜单条和工具条
1、在窗体上添加ActionMainMenuBar组件(在Additional页上),双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框,拖动Action类(文件、编辑、帮助)到窗体的菜单条上。注意它们的顺序,如果不正确,可通过拖动以改变其位置
2、在窗体上添加ActionToolBar组件(在Additional页上),双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框,拖动Action(新建、打开、复制等)到窗体的菜单条上。
注意:①如果拖动了错误的命令到工具条上,可以将它拖离工具条以删除它。另外,在ObjectTreeview面板中,选中它,按Dde键以删除它。
②如果需要改变一个按钮或菜单项的位置、只需要将它拖动到合适的地方然后放开鼠标即可。
3、工具条上的按钮带有标题文字,去掉标题文字:双击窗体上的ActionManger组件,打开“Editing Form1.ActionManager1”对话框,选择ToolBars页,在底部的Caption Option下拉框中,选择None,单击OK即可。
主菜单上的快捷键指定的不正确, 修正的方法是在Object TreeView面板中,依次选择代表主菜单项的条目,然后在0bject Inspector中, 设置Caption属性为正确值即可.例如,对于“文件”主菜单,需要修正其caption属性为“文件(&F)”。
编写事件处理代码
1、为“新建”命令编写事件处理代码:
①首先在{Public declarations}后键入:
FileName:String; //声明一个用于保存文件名称全局变量
②按F12键,切换到主窗体中,双击ActionManager组件,选择“文件”类别下的“新建”指令。双击“新建”进入代码编辑器,键入下列代码:
RichEdit1.Clear; //清空文本编辑区域
FileName:='未命名的文件.txt'; //设置文件名为未命名文件
StatusBar1.Panels[0].Text:=FileName; //在状态条上显示文件名
2、为“打开”命令编写事件处理代码:
①双击ActionManager组件,选择“文件”类别下的“打开”指令。在Object Inspector中,Dialog属性→展开该属性,选中Filter→单击“…”,进入Filter Editor
② Filter Name Filter
文本文件 *.txt
说有文件 *.*
问题:
[Error] Unit1.pas(37): Identifier redeclared: 'FileName'
[Error] Unit1.pas(32): Unsatisfied forward or external declaration: 'TForm1.FileOpen1BeforeExecute'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

程序代码如下:错误在哪里呢,请帮忙!!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPStyleActnCtrls, ActnList, ActnMan, ComCtrls, StdCtrls, ImgList,
StdActns, ToolWin, ActnCtrls, ActnMenus;

type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
StatusBar1: TStatusBar;
ActionManager1: TActionManager;
FileName: TAction;
Action1: TAction;
EditCut1: TEditCut;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste;
EditSelectAll1: TEditSelectAll;
EditDelete1: TEditDelete;
FileOpen1: TFileOpen;
FileSaveAs1: TFileSaveAs;
FileExit1: TFileExit;
Action2: TAction;
HelpAbout: TAction;
HelpContents1: THelpContents;
ActionMainMenuBar1: TActionMainMenuBar;
ActionToolBar1: TActionToolBar;
ImageList1: TImageList;
procedure FileNameExecute(Sender: TObject);
procedure FileOpen1BeforeExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
FileName: String; //声明一个用于保存文件名称全局变量
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FileNameExecute(Sender: TObject);
begin
RichEdit1.Clear; //清空文本编辑区域
FileName:='未命名的文件.txt'; //设置文件名为未命名文件
StatusBar1.Panels[0].Text:=FileName; //在状态条上显示文件名
end;
end.


 
TForm1.FileOpen1BeforeExecute
这个方法没有实现,如果是虚方法要加 abstract;
 
将 FileName 改名

 
TO 我是一只小小鸟
将 FileName 改名后,仍旧不行,出现
[Error] Unit1.pas(32): Unsatisfied forward or external declaration: 'TForm1.FileOpen1BeforeExecute'

对了,我的问题是不是废话很多,这么没人回答压。要不,你来帮我修改一下!!
 
TForm1.FileOpen1BeforeExecute
把这个过程贴出来
 
to langdx
TForm1.FileOpen1BeforeExecute 要有实现啊,这不是抽象方法啊.

procedure FileOpen1BeforeExecute(Sender: TObject);abstract;// 将方法定义为抽象方法,这个因该不是你的本意.

==============================================================================
那就
implementation

{$R *.dfm}

procedure TForm1.FileNameExecute(Sender: TObject);
begin
RichEdit1.Clear; //清空文本编辑区域
FileName:='未命名的文件.txt'; //设置文件名为未命名文件
StatusBar1.Panels[0].Text:=FileName; //在状态条上显示文件名
end;

procedure Tform1.FileOpen1BeforeExecute(Sender: TObject);
begin
//加方法的实现部分.
end;
end.
 
下次问问题要直奔主题哦.
 
后退
顶部