首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

文本编辑器程序的多个异常!

2012-08-31 
文本编辑器程序的多个错误!!程序如下:unit untMaininterfaceusesWindows, Messages, SysUtils, Variants,

文本编辑器程序的多个错误!!
程序如下:
unit untMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, ComCtrls, AppEvnts, ImgList, ActnList,
  StdActns, ExtActns, ToolWin;

type
  TfrmMain = class(TForm)
  ActionList1: TActionList;
  MainMenu1: TMainMenu;
  PopupMenu1: TPopupMenu;
  ImageList1: TImageList;
  ApplicationEvents1: TApplicationEvents;
  StatusBar1: TStatusBar;
  File1: TMenuItem;
  Edit1: TMenuItem;
  Search1: TMenuItem;
  Window1: TMenuItem;
  Help1: TMenuItem;
  EditCut1: TEditCut;
  EditCopy1: TEditCopy;
  EditPaste1: TEditPaste;
  EditSelectAll1: TEditSelectAll;
  EditUndo1: TEditUndo;
  EditDelete1: TEditDelete;
  RichEditBold1: TRichEditBold;
  RichEditItalic1: TRichEditItalic;
  RichEditUnderline1: TRichEditUnderline;
  RichEditStrikeOut1: TRichEditStrikeOut;
  RichEditBullets1: TRichEditBullets;
  RichEditAlignLeft1: TRichEditAlignLeft;
  RichEditAlignRight1: TRichEditAlignRight;
  RichEditAlignCenter1: TRichEditAlignCenter;
  WindowClose1: TWindowClose;
  WindowCascade1: TWindowCascade;
  WindowTileHorizontal1: TWindowTileHorizontal;
  WindowTileVertical1: TWindowTileVertical;
  WindowMinimizeAll1: TWindowMinimizeAll;
  WindowArrange1: TWindowArrange;
  FileOpen1: TFileOpen;
  FileSaveAs1: TFileSaveAs;
  FilePrintSetup1: TFilePrintSetup;
  FileExit1: TFileExit;
  SearchFind1: TSearchFind;
  SearchFindNext1: TSearchFindNext;
  SearchReplace1: TSearchReplace;
  SearchFindFirst1: TSearchFindFirst;
  FileNew1: TAction;
  FileSave1: TAction;
  FilePrintDlg1: TAction;
  HelpAbout1: TAction;
  Open1: TMenuItem;
  SaveAs1: TMenuItem;
  PrintSetup1: TMenuItem;
  Exit1: TMenuItem;
  New1: TMenuItem;
  Save1: TMenuItem;
  Print1: TMenuItem;
  Cut1: TMenuItem;
  Copy1: TMenuItem;
  Delete1: TMenuItem;
  SelectAll1: TMenuItem;
  Undo1: TMenuItem;
  Delete2: TMenuItem;
  Bold1: TMenuItem;
  Italic1: TMenuItem;
  Underline1: TMenuItem;
  Strikeout1: TMenuItem;
  Bullets1: TMenuItem;
  AlignLeft1: TMenuItem;
  AlignRight1: TMenuItem;
  Center1: TMenuItem;
  Find1: TMenuItem;
  FindNext1: TMenuItem;
  Replace1: TMenuItem;
  FindFirst1: TMenuItem;
  Close1: TMenuItem;
  Cascade1: TMenuItem;
  ileHorizontally1: TMenuItem;
  ileVertically1: TMenuItem;
  MinimizeAll1: TMenuItem;
  Arrange1: TMenuItem;
  Help2: TMenuItem;
  About1: TMenuItem;
  ControlBar1: TControlBar;
  ToolBar1: TToolBar;
  ToolBar2: TToolBar;
  ToolBar3: TToolBar;
  ToolBar4: TToolBar;
  ToolButton1: TToolButton;
  ToolButton2: TToolButton;
  ToolButton3: TToolButton;
  ToolButton4: TToolButton;
  ToolButton5: TToolButton;
  ToolButton6: TToolButton;
  ToolButton7: TToolButton;
  ToolButton8: TToolButton;
  ToolButton9: TToolButton;
  ToolButton10: TToolButton;
  ToolButton11: TToolButton;
  ToolButton12: TToolButton;
  ToolButton13: TToolButton;


  ToolButton14: TToolButton;
  ToolButton15: TToolButton;
  ToolButton16: TToolButton;
  ToolButton17: TToolButton;
  ToolButton18: TToolButton;
  ToolButton19: TToolButton;
  ToolButton20: TToolButton;
  ToolButton21: TToolButton;
  ToolButton22: TToolButton;
  ToolButton23: TToolButton;
  ToolButton24: TToolButton;
  ToolButton25: TToolButton;
  ToolButton26: TToolButton;
  procedure FormCreate(Sender: TObject);
  procedure ApplicationEvents1Hint(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  procedure UpdateStatusBar;
  end;

var
  frmMain: TfrmMain;

implementation

uses untChild;

{$R *.dfm}

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  FileSaveAs1.Dialog.InitialDir:=ExtractFilePath(Application.ExeName)+'Files\';
  FileOpen1.Dialog.InitialDir:=ExtractFilePath(Application.ExeName)+'Files\';
end;

procedure TfrmMain.ApplicationEvents1Hint(Sender: TObject);
begin
  StatusBar1.Panels[0].Text:=GetLongHint(Application.Hint);
end;
procedure TfrmMain.UpdateStatusBar;
begin
  if ActiveMDIChild<>nil then begin
  StatusBar1.Panels[1].Text:=IntToStr((ActiveMDIChild as TfrmChild).RichEdit1.CaretPos.Y+1)+':'+IntToStr((ActiveMDIChild as TfrmChild).RichEdit1.Caretpos.X+1);
  if(ActiveMDIChild as TfrmChild).IsModified then
  StatusBar1.Panels[2].Text:='Modified.';
  else
  StatusBar1.Panels[2].Text:='Not Modified.';
  end;
  end;
end.



unit untChild;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TfrmChild = class(TForm)
  RichEdit1: TRichEdit;
  procedure FormActivate(Sender: TObject);
  private
  { Private declarations }
  procedure SetFileName(const Value:string);
  procedure SetIsModified(const Value:Boolean);
  procedure SetIsNamed(const Value:Boolean);
  public
  { Public declarations }
  { 属性 }
  property IsModified:Boolean read FIsModified write SetIsModified; //说明文件是否被修改
  property IsNamed:Boolean read FIsNamed write SetIsNamed; //说明文件是否被命名
  property FileName:string read FFileName write SetFileName; //读写文件名
  { 方法 }
  constructor Create(AOwner:TComponent);override;
  procedure LoadFromFile(AFileName:string);
  procedure SaveFile(AFileName:string);
  end;
var
  frmChild: TfrmChild;

implementation

{$R *.dfm}

procedure TfrmChild.SetFileName(const Value:string);
begin
  FFileName:=Value;
  Caption:=Value;
end;
procedure TfrmChild.SetIsModified(const Value:Boolean);
begin
  FIsModified:=Value;
end;
procedure TfrmChild.SetIsNamed(const Value:Boolean);
begin
  FIsNamed:=Value;
end;
constructor TfrmChild.Create (AOwner:TComponent);override;
begin
  inherited;
  IsModified:=False;
  IsNamed:=False;
  FileName:='';
  FileName:='未命名';
end;
procedure TfrmChild.LoadFromFile(AFileName:string);
begin
  RichEdit1.Lines.loadFile(AFileName);
  IsNamed:=True;
  FileName:=AFileName;
  Caption:=AFileName;
  IsModified:=False;
end;
procedure TfrmChild.SaveFile(AFileName:string);
begin
  IsNamed:=True;
  FileName:=AFileName;


  RichEdit1.Lines.SaveToFile(AFileName);
  IsModified:=False;
  Caption:=AFileName;
end;
end.

问题如下:
Build
  [Error] untChild.pas(21): Field or method identifier expected
  [Error] untChild.pas(22): Field or method identifier expected
  [Error] untChild.pas(23): Field or method identifier expected
  [Error] untChild.pas(38): Undeclared identifier: 'FFileName'
  [Error] untChild.pas(43): Undeclared identifier: 'FIsModified'
  [Error] untChild.pas(47): Undeclared identifier: 'FIsNamed'
  [Error] untChild.pas(49): Unknown directive: 'override'
  [Error] untChild.pas(59): Undeclared identifier: 'loadFile'
  [Error] untChild.pas(12): Unsatisfied forward or external declaration: 'TfrmChild.FormActivate'
  [Fatal Error] untMain.pas(134): Could not compile used unit 'untChild.pas'


[解决办法]
错误都在untChild单元。
1.
private
{ Private declarations }
FIsModified, FIsNamed: Boolean;
FFileName: string;
procedure SetFileName(const value: string);
红色的是要增加的部分。

2. 把这后面的“override;”去掉:
constructor TfrmChild.Create (AOwner:TComponent);override;

3. 把loadFile改成LoadFromFile。

4. 把鼠标放在“procedure FormActivate(Sender: TObject);”所在行,然后Ctrl+Shift+C,并实现FormActivate。它响应窗体的OnActivate事件。
[解决办法]
你看StatusBar1的SimplePanel是不是False,然后Panels是不是至少有3个Panel;不是的话你改过来。
[解决办法]
看它的Panels属性,看是否至少有3项

热点排行