unit RecycleBinFrm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ZjGridDBA, ZjGridTreeDBA, ZJGrid, StdCtrls, JimLabels, ExtCtrls, ScProjectManager, ScCopyBills, ZjDbaActns, ActnList; type TRecycleBinForm = class(TForm) pnlXmjBills: TPanel; Splitter1: TSplitter; Panel2: TPanel; pnlNodeDetailInfo: TPanel; pnlButtons: TPanel; Panel5: TPanel; JimGradLabel1: TJimGradLabel; JimGradLabel2: TJimGradLabel; zgXmjBills: TZJGrid; ztaNodeXmjBills: TZjGridTreeDBA; zgBinNode: TZJGrid; spbtnRestore: TSpeedButton; spbtnDelete: TSpeedButton; pnlNodeDrawingQuantity: TPanel; Panel7: TPanel; Splitter2: TSplitter; JimGradLabel3: TJimGradLabel; JimGradLabel4: TJimGradLabel; zgNodeXmjBills: TZJGrid; zgNodeDrawingQuantity: TZJGrid; zaBinNode: TZjGridDBA; ztaXmjBills: TZjGridTreeDBA; zaNodeDrawingQuantity: TZjGridDBA; Splitter3: TSplitter; spbtnExitBin: TSpeedButton; ActionList: TActionList; ZjGridPaste: TZjGridPaste; ZjDbaDelete: TZjDbaDelete; spbtnClear: TSpeedButton; procedure FormShow(Sender: TObject); procedure spbtnExitBinClick(Sender: TObject); procedure zgXmjBillsPaste(Sender: TObject; const ABounds: TRect; var Allow: Boolean); procedure spbtnRestoreClick(Sender: TObject); procedure spbtnDeleteClick(Sender: TObject); procedure spbtnClearClick(Sender: TObject); private FProject: TProject; procedure InitFormView; procedure SetProject(const Value: TProject); public property Project: TProject read FProject write SetProject; end; implementation uses RecycleBinDM; {$R *.dfm} { TRecycleBinForm } procedure TRecycleBinForm.InitFormView; begin pnlXmjBills.Width := 510; pnlNodeDetailInfo.Height := 200; pnlNodeDrawingQuantity.Width := 350; end; procedure TRecycleBinForm.FormShow(Sender: TObject); begin InitFormView; end; procedure TRecycleBinForm.spbtnExitBinClick(Sender: TObject); begin Close; end; procedure TRecycleBinForm.zgXmjBillsPaste(Sender: TObject; const ABounds: TRect; var Allow: Boolean); begin with TScXMLClipboard.Create(FProject.BillsData) do try PasteBillsFromFile(FProject.RecycleBinData.GetCurrentFileName, ABounds.Top - TZjGrid(Sender).FixedRowCount); finally Free; end; end; procedure TRecycleBinForm.SetProject(const Value: TProject); begin FProject := Value; FProject.RecycleBinData.RefreshBills; ztaXmjBills.IDTree := FProject.BillsData.BillsTree; zaBinNode.DataSet := FProject.RecycleBinData.cdsRecycleBin; ztaNodeXmjBills.IDTree := FProject.RecycleBinData.BillsTree; zaNodeDrawingQuantity.DataSet := FProject.RecycleBinData.cdsDrawingQuantity; end; procedure TRecycleBinForm.spbtnRestoreClick(Sender: TObject); begin zgXmjBills.PasteFromClipboard(zgXmjBills.Selection.Bounds); FProject.RecycleBinData.DeleteCurrentNode; end; procedure TRecycleBinForm.spbtnDeleteClick(Sender: TObject); begin FProject.RecycleBinData.DeleteCurrentNode; end; procedure TRecycleBinForm.spbtnClearClick(Sender: TObject); begin FProject.RecycleBinData.ClearNodes; end; end.