我想做一个程序,在他关闭的时候把他本身的组件信息保存到注册表.我写了个REGISTRY_SAVE函数.但是把对象传入函数后调用出错了.要如何修改??
程序如下,1个MEMO,2个EDIT:
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Memo1: TMemo;
    Edit2: TEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation
        USES REGISTRY;{$R *.dfm}FUNCTION REGISTRY_SAVE(T : TOBJECT): BOOLEAN;
        VAR
                REG : TREGISTRY;
        BEGIN
                REG := TREGISTRY.Create;
                TRY
                        REG.RootKey := HKEY_CURRENT_USER;
                        IF REG.OpenKey('TEST',TRUE) THEN
                        BEGIN
                                REG.WriteString(T.ClassName,T.LINES);//这里出错!如何修改才能使T.TEXT的值在文件关闭的时候保存在注册表??
                                RESULT := TRUE;
                        END;
                FINALLY
                        REG.CloseKey;
                        REG.Free;
                END;
        END;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
        REGISTRY_SAVE(MEMO1);
        REGISTRY_SAVE(EDIT1);
        REGISTRY_SAVE(EDIT2);
end;end.

解决方案 »

  1.   

    T : TOBJECT那么T.LINES和T.TEXT是什么东西?—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  2.   

    1.当T为TMemo时:
    REG.WriteString((T as TMemo).ClassName,(T as memo).LINES);//这里出
    2.当T为TEDit时
    REG.WriteString((T as TEDit).ClassName,(T as TEdit).Text);//这里出