소스 검색

Move POC to its own unit.

Martijn Laan 1 년 전
부모
커밋
e2dfa894c2
5개의 변경된 파일121개의 추가작업 그리고 106개의 파일을 삭제
  1. 6 5
      Projects/CompFileListWin.pas
  2. 6 99
      Projects/CompWizard.pas
  3. 105 0
      Projects/CompWizardFilesHelper.pas
  4. 3 2
      Projects/Compil32.dpr
  5. 1 0
      Projects/Compil32.dproj

+ 6 - 5
Projects/CompFileListWin.pas

@@ -5,7 +5,7 @@ interface
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics,
   Controls, Forms, Dialogs,ExtCtrls, StdCtrls,
-  NewStaticText, DropListBox, CompWizard;
+  NewStaticText, DropListBox, CompWizard, CompWizardFilesHelper;
 
 type
   TCFLWForm = class(TForm)
@@ -30,8 +30,9 @@ type
     procedure FormDestroy(Sender: TObject);
   private
     FWizardFiles: TList; //todo: remove?
-    FAppFilesPageHelper: TWizardFormAppFilesPageHelper;
+    FFilesHelper: TWizardFormFilesHelper;
     function GetText: String;
+    //todo remove!!!
     procedure AddWizardFile(const Source: String;
       const RecurseSubDirs, CreateAllSubDirs: Boolean);
     procedure UpdateWizardFilesButtons;
@@ -166,15 +167,15 @@ end;
 
 procedure TCFLWForm.FormCreate(Sender: TObject);
 begin
