2、对DPR文件的改动  

program Project1;

uses
  Forms,
  Windows,
  Messages,
  IniFiles,
  SysUtils,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
const
  CM_RESTORE = WM_USER + $1000;{自定义''恢复消息''}
  MYAPPNAME = 'Project1';
var
  hExeWnd:THandle;
  str: string;
  IniFile: TIniFile;
begin
    try
            IniFile := TIniFile.Create(ExtractFilepath(Application.exename) + 'inifile.ini');
    str := IniFile.ReadString('name', 'caption', '');
    finally
       hExeWnd:=FindWindow(MYAPPNAME,pchar(str));
       if hExeWnd > 0  then
       begin
          PostMessage(hExeWnd,CM_RESTORE,0,0);
         Application.Terminate;
      end
      else
      begin
         Application.Initialize;
         Application.Title := '测试';
         Application.CreateForm(TForm1, Form1);
         Application.Run;
      end;
       end;
end.


 
  1、对主窗口程序的改动:


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,IniFiles;
 const
  CM_RESTORE = WM_USER + $1000;{自定义''恢复消息''}
  MYAPPNAME = 'Project1';

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure CreateParams(var Param:TCreateParams); Override;
    Procedure RestoreRequest(Var Message:TMessage); Message CM_RESTORE;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
  IniFile: TIniFile;
begin
  IniFile := TIniFile.Create(ExtractFilepath(Application.exename) + 'inifile.ini');

    //读入连接字符串
   str := IniFile.ReadString('name', 'caption', '');
   Form1.Caption := str;
end;

procedure TForm1.CreateParams(var Param: TCreateParams);
begin
 inherited CreateParams(Param);
  Param.WinClassName := MYAPPNAME;
end;

procedure TForm1.RestoreRequest(var Message: TMessage);
begin
 if IsIconic(Application.Handle) = True then
    Application.Restore
  else
    Application.BringToFront;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  str: string;
  IniFile: TIniFile;
begin
  IniFile := TIniFile.Create(ExtractFilepath(Application.exename) + 'inifile.ini');

    //读入连接字符串
   str := IniFile.ReadString('name', 'caption', '');
   Form1.Caption := str;
end;

end.
注:代码中红色部分是实现功能的主部分,只要添加这些代码就可以了



参考出处: http://topic.csdn.net/t/20020411/10/637733.html
posted on 2007-03-21 17:16  左左右右  阅读(976)  评论(2)    收藏  举报