| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1348 人关注过本帖
标题:文本编辑器……
只看楼主 加入收藏
dpa123
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-11-4
收藏
 问题点数:0 回复次数:3 
文本编辑器……
不知道从何处入手,各位能给点资料或者指导一下吗????
搜索更多相关主题的帖子: 文本编辑 
2008-11-21 12:57
dpa123
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-11-4
收藏
得分:0 
怎么没有人吗
2008-11-21 13:12
ruanjian2110
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游民
威 望:7
帖 子:486
专家分:50
注 册:2008-5-25
收藏
得分:0 
你是想做个记事本类型的吗?使用richedit很方便的。。。

武汉信控科技有限公司:http://www. 超越技术,本身就是一个美好技术。。。。。。
2008-11-21 15:38
柳约清愁
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-10-18
收藏
得分:0 
我也是初学,前几天才做了一个,有些不懂的问题,也是请教了这里的高手的,我把我做的步骤贴给你,你试试哦.
记事本的做法:
    1、打开delphi,保存一个名为editfm的工程文件和textedit的文件。然后把form的caption属性改为自己喜欢的名字,我改的是“晨烟记事本”,name改为editform。
    2、添加一个mainmenu和popupmenu的控件,分别添加主菜单文件(mifile),编辑(miedit),格式(miformat),帮助(mohelp),在其下拉菜单里添加新建(minew)//{也可以用系统默认的N1、N2等,只是等会设置一些连接的时候会比较麻烦}打开(miopen)、保存(misave)、另存为(misaveas)、打印(miprint)、打印设置(miprintsetup)、退出(miexit),撤消(miundo),重做,剪切,复制,粘贴,删除,全选,查找,替换//{这几个代码比较简单,所以小小的偷了下懒,用了系统自带的name},居左(mileft),居中(micenter),居右(miright)这几个的miautowrap属性改为true,然后继续添加字体,字体变大,字体变小,自动换行,字数,背景,关于(miabout),帮助主题。然后在popupmenu设置下拉菜单,一般为撤消,剪切等。
   3、添加richedit控件,属性name改为editor,align改为alclient,hidescrollbars改为false,scrollbars改为$$vertical,并在font中设置自己喜欢的字体颜色大小等。
   4、在dialogs中,添加打印,保存,字体,颜色,打印,找印设置,查找,替换控件,把name分别改为dgopen,dgsave,dgfont,dgprint,dgprintsetup,dgfind,dgreplace。
  5、在接口部分,添加一个声明
//
    const
  defaulfgilename='晨烟记事本';
  在private下面添加私有成员:
//
      pathname:string;
    hasundo:boolean;
 添加声明:
  procedure CheckTextModified;
并在代码部分实现:
procedure TEditForm.CheckTextModified;
begin
    if Editor.Modified then  //修改过
    begin
        case Application.MessageBox('文件没有保存!要保存吗?',
        '提示',MB_YESNO+MB_ICONQUESTION) of
            IDYES:  //保存文件
                    MISaveClick(Self);   //保存文件
        end;
    end;
end;

  6、单击退出,在代码框里输入close;
     单击新建,在代码框中输入
//       CheckTextModified;  //检测是否做了修改
    Editor.Lines.Clear;  //清除所有文本
    Editor.Modified:=False;  //把Modified属性设为False
    editform.Caption:='晨烟记事本'+'--'+'新文档';
  7、单击打开,在代码框中输入//DgOpen.Execute;
     单击打开控件,在属性filter弹出的对话框filter editor,在filter name和filter输入:
      文本文件(*.txt)      *.txt
      RTF文件(*.rtf)       *.rtf
      所有文件             *.*
   8、单击保存,在属性filter弹出的对话框filter editor,在filter name和filter输入:
      文本文件(*.txt)      *.txt
      RTF文件(*.rtf)       *.rtf
      所有文件             *.*
   在属性options的ofnoreadonlyretu改为true,ofenablesizing改为false。
    在代码框中输入以下代码:
//begin
  if PathName = '晨烟记事本' then  //第一次保存
    MISaveAsClick(Sender)
  else
  begin
    Editor.Lines.SaveToFile(PathName); //已经保存过
    Editor.Modified := False;
    StatusBar1.Panels[1].Text:='';
  end;