-  FAppFilesPageHelper := TWizardFormAppFilesPageHelper.Create(Handle, FWizardFiles,
+  FFilesHelper := TWizardFormFilesHelper.Create(Handle, FWizardFiles,
     NotCreateAppDirCheck, AppFilesAddButton, AppFilesListBox);
 
-  FWizardFiles := FAppFilesPageHelper.WizardFiles;
+  FWizardFiles := FFilesHelper.WizardFiles;
 end;
 
 procedure TCFLWForm.FormDestroy(Sender: TObject);
 begin
-  FAppFilesPageHelper.Free;
+  FFilesHelper.Free;
 end;
 
 procedure TCFLWForm.UpdateWizardFilesButtons;

+ 6 - 99
Projects/CompWizard.pas

@@ -14,9 +14,9 @@ interface
 {$I VERSION.INC}
 
 uses
-  Windows, Forms, Classes, Graphics, StdCtrls, ExtCtrls, Controls, Dialogs,
+  Windows, Forms, Classes, Graphics, StdCtrls, ExtCtrls, Controls, Dialogs, pngimage,
   UIStateForm, NewStaticText, DropListBox, NewCheckListBox, NewNotebook,
-  pngimage;
+  CompWizardFilesHelper;
 
 type
   TWizardPage = (wpWelcome, wpAppInfo, wpAppDir, wpAppFiles, wpAppAssoc, wpAppIcons,
@@ -25,23 +25,6 @@ type
 
   TWizardFormResult = (wrNone, wrEmpty, wrComplete);
 
-  TWizardFormAppFilesPageHelper = class
-    private
-      FWizardFiles: TList;
-      FHandle: HWND;
-      FNotCreateAppDirCheck: TCheckBox;
-      FAppFilesListBox: TDropListBox;
-      procedure AddWizardFile(const Source: String; const RecurseSubDirs, CreateAllSubDirs: Boolean);
-      procedure UpdateWizardFiles;
-      procedure AddButtonClick(Sender: TObject);
-    public
-      property WizardFiles: TList read FWizardFiles;
-      constructor Create(const Handle: HWND; const WizardFiles: TList;
-        const NotCreateAppDirCheck: TCheckBox; const AppFilesAddButton: TButton;
-        const AppFilesListBox: TDropListBox);
-      destructor Destroy;
-  end;
-
   TWizardForm = class(TUIStateForm)
     CancelButton: TButton;
     NextButton: TButton;
@@ -179,7 +162,7 @@ type
     FWizardName: String;
     FWizardFiles: TList; //todo: remove?
     FLanguages: TStringList;
-    FAppFilesPageHelper: TWizardFormAppFilesPageHelper;
+    FFilesHelper: TWizardFormFilesHelper;
     FResult: TWizardFormResult;
     FResultScript: String;
     function FixLabel(const S: String): String;
@@ -312,10 +295,10 @@ begin
   FLanguages.Sorted := False;
   FLanguages.Insert(0, LanguagesDefaultIsl);
 
-  FAppFilesPageHelper := TWizardFormAppFilesPageHelper.Create(Handle, FWizardFiles,
+  FFilesHelper := TWizardFormFilesHelper.Create(Handle, FWizardFiles,
     NotCreateAppDirCheck, AppFilesAddButton, AppFilesListBox);
 
-  FWizardFiles := FAppFilesPageHelper.WizardFiles;
+  FWizardFiles := FFilesHelper.WizardFiles;
 
   InitFormFont(Self);
   if Font.Name = 'Segoe UI' then begin
@@ -420,7 +403,7 @@ end;
 
 procedure TWizardForm.FormDestroy(Sender: TObject);
 begin
-  FAppFilesPageHelper.Free;
+  FFilesHelper.Free;
   FLanguages.Free;
 end;
 
@@ -1175,80 +1158,4 @@ begin
   FResultScript := FixLabel(SWizardScriptHeader) + SNewLine2 + Script;
 end;
 
-{ --- }
-
-{ TWizardFormAppFilesPageHelper }
-
-constructor TWizardFormAppFilesPageHelper.Create(const Handle: HWND;
-  const WizardFiles: TList; const NotCreateAppDirCheck: TCheckBox;
-  const AppFilesAddButton: TButton; const AppFilesListBox: TDropListBox);
-begin
-  inherited Create;
-
-  FWizardFiles := TList.Create;
-
-  FHandle := Handle;
-  FNotCreateAppDirCheck := NotCreateAppDirCheck;
-  FAppFilesListBox := AppFilesListBox;
-
-  AppFilesAddButton.OnClick := AddButtonClick;
-end;
-
-destructor TWizardFormAppFilesPageHelper.Destroy;
-begin
-  for var I := 0 to FWizardFiles.Count-1 do
-    Dispose(FWizardFiles[i]);
-  FWizardFiles.Free;
-end;
-
-procedure TWizardFormAppFilesPageHelper.AddWizardFile(const Source: String; const RecurseSubDirs, CreateAllSubDirs: Boolean);
-var
-  WizardFile: PWizardFile;
-begin
-  New(WizardFile);
-  WizardFile.Source := Source;
-  WizardFile.RecurseSubDirs := RecurseSubDirs;
-  WizardFile.CreateAllSubDirs := CreateAllSubDirs;
-  WizardFile.DestRootDirIsConstant := True;
-  if not FNotCreateAppDirCheck.Checked then
-    WizardFile.DestRootDir := '{app}'
-  else
-    WizardFile.DestRootDir := '{win}';
-  WizardFile.DestSubDir := '';
-  FWizardFiles.Add(WizardFile);
-end;
-
-procedure TWizardFormAppFilesPageHelper.UpdateWizardFiles;
-var
-  WizardFile: PWizardFile;
-  I: Integer;
-begin
-  FAppFilesListBox.Items.BeginUpdate;
-  FAppFilesListBox.Items.Clear;
-  for I := 0 to FWizardFiles.Count-1 do begin
-    WizardFile := FWizardFiles[i];
-    FAppFilesListBox.Items.Add(WizardFile.Source);
-  end;
-  FAppFilesListBox.Items.EndUpdate;
-  UpdateHorizontalExtent(FAppFilesListBox);
-end;
-
-procedure TWizardFormAppFilesPageHelper.AddButtonClick(Sender: TObject);
-var
-  FileList: TStringList;
-  I: Integer;
-begin
-  FileList := TStringList.Create;
-  try
-    if NewGetOpenFileNameMulti('', FileList, '', SWizardAllFilesFilter, '', FHandle) then begin
-      FileList.Sort;
-      for I := 0 to FileList.Count-1 do
-        AddWizardFile(FileList[I], False, False);
-      UpdateWizardFiles;
-    end;
-  finally
-    FileList.Free;
-  end
-end;
-
 end.

+ 105 - 0
Projects/CompWizardFilesHelper.pas

@@ -0,0 +1,105 @@
+unit CompWizardFilesHelper;
+
+interface
+
+uses
+  Windows, Classes, StdCtrls,
+  DropListBox;
+
+type
+  TWizardFormFilesHelper = class
+    private
+      FWizardFiles: TList;
+      FHandle: HWND;
+      FNotCreateAppDirCheck: TCheckBox;
+      FAppFilesListBox: TDropListBox;
+      procedure AddWizardFile(const Source: String; const RecurseSubDirs, CreateAllSubDirs: Boolean);
+      procedure UpdateWizardFiles;
+      procedure AddButtonClick(Sender: TObject);
+    public
+      property WizardFiles: TList read FWizardFiles;
+      constructor Create(const Handle: HWND; const WizardFiles: TList;
+        const NotCreateAppDirCheck: TCheckBox; const AppFilesAddButton: TButton;
+        const AppFilesListBox: TDropListBox);
+      destructor Destroy;
+  end;
+
+implementation
+
+uses
+  CmnFunc, BrowseFunc,
+  CompMsgs, CompWizardFile;
+
+constructor TWizardFormFilesHelper.Create(const Handle: HWND;
+  const WizardFiles: TList; const NotCreateAppDirCheck: TCheckBox;
+  const AppFilesAddButton: TButton; const AppFilesListBox: TDropListBox);
+begin
+  inherited Create;
+
+  FWizardFiles := TList.Create;
+
+  FHandle := Handle;
+  FNotCreateAppDirCheck := NotCreateAppDirCheck;
+  FAppFilesListBox := AppFilesListBox;
+
+  AppFilesAddButton.OnClick := AddButtonClick;
+end;
+
+destructor TWizardFormFilesHelper.Destroy;
+begin
+  for var I := 0 to FWizardFiles.Count-1 do
+    Dispose(FWizardFiles[i]);
+  FWizardFiles.Free;
+end;
+
+procedure TWizardFormFilesHelper.AddWizardFile(const Source: String; const RecurseSubDirs, CreateAllSubDirs: Boolean);
+var
+  WizardFile: PWizardFile;
+begin
+  New(WizardFile);
+  WizardFile.Source := Source;
+  WizardFile.RecurseSubDirs := RecurseSubDirs;
+  WizardFile.CreateAllSubDirs := CreateAllSubDirs;
+  WizardFile.DestRootDirIsConstant := True;
+  if not FNotCreateAppDirCheck.Checked then
+    WizardFile.DestRootDir := '{app}'
+  else
+    WizardFile.DestRootDir := '{win}';
+  WizardFile.DestSubDir := '';
+  FWizardFiles.Add(WizardFile);
+end;
+
+procedure TWizardFormFilesHelper.UpdateWizardFiles;
+var
+  WizardFile: PWizardFile;
+  I: Integer;
+begin
+  FAppFilesListBox.Items.BeginUpdate;
+  FAppFilesListBox.Items.Clear;
+  for I := 0 to FWizardFiles.Count-1 do begin
+    WizardFile := FWizardFiles[i];
+    FAppFilesListBox.Items.Add(WizardFile.Source);
+  end;
+  FAppFilesListBox.Items.EndUpdate;
+  UpdateHorizontalExtent(FAppFilesListBox);
+end;
+
+procedure TWizardFormFilesHelper.AddButtonClick(Sender: TObject);
+var
+  FileList: TStringList;
+  I: Integer;
+begin
+  FileList := TStringList.Create;
+  try
+    if NewGetOpenFileNameMulti('', FileList, '', SWizardAllFilesFilter, '', FHandle) then begin
+      FileList.Sort;
+      for I := 0 to FileList.Count-1 do
+        AddWizardFile(FileList[I], False, False);
+      UpdateWizardFiles;
+    end;
+  finally
+    FileList.Free;
+  end
+end;
+
+end.

+ 3 - 2
Projects/Compil32.dpr

@@ -38,9 +38,10 @@ uses
   ModernColors in '..\Components\ModernColors.pas',
   CompMessageBoxDesigner in 'CompMessageBoxDesigner.pas' {MBDForm},
   CompScintEdit in 'CompScintEdit.pas',
-  CompFileListWin in 'CompFileListWin.pas' {CFLWForm};
+  CompFileListWin in 'CompFileListWin.pas' {CFLWForm},
+  CompWizardFilesHelper in 'CompWizardFilesHelper.pas';
 
-{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED} 
+{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}
 {$SETPEOSVERSION 6.0}
 {$SETPESUBSYSVERSION 6.0}
 {$WEAKLINKRTTI ON}

+ 1 - 0
Projects/Compil32.dproj

@@ -118,6 +118,7 @@
             <Form>CFLWForm</Form>
             <FormType>dfm</FormType>
         </DCCReference>
+        <DCCReference Include="CompWizardFilesHelper.pas"/>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>