123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- unit HisRestorePointFrm;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, ImgList, ZJTrees, ZJGridTrees, ZJGrid, ComCtrls, ToolWin,
- ExtCtrls, ZjGridDBA, ActnList, HisRestorePointDM, ConstTypeUnit, XPMenu;
- type
- TfrmRestorePoint = class(TForm)
- tbDeleteOne: TToolBar;
- tbRestorePoint: TToolButton;
- tbViewProject: TToolButton;
- tbDeletePoint: TToolButton;
- zgUnFixedPoint: TZJGrid;
- zaUnFixedPoint: TZjGridDBA;
- zgFixedPoint: TZJGrid;
- zaFixedPoint: TZjGridDBA;
- Splitter1: TSplitter;
- ActionList: TActionList;
- actnRestorePoint: TAction;
- actnViewPoint: TAction;
- actnDelete: TAction;
- XPMenu: TXPMenu;
- tbCloseWind: TToolButton;
- actnCloseWind: TAction;
- procedure actnDeleteExecute(Sender: TObject);
- procedure actnViewPointExecute(Sender: TObject);
- procedure actnRestorePointExecute(Sender: TObject);
- procedure actnCloseWindExecute(Sender: TObject);
- private
- FProject: TObject;
- FFileName: string;
- FProjName: string;
- FCloseProjectProc: TNotifyEvent;
- FOpenProjectProc: TOpenProjectProc;
- FDMHisResPoint: TDMHisRestorePoint;
- function OutOfRecordCount(var aFixed: Boolean): Boolean;
- procedure RestoreProject;
- procedure SetHisResPoint(const Value: TDMHisRestorePoint);
- procedure SetProject(const Value: TObject);
- property DMHisResPoint: TDMHisRestorePoint read FDMHisResPoint write SetHisResPoint;
- public
- property Project: TObject read FProject write SetProject;
- property CloseProjectProc: TNotifyEvent read FCloseProjectProc write FCloseProjectProc;
- property OpenProjectProc: TOpenProjectProc read FOpenProjectProc write FOpenProjectProc;
- end;
- implementation
- {$R *.dfm}
- uses ScProjectManager;
- { TfrmRestorePoint }
- procedure TfrmRestorePoint.SetHisResPoint(const Value: TDMHisRestorePoint);
- begin
- FDMHisResPoint := Value;
- if Assigned(FDMHisResPoint) then
- begin
- FDMHisResPoint.RefreshPoints;
- zaUnFixedPoint.DataSet := FDMHisResPoint.cdsUnFixedPoint;
- zaFixedPoint.DataSet := FDMHisResPoint.cdsFixedPoint;
- end
- else
- begin
- zaUnFixedPoint.DataSet := nil;
- zaFixedPoint.DataSet := nil;
- end;
- end;
- procedure TfrmRestorePoint.actnDeleteExecute(Sender: TObject);
- var
- bFixed: Boolean;
- begin
- if not OutOfRecordCount(bFixed) then Exit;
- FDMHisResPoint.DeleteCurPoint(bFixed);
- end;
- procedure TfrmRestorePoint.actnViewPointExecute(Sender: TObject);
- var
- strPath: string;
- bFixed: Boolean;
- begin
- if not OutOfRecordCount(bFixed) then Exit;
- strPath := FDMHisResPoint.GetCurPointPath(bFixed);
- FOpenProjectProc(strPath, 'Ô¤ÀÀ_' + TProject(FProject).ProjectName, -1, -1);
- end;
- function TfrmRestorePoint.OutOfRecordCount(var aFixed: Boolean): Boolean;
- begin
- Result := False;
- if zgUnFixedPoint.Focused then
- begin
- if (zgUnFixedPoint.CurRow >= zgUnFixedPoint.FixedRowCount) and
- (zgUnFixedPoint.CurRow < zgUnFixedPoint.FixedRowCount + zaUnFixedPoint.RecordCount) then
- begin
- aFixed := False;
- Result := True;
- end;
- end
- else if zgFixedPoint.Focused then
- begin
- if (zgFixedPoint.CurRow >= zgFixedPoint.FixedRowCount) and
- (zgFixedPoint.CurRow < zgFixedPoint.FixedRowCount + zaFixedPoint.RecordCount) then
- begin
- aFixed := True;
- Result := True;
- end;
- end;
- end;
- procedure TfrmRestorePoint.RestoreProject;
- var
- bFixed: Boolean;
- strFile: string;
- begin
- if not OutOfRecordCount(bFixed) then Exit;
- strFile := FDMHisResPoint.GetCurPointPath(bFixed);
- FCloseProjectProc(FProject);
- CopyFile(PChar(strFile), PChar(FFileName), False);
- FOpenProjectProc(FFileName, FProjName, -1, TProject(FProject).ID);
- //FDMHisResPoint.DeleteAllPoints;
- end;
- procedure TfrmRestorePoint.actnRestorePointExecute(Sender: TObject);
- begin
- Self.Hide;
- Screen.Cursor := crHourGlass;
- try
- RestoreProject;
- finally
- Screen.Cursor := crDefault;
- end;
- Self.Close;
- end;
- procedure TfrmRestorePoint.SetProject(const Value: TObject);
- begin
- FProject := Value;
- FFileName := TProject(FProject).FilePath;
- FProjName := TProject(FProject).ProjectName;
- DMHisResPoint := TProject(FProject).DMHisPoint;
- end;
- procedure TfrmRestorePoint.actnCloseWindExecute(Sender: TObject);
- begin
- Close;
- end;
- end.
|