end;
   9、单击另存为,输入代码:
begin
  DgSave.FileName := '新文档';
  if DgSave.Execute then
  begin
    PathName := DgSave.FileName;  //获取路径名
    if DgSave.FilterIndex=1 then  //txt文件
    begin
        Editor.PlainText:=True;
        PathName:=PathName+'.txt';
    end;
    if DgSave.FilterIndex=2 then  //rtf文件
    begin
        Editor.PlainText:=False;
        PathName:=PathName+'.rtf';
    end;
    if DgSave.FilterIndex=3 then  //所有文件
    begin
        Editor.PlainText:=False;
    end;
    Editor.Lines.SaveToFile(PathName); //保存文件
    Editor.Modified := False;  //设置Editor为未改变
    Caption := ExtractFileName(PathName);  //取出文件名,设为窗口标题
    StatusBar1.Panels[1].Text:='';
  end;
end;
  10、单击打印代码,输入
//    if DgPrint.Execute then
    Editor.Print(PathName);
  打印设置代码: DgPrinterSetup.Execute;
  剪切代码: Editor.CutToClipboard;
复制代码:Editor.CopyToClipboard;
粘贴代码:Editor.PasteFromClipboard;
刪除:Editor.ClearSelection;
全选:Editor.SelectAll;
查找:DgFind.Execute;
替换:DgReplace.Execute;
撤消:   if not HasUndo then
  begin
    Editor.Undo;
    HasUndo:=True;
重做:    if HasUndo then
  begin
    Editor.Undo;
    HasUndo:=False;
  end;
居左:   MILeft.Checked := True;
  MICenter.Checked := False;
  MIRight.Checked := False;
  Editor.Paragraph.Alignment := taLeftJustify;
居中:  MILeft.Checked := False;
  MICenter.Checked := True;
  MIRight.Checked := False;
  Editor.Paragraph.Alignment := taCenter;
居右:  MILeft.Checked := False;
  MICenter.Checked := False;
  MIRight.Checked := True;
  Editor.Paragraph.Alignment := taRightJustify ;
字体:   if dgfont.Execute then
editForm.editor.Font:=dgfont.Font;
字体变大:with editor.Font do size:=size+1;
字体变小:with editor.Font do size:=size-1;
背景: if colordialog1.Execute then
editForm.editor.Color:=colordialog1.color;
字数:var
s:string;
i,e,c:integer;

begin
s:=editor.lines.text;
e:=0;
c:=0;
for i:=1 to length(s) do
begin
if (ord (s[i])>=33) and (ord(s[i])<=126) then
begin

inc(e);
StatusBar1.Panels[2].Text:='字母个数:'+inttostr(e);
end
else
if (ord(s[i])>=127) then
begin
inc(c);
 11、添加win32里的控件statusbar,单击右键,添加四个栏目,0的那一个,我没搞好,直接把width改为0了。第一个栏目我放的是时间,第二个第三个是数字统计,第四个就随便放点什么小东东了。

  12、自动换行:属性checked改为true
  with Editor do
  begin
    WordWrap := not WordWrap; //让WordWrap取反
    if WordWrap then  //自动换行
      ScrollBars := ssVertical  //Editor只有竖直滚动条
    else
      ScrollBars := ssBoth;
    N1.Checked := WordWrap;
  end;
  13、字数统计
var
s:string;
i,e,c:integer;

begin
s:=editor.lines.text;
e:=0;
c:=0;
for i:=1 to length(s) do
begin
if (ord (s[i])>=33) and (ord(s[i])<=126) then
begin

inc(e);
StatusBar1.Panels[2].Text:='字母个数:'+inttostr(e);
end
else
if (ord(s[i])>=127) then
begin
inc(c);
StatusBar1.Panels[3].Text:='汉字个数:'+inttostr(c div 2);
end;
end;
end;
  14、单击控件查找,在属性events的onfind双击,添加代码:
var
  FoundPos,StartPos,FindLen:integer;
  st:TSearchTypes;
begin
    if not (frDown in DgFind.Options) then
    begin
        DgFind.CloseDialog;
        ShowMessage('请向下查找。');
        exit;
    end;
    StartPos:=Editor.SelStart+Editor.SelLength; //StartPos代表初始查找位置
    FindLen:=Length(Editor.Text)-StartPos;  //FindLen代表从StartPos开始到文件末尾的长度
    st:=[];
    if frMatchCase in DgFind.Options then //匹配大小写
      st:=st+[stMatchCase];
    if frWholeWord in DgFind.Options then  //匹配整个词
      st:=st+[stWholeWord];
    FoundPos:=Editor.FindText(DgFind.FindText,StartPos,FindLen,st);  //开始查找
    DgFind.CloseDialog;
    if FoundPos <> -1 then   //找到
    begin
        Editor.SelStart:=FoundPos;
        Editor.SelLength:=Length(DgFind.FindText);
    end
    else  //未找到
        ShowMessage('未找到 '+DgFind.FindText);
end;
  15、单击替换控件,在属性events的onreplace双击,添加如下代码:
 var
  FoundPos,StartPos,FindLen:integer;
  st:TSearchTypes;
begin
    if not (frDown in DgReplace.Options) then
    begin
        DgReplace.CloseDialog;
        ShowMessage('请向下替换。');
        exit;
    end;
    StartPos:=Editor.SelStart+Editor.SelLength; //StartPos代表初始查找位置
    FindLen:=Length(Editor.Text)-StartPos;  //FindLen代表从StartPos开始到文件末尾的长度
    st:=[];
    if frMatchCase in DgReplace.Options then //匹配大小写
      st:=st+[stMatchCase];
    if frWholeWord in DgReplace.Options then  //匹配整个词
      st:=st+[stWholeWord];
    FoundPos:=Editor.FindText(DgReplace.FindText,StartPos,FindLen,st);  //开始查找
    DgReplace.CloseDialog;  //关闭替换对话框
    if FoundPos <> -1 then   //找到
    begin
      while FoundPos <> -1 do
      begin
        Editor.SelStart:=FoundPos;
        Editor.SelLength:=Length(DgReplace.FindText);
        Editor.SelText:=DgReplace.ReplaceText;  //把文本替换掉

        if not (frReplaceAll in DgReplace.Options) then //如果不是全部替换
           break;

        StartPos:=Editor.SelStart+Length(DgReplace.ReplaceText);
        FindLen:=Length(Editor.Text)-StartPos;  //FindLen代表从StartPos开始到文件末尾的长度
        FoundPos:=Editor.FindText(DgReplace.FindText,
                                  StartPos,FindLen,st);  //继续查找
      end;
        ShowMessage('替换完毕!');
    end
    else  //未找到
        ShowMessage('未找到 '+DgReplace.FindText);

end;
  16、在system里加timer控件并双击,添加代码:
var
ADate:TDateTime;
ss:string;
Days:array[1..7] of string;
begin
  days[1]:='星期日';
  days[2]:='星期一';
  days[3]:='星期二';
  days[4]:='星期三';
  days[5]:='星期四';
  days[6]:='星期五';
  days[7]:='星期六';
  ADate:=strtodate(FormatDateTime('yyyy-mm-dd',date));
  ss:=FormatDateTime('yyyy"年"m"月"d"日"hh:nn:ss',now);
  StatusBar1.Panels[1].Text:=ss+days[DayOfWeek(ADate)];
end;

  17、添加一个toolbar的控件,我晕,写到这里,都忘了添加imagelist的控件了没有了,如果没有,这时就要添加这个控件了,单击右键,点imatelist  editor,在弹出的对话框中,找出一些相对映的图片。把toolbar的属性inages改成imagelist1。然后在toolbar上单击右键new button,在属性imagelndex中,选合适的图标,在hint中写出相关的名字,这样,鼠标经过时,就会有相应的提示。然后在events属性中,点onclick,选择和此图标相对应的事件。这里任意加多少个图标。

  18单击右键弹出菜单的选项,也是在对应的onclick中选择相对应的事件。
  19,对了,在文件的下拉菜单中,在属性shortcut中,选择合适的快捷键。
   不好意思呀,我是菜鸟,初学delphi,我也记不清有没有漏掉什么,干脆把整个代码贴出来。
  对了,还有关于,就是新建一个form,然后添加几个label的控件,写上自己想写的话,然后保存就ok了,当然,如果愿意,就加一个按钮,代码就是colse;
  然后就是帮助主题,也是新建一个form,然后添加label控件或是别的文本编辑的控件,内容自己随便添加啦,不过最好把属性改为只读。

unit editfm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, StdCtrls, ComCtrls, Menus,AboutFM,ToolWin, ExtCtrls;

type
  Teditform = class(TForm)
    MainMenu1: TMainMenu;
    mifile: TMenuItem;
    miedit: TMenuItem;
    miformat: TMenuItem;
    mihelp: TMenuItem;
    minew: TMenuItem;
    miopen: TMenuItem;
    misave: TMenuItem;
    misaveas: TMenuItem;
    miprint: TMenuItem;
    miprintsetup: TMenuItem;
    N1: TMenuItem;
    miexit: TMenuItem;
    N2: TMenuItem;
    miundo: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    mileft: TMenuItem;
    micenter: TMenuItem;
    miright: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    miabort: TMenuItem;
    N19: TMenuItem;
    PopupMenu1: TPopupMenu;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    Editor: TRichEdit;
    dgopen: TOpenDialog;
    dgsave: TSaveDialog;
    dgfont: TFontDialog;
    dgprint: TPrintDialog;
    dgPrinterSetup: TPrinterSetupDialog;
    dgFind: TFindDialog;
    dgReplace: TReplaceDialog;
    ImageList1: TImageList;
    ToolBar1: TToolBar;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    StatusBar1: TStatusBar;
    ToolButton13: TToolButton;
    ToolButton1: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    N29: TMenuItem;
    N30: TMenuItem;
    ColorDialog1: TColorDialog;
    Timer1: TTimer;
    procedure miexitClick(Sender: TObject);
    procedure minewClick(Sender: TObject);
    procedure misaveasClick(Sender: TObject);
    procedure misaveClick(Sender: TObject);
    procedure miopenClick(Sender: TObject);
    procedure miprintClick(Sender: TObject);
    procedure miprintsetupClick(Sender: TObject);
    procedure miundoClick(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure dgFindFind(Sender: TObject);
    procedure dgReplaceReplace(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure mileftClick(Sender: TObject);
    procedure micenterClick(Sender: TObject);
    procedure mirightClick(Sender: TObject);
    procedure miabortClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure N14Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure N30Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    pathname:string;
    hasundo:boolean;
  public
    { Public declarations }
  procedure CheckTextModified;

  end;

var
  editform: Teditform;
const
  defaulfgilename='晨烟记事本';

implementation



{$R *.dfm}
procedure TEditForm.CheckTextModified;
begin
    if Editor.Modified then  //修改过
    begin
        case Application.MessageBox('文件没有保存!要保存吗?',
        '提示',MB_YESNO+MB_ICONQUESTION) of
            IDYES:  //保存文件
                    MISaveClick(Self);   //保存文件
        end;
    end;
end;

procedure Teditform.miexitClick(Sender: TObject);
begin
  close;
end;

procedure Teditform.minewClick(Sender: TObject);
begin
       CheckTextModified;  //检测是否做了修改
    Editor.Lines.Clear;  //清除所有文本
    Editor.Modified:=False;  //把Modified属性设为False
    editform.Caption:='晨烟记事本'+'--'+'新文档';

end;

procedure Teditform.misaveasClick(Sender: TObject);
begin
  DgSave.FileName := '新文档';
  if DgSave.Execute then
  begin
    PathName := DgSave.FileName;  //获取路径名
    if DgSave.FilterIndex=1 then  //txt文件
    begin
        Editor.PlainText:=True;
        PathName:=PathName+'.txt';
    end;
    if DgSave.FilterIndex=2 then  //rtf文件
    begin
        Editor.PlainText:=False;
        PathName:=PathName+'.rtf';
    end;
    if DgSave.FilterIndex=3 then  //所有文件
    begin
        Editor.PlainText:=False;
    end;
    Editor.Lines.SaveToFile(PathName); //保存文件
    Editor.Modified := False;  //设置Editor为未改变
    Caption := ExtractFileName(PathName);  //取出文件名,设为窗口标题
    StatusBar1.Panels[1].Text:='';
  end;
end;

procedure Teditform.misaveClick(Sender: TObject);
begin
  if PathName = '晨烟记事本' then  //第一次保存
    MISaveAsClick(Sender)
  else
  begin
    Editor.Lines.SaveToFile(PathName); //已经保存过
    Editor.Modified := False;
    StatusBar1.Panels[1].Text:='';
  end;
end;


procedure Teditform.miopenClick(Sender: TObject);

begin
DgOpen.Execute;
end;

procedure Teditform.miprintClick(Sender: TObject);
begin
    if DgPrint.Execute then
    Editor.Print(PathName);
end;

procedure Teditform.miprintsetupClick(Sender: TObject);
begin
 DgPrinterSetup.Execute;
end;

procedure Teditform.miundoClick(Sender: TObject);
begin
   if not HasUndo then
  begin
    Editor.Undo;
    HasUndo:=True;
  end;
end;

procedure Teditform.N3Click(Sender: TObject);
begin
    if HasUndo then
  begin
    Editor.Undo;
    HasUndo:=False;
  end;
end;

procedure Teditform.N5Click(Sender: TObject);
begin
   Editor.CutToClipboard;
end;

procedure Teditform.N6Click(Sender: TObject);
begin
  Editor.CopyToClipboard;
end;

procedure Teditform.N7Click(Sender: TObject);
begin
   Editor.PasteFromClipboard;
end;

procedure Teditform.N8Click(Sender: TObject);
begin
  Editor.ClearSelection;
end;

procedure Teditform.N9Click(Sender: TObject);
begin
  Editor.SelectAll;
end;

procedure Teditform.N11Click(Sender: TObject);
begin
   DgFind.Execute;
end;

procedure Teditform.N12Click(Sender: TObject);
begin
 DgReplace.Execute;
end;

procedure Teditform.dgFindFind(Sender: TObject);
var
  FoundPos,StartPos,FindLen:integer;
  st:TSearchTypes;
begin
    if not (frDown in DgFind.Options) then
    begin
        DgFind.CloseDialog;
        ShowMessage('请向下查找。');
        exit;
    end;
    StartPos:=Editor.SelStart+Editor.SelLength; //StartPos代表初始查找位置
    FindLen:=Length(Editor.Text)-StartPos;  //FindLen代表从StartPos开始到文件末尾的长度
    st:=[];
    if frMatchCase in DgFind.Options then //匹配大小写
      st:=st+[stMatchCase];
    if frWholeWord in DgFind.Options then  //匹配整个词
      st:=st+[stWholeWord];
    FoundPos:=Editor.FindText(DgFind.FindText,StartPos,FindLen,st);  //开始查找
    DgFind.CloseDialog;
    if FoundPos <> -1 then   //找到
    begin
        Editor.SelStart:=FoundPos;
        Editor.SelLength:=Length(DgFind.FindText);
    end
    else  //未找到
        ShowMessage('未找到 '+DgFind.FindText);
end;

procedure Teditform.dgReplaceReplace(Sender: TObject);
var
  FoundPos,StartPos,FindLen:integer;
  st:TSearchTypes;
begin
    if not (frDown in DgReplace.Options) then
    begin
        DgReplace.CloseDialog;
        ShowMessage('请向下替换。');
        exit;
    end;
    StartPos:=Editor.SelStart+Editor.SelLength; //StartPos代表初始查找位置
    FindLen:=Length(Editor.Text)-StartPos;  //FindLen代表从StartPos开始到文件末尾的长度
    st:=[];
    if frMatchCase in DgReplace.Options then //匹配大小写
      st:=st+[stMatchCase];
    if frWholeWord in DgReplace.Options then  //匹配整个词
      st:=st+[stWholeWord];
    FoundPos:=Editor.FindText(DgReplace.FindText,StartPos,FindLen,st);  //开始查找
    DgReplace.CloseDialog;  //关闭替换对话框
    if FoundPos <> -1 then   //找到
    begin
      while FoundPos <> -1 do
      begin
        Editor.SelStart:=FoundPos;
        Editor.SelLength:=Length(DgReplace.FindText);
        Editor.SelText:=DgReplace.ReplaceText;  //把文本替换掉

        if not (frReplaceAll in DgReplace.Options) then //如果不是全部替换
           break;

        StartPos:=Editor.SelStart+Length(DgReplace.ReplaceText);
        FindLen:=Length(Editor.Text)-StartPos;  //FindLen代表从StartPos开始到文件末尾的长度
        FoundPos:=Editor.FindText(DgReplace.FindText,
                                  StartPos,FindLen,st);  //继续查找
      end;
        ShowMessage('替换完毕!');
    end
    else  //未找到
        ShowMessage('未找到 '+DgReplace.FindText);

end;

procedure Teditform.N17Click(Sender: TObject);
begin
  with Editor do
  begin
    WordWrap := not WordWrap; //让WordWrap取反
    if WordWrap then  //自动换行
      ScrollBars := ssVertical  //Editor只有竖直滚动条
    else
      ScrollBars := ssBoth;
    N1.Checked := WordWrap;
  end;
end;


procedure Teditform.mileftClick(Sender: TObject);
begin
   MILeft.Checked := True;
  MICenter.Checked := False;
  MIRight.Checked := False;
  Editor.Paragraph.Alignment := taLeftJustify;
end;

procedure Teditform.micenterClick(Sender: TObject);
begin
  MILeft.Checked := False;
  MICenter.Checked := True;
  MIRight.Checked := False;
  Editor.Paragraph.Alignment := taCenter;;
end;

procedure Teditform.mirightClick(Sender: TObject);
begin
  MILeft.Checked := False;
  MICenter.Checked := False;
  MIRight.Checked := True;
  Editor.Paragraph.Alignment := taRightJustify ;
end;

procedure Teditform.miabortClick(Sender: TObject);
begin
  AboutForm.ShowModal;
end;

procedure Teditform.FormCreate(Sender: TObject);
begin
   PathName := '晨烟记事本';
  HasUndo:=False;
end;

procedure Teditform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     CheckTextModified;
end;

procedure Teditform.N14Click(Sender: TObject);
begin
   if dgfont.Execute then
editForm.editor.Font:=dgfont.Font;
end;

procedure Teditform.N15Click(Sender: TObject);
begin
  with editor.Font do size:=size+1;
end;

procedure Teditform.N16Click(Sender: TObject);
begin
   with editor.Font do size:=size-1;
end;

procedure Teditform.N18Click(Sender: TObject);
var
s:string;
i,e,c:integer;

begin
s:=editor.lines.text;
e:=0;
c:=0;
for i:=1 to length(s) do
begin
if (ord (s[i])>=33) and (ord(s[i])<=126) then
begin

inc(e);
StatusBar1.Panels[2].Text:='字母个数:'+inttostr(e);
end
else
if (ord(s[i])>=127) then
begin
inc(c);
StatusBar1.Panels[3].Text:='汉字个数:'+inttostr(c div 2);
end;
end;
end;

procedure Teditform.N30Click(Sender: TObject);
begin
 if colordialog1.Execute then
editForm.editor.Color:=colordialog1.color;
end;

procedure Teditform.Timer1Timer(Sender: TObject);
var
ADate:TDateTime;
ss:string;
Days:array[1..7] of string;
begin
  days[1]:='星期日';
  days[2]:='星期一';
  days[3]:='星期二';
  days[4]:='星期三';
  days[5]:='星期四';
  days[6]:='星期五';
  days[7]:='星期六';
  ADate:=strtodate(FormatDateTime('yyyy-mm-dd',date));
  ss:=FormatDateTime('yyyy"年"m"月"d"日"hh:nn:ss',now);
  StatusBar1.Panels[1].Text:=ss+days[DayOfWeek(ADate)];
end;
end.
2008-11-22 22:09
快速回复:文本编辑器……
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032701 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved