我在MEMO中添加了fontdialog和colordialog控件,做成了一个.exe的文件,当我用做成的下拉菜单选项来改变memo中的字体和memo的背景颜色的时候,当前可以显示的,可是,当我关闭memo,再重新打开后,它却又回到了默认的设置?为什么啊??  如果我想让memo中的字体和背景颜色设置后保存下来,该如何做呢??

解决方案 »

  1.   

    保存到ini文件, 下次启动读文件
      

  2.   

    用Ini/XML/注册表保存应用程序设置就OK了下次再读回来http://lysoft.7u7.net
      

  3.   

    你需要Ini的知识:
    http://dev.csdn.net/article/28/28087.shtm
    http://dev.csdn.net/article/28/28086.shtm
    http://dev.csdn.net/article/28/28085.shtm
      

  4.   

    给你个保存窗口设置的程序代码?
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,inifiles, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Edit1: TEdit;
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure Button2Click(Sender: TObject);
      private
        inifile:Tinifile;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
    status:integer;
    begin
     inifile:=tinifile.Create(extractfilepath(application.ExeName)+'ini_one.ini');
     status:=inifile.ReadInteger('mainform','statue',0);
     if status<>0 then
      begin
      form1.Top:=inifile.ReadInteger('mainform','top',top);
      form1.Left:=inifile.ReadInteger('mainform','left',left);
      form1.Width:=inifile.ReadInteger('mainform','Width',Width);
      form1.Height:=inifile.ReadInteger('mainform','Height',Height);
      edit1.Text:=inifile.ReadString('edit1','text','');
      button1.Visible:=inifile.ReadBool('button1','visible',button1.Visible);
      button2.Visible:=inifile.ReadBool('button2','visible',button2.Visible);
      case status of
      1:windowstate:=wsnormal;
      2:windowstate:=wsminimized;
      3:windowstate:=wsmaximized;
      end;//end case  end;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    var status:integer;
    begin
    if messagedlg('保存当前设置?',mtconfirmation,[mbyes,mbno],0)=idyes then
     begin case windowstate of
     wsNormal:begin
              status:=1;
              inifile.WriteInteger('mainform','top',top);
              inifile.WriteInteger('mainform','left',left);
              inifile.WriteInteger('mainform','width',width);
              inifile.WriteInteger('mainform','height',height);
              inifile.WriteInteger('mainform','statue',1);
              inifile.WriteString('edit1','text',Edit1.Text);
              inifile.WriteBool('button1','visible',button1.Visible);
              inifile.WriteBool('button2','visible',button2.visible);
              end;
     wsminimized:status:=2;
     wsmaximized:status:=3;
     end;//end case
     if not active then
     status:=2;
     inifile.WriteInteger('mainform','status',status);
     end;
     inifile.Free;
    end;procedure TForm1.Button2Click(Sender: TObject);
    beginend;end.
      

  5.   

    用Delphi提供的持久化机制TWriter和TRader,可以保存指定对象的属性、事件、方法。你可以定义一个TMemoryStream用TWriter把Memo要保存的属性写到内存流中。在将内存流保存成一个文件,下次装载窗口的时候在把这个文件Load到内存流中,用TRader读出。用这个方法可以报村你想要的所有信息,而且生成的文件很小。如Delphi *.dfm就是用这个机制。
      

  6.   

    用richedit,然后寸为.rtf格式,word也能打开,MEMO在98系统,有64k数据限制