unit ScGatherProjFrm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ImgList, ScReportsFrm; type TGatherProjForm = class(TForm) tvGatherProject: TTreeView; il1: TImageList; procedure tvGatherProjectDblClick(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } FOwner: TScReportsForm; public { Public declarations } procedure init(AGatherProjectSL: TStringList; AOwner: TScReportsForm); end; implementation {$R *.dfm} uses ScProjectManager, ScFileArchiver, ScProgressFrm; procedure TGatherProjForm.init(AGatherProjectSL: TStringList; AOwner: TScReportsForm); var vNode: TTreeNode; i: Integer; begin FOwner := AOwner; for i := 0 to AGatherProjectSL.Count - 1 do begin vNode := tvGatherProject.Items.AddObject(nil, AGatherProjectSL[i], AGatherProjectSL.Objects[i]); vNode.ImageIndex := 0; vNode.SelectedIndex := 0; end; end; procedure TGatherProjForm.tvGatherProjectDblClick(Sender: TObject); var sFile: string; vProject: TProject; begin if tvGatherProject.Items.Count = 0 then Exit; if tvGatherProject.Selected = nil then Exit; sFile := ExtractFilePath(Application.ExeName) + string(tvGatherProject.Selected.Data); FOwner.CurGatherProjectReportName := sFile; ModalResult := mrOk; end; procedure TGatherProjForm.FormShow(Sender: TObject); begin if tvGatherProject.Items.Count > 0 then begin tvGatherProject.SetFocus; tvGatherProject.Items[0].Selected := True; end; end; end.