⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainformunit.pas

📁 jvcl driver development envionment
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    ToolButton_Redo: TToolButton;
    ToolButton_Start1: TToolButton;
    ToolButton_Break1: TToolButton;
    ToolButton19: TToolButton;
    ToolButton_End1: TToolButton;
    ToolButton_Find_and_Replace: TToolButton;
    Toolbar_Find_ComboBox: TComboBox;
    ToolButton22: TToolButton;
    ToolButton23: TToolButton;
    ToolButton_Project_Explorer: TToolButton;
    ToolButton_Properties_Window: TToolButton;
    ToolButton_Toolbox: TToolButton;
    ToolButton_Task_List: TToolButton;
    ToolButton30: TToolButton;
    Load_Save_WindowUI_ComboBox: TComboBox;
    Other_Windows_PopupMenu: TPopupMenu;
    TaskList2: TMenuItem;
    VisualComponentManager2: TMenuItem;
    ObjectBrowser2: TMenuItem;
    DocumentOutline2: TMenuItem;
    Output2: TMenuItem;
    DataView2: TMenuItem;
    ScriptOutline2: TMenuItem;
    ToolBar_Debug: TToolBar;
    ToolButton_Start2: TToolButton;
    ToolButton_Start_Without_Debugging: TToolButton;
    ToolButton_Break2: TToolButton;
    ToolButton_End2: TToolButton;
    ToolButton_Detach_All_Processes: TToolButton;
    ToolButton_Restart: TToolButton;
    ToolButton_Run_To_Cursor: TToolButton;
    ToolButton_Step_Into: TToolButton;
    ToolButton36: TToolButton;
    ToolButton_Step_Over: TToolButton;
    ToolButton_Step_Out: TToolButton;
    ToolButton39: TToolButton;
    ToolButton_Insert_Breakpoint: TToolButton;
    ToolButton_Enable_Breakpoint: TToolButton;
    ToolButton_Clear_All_Breakpoints: TToolButton;
    ToolButton_Breakpoints: TToolButton;
    ToolButton44: TToolButton;
    ToolButton_Immediate: TToolButton;
    ToolButton_Autos: TToolButton;
    ToolButton_Locals: TToolButton;
    ToolButton_Watch: TToolButton;
    ToolButton_Threads: TToolButton;
    ToolButton_Call_Stack: TToolButton;
    ToolButton_Running_Documents: TToolButton;
    ToolButton_Output: TToolButton;
    ToolButton53: TToolButton;
    ToolButton_Processes: TToolButton;
    Action_Build_Project: TAction;
    Action_Build_Solution: TAction;
    Action_Rebuild_Solution: TAction;
    Action_Cancel: TAction;
    Action_Build: TAction;
    ActionBuild1: TMenuItem;
    BuildProject1: TMenuItem;
    BuildSolution1: TMenuItem;
    RebuildSolution1: TMenuItem;
    Cancel1: TMenuItem;
    ComboBox_Configuration: TComboBox;
    Action_Toolbars_Build: TAction;
    Build1: TMenuItem;
    lbDockServer1: TJvDockServer;
    JvDockVIDStyle1: TJvDockVIDStyle;
    MainFormStatusBar: TStatusBar;
    procedure Action_FileExecute(Sender: TObject);
    procedure MainControlBarBandMove(Sender: TObject; Control: TControl;
      var ARect: TRect);
    procedure Action_New_ProjectExecute(Sender: TObject);
    procedure Action_ExitExecute(Sender: TObject);
    procedure Action_Task_ListExecute(Sender: TObject);
    procedure MainFormStatusBarResize(Sender: TObject);
    procedure Action_Project_ExplorerExecute(Sender: TObject);
    procedure Action_Properties_WindowExecute(Sender: TObject);
    procedure Action_ToolboxExecute(Sender: TObject);
    procedure Action_ImmediateExecute(Sender: TObject);
    procedure Action_AutosExecute(Sender: TObject);
    procedure Action_LocalsExecute(Sender: TObject);
    procedure Action_WatchExecute(Sender: TObject);
    procedure Action_ThreadsExecute(Sender: TObject);
    procedure Action_Call_StackExecute(Sender: TObject);
    procedure Action_Running_DocumentsExecute(Sender: TObject);
    procedure Action_Document_OutlineExecute(Sender: TObject);
    procedure Action_OutputExecute(Sender: TObject);
    procedure Action_Script_OutlineExecute(Sender: TObject);
    procedure Action_Define_Window_LayoutExecute(Sender: TObject);
    procedure Action_Find_and_ReplaceExecute(Sender: TObject);
    procedure Load_Save_WindowUI_ComboBoxChange(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Action_AboutExecute(Sender: TObject);
  private
    { Private declarations }
    FCreated: Boolean;  
    procedure CreateDockableForm;
    procedure GetToolbarWidthArr;
    procedure SaveDefaultLayout;
    procedure LoadDefaultLayout;
  public
    { Public declarations }
    {$IFDEF USEJVCL}
    JvAppStorage:TJvAppIniFileStorage;
    {$ENDIF}
    procedure LoadDockInfo;
  end;

var
  MainForm: TMainForm;

const DefineWindowLayoutFileName: string = 'DefineWindowLayout.ini';
const SectionString: string = 'DefineWindowLayout';
const DefaultLayout: string = 'DefaultLayout';

implementation

uses IniFiles, ProjectExplorerUnit, PropertiesUnit, ToolboxUnit, ImmediateUnit,
  AutosUnit, LocalsUnit, WatchUnit, ThreadsUnit, CallStackUnit,
  RunningDocumentsUnit, TaskListUnit, DocumentOutlineUnit, OutputUnit,
  ScriptOutlineUnit, DefineWindowLayoutUnit, FindAndReplaceUnit, SplashUnit;

procedure TMainForm.CreateDockableForm;
begin
  ProjectExplorerForm := TProjectExplorerForm.Create(Self);   //创建Project Explorer工具窗体
  PropertiesForm := TPropertiesForm.Create(Self);             //创建Properties工具窗体
  ToolboxForm := TToolboxForm.Create(Self);                   //创建Toolbox工具窗体
  {----------------------------------------------------------------------------}
  ImmediateForm := TImmediateForm.Create(Self);               //创建Immediate工具窗体
  AutosForm := TAutosForm.Create(Self);                       //创建Autos工具窗体
  LocalsForm := TLocalsForm.Create(Self);                     //创建Locals工具窗体
  WatchForm := TWatchForm.Create(Self);                       //创建Watch工具窗体
  ThreadsForm := TThreadsForm.Create(Self);                   //创建Threads工具窗体
  CallStackForm := TCallStackForm.Create(Self);               //创建Call Stack工具窗体
  RunningDocumentsForm := TRunningDocumentsForm.Create(Self); //创建Running Documents工具窗体
  {----------------------------------------------------------------------------}
  TaskListForm := TTaskListForm.Create(Self);                 //创建Task List工具窗体
  DocumentOutlineForm := TDocumentOutlineForm.Create(Self);   //创建Document Outline工具窗体
  OutputForm := TOutputForm.Create(Self);                     //创建Output工具窗体
  ScriptOutlineForm := TScriptOutlineForm.Create(Self);       //创建Script Outline工具窗体
  {----------------------------------------------------------------------------}
  FindAndReplaceForm := TFindAndReplaceForm.Create(Self);     //创建Find And Replace工具窗体
end;

{$R *.DFM}

procedure TMainForm.Action_FileExecute(Sender: TObject);
begin
 //
end;

procedure TMainForm.GetToolbarWidthArr;
var i: Integer;
begin
  //
  for i := 0 to MainControlBar.ControlCount - 1 do
    MainControlBar.Controls[i].Tag := MainControlBar.Controls[i].Width;
  FCreated := True;
end;

procedure TMainForm.MainControlBarBandMove(Sender: TObject;
  Control: TControl; var ARect: TRect);
begin
  //
  if (Control.Tag <> ARect.Right - ARect.Left - 13) and FCreated then
  begin
    ARect.Right := ARect.Left + Control.Tag + 13;
  end;
end;

procedure TMainForm.Action_New_ProjectExecute(Sender: TObject);
begin
  MainFormStatusBar.Panels[2].Text := Format('You clicked ''%s''', [TAction(Sender).Caption]);
end;

procedure TMainForm.Action_ExitExecute(Sender: TObject);
begin
  Close;
end;

procedure TMainForm.MainFormStatusBarResize(Sender: TObject);
begin
  if MainFormStatusBar.Width > 450 then
    MainFormStatusBar.Panels[0].Width := MainFormStatusBar.Width - 350
  else
    MainFormStatusBar.Panels[2].Width := MainFormStatusBar.Width - 200;
end;

procedure TMainForm.Action_Task_ListExecute(Sender: TObject);
begin
  { 显示Task List工具窗体 }
  ShowDockForm(TaskListForm);
end;

procedure TMainForm.Action_Project_ExplorerExecute(Sender: TObject);
begin
  { 显示Task List工具窗体 }
  ShowDockForm(ProjectExplorerForm);
end;

procedure TMainForm.Action_Properties_WindowExecute(Sender: TObject);
begin
  { 显示Properties工具窗体 }
  ShowDockForm(PropertiesForm);
end;

procedure TMainForm.Action_ToolboxExecute(Sender: TObject);
begin
  { 显示Toolbox工具窗体 }
  ShowDockForm(ToolboxForm);
end;

procedure TMainForm.Action_ImmediateExecute(Sender: TObject);
begin
  { 显示Immediate工具窗体 }
  ShowDockForm(ImmediateForm);
end;

procedure TMainForm.Action_AutosExecute(Sender: TObject);
begin
  { 显示Autos工具窗体 }
  ShowDockForm(AutosForm);
end;

procedure TMainForm.Action_LocalsExecute(Sender: TObject);
begin
  { 显示Locals工具窗体 }
  ShowDockForm(LocalsForm);
end;

procedure TMainForm.Action_WatchExecute(Sender: TObject);
begin
  { 显示Watch工具窗体 }
  ShowDockForm(WatchForm);
end;

procedure TMainForm.Action_ThreadsExecute(Sender: TObject);
begin
  { 显示Threads工具窗体 }
  ShowDockForm(ThreadsForm);
end;

procedure TMainForm.Action_Call_StackExecute(Sender: TObject);
begin
  { 显示Call Stack工具窗体 }
  ShowDockForm(CallStackForm);
end;

procedure TMainForm.Action_Running_DocumentsExecute(Sender: TObject);
begin
  { 显示Running Documents工具窗体 }
  ShowDockForm(RunningDocumentsForm);
end;

procedure TMainForm.Action_Document_OutlineExecute(Sender: TObject);
begin
  { 显示Document Outline工具窗体 }
  ShowDockForm(DocumentOutlineForm);
end;

procedure TMainForm.Action_OutputExecute(Sender: TObject);
begin
  { 显示Output工具窗体 }
  ShowDockForm(OutputForm);
end;

procedure TMainForm.Action_Script_OutlineExecute(Sender: TObject);
begin
  { 显示Script Outline工具窗体 }
  ShowDockForm(ScriptOutlineForm);
end;

procedure TMainForm.Action_Find_and_ReplaceExecute(Sender: TObject);
begin
  { 显示Find And Replace工具窗体 }
  ShowDockForm(FindAndReplaceForm);
end;

procedure TMainForm.Action_Define_Window_LayoutExecute(Sender: TObject);
begin
  with TDefineWindowLayoutForm.Create(nil) do
  begin
    ShowModal;
    Load_Save_WindowUI_ComboBox.Items.Clear;
    Load_Save_WindowUI_ComboBox.Items.Assign(Views_ListBox.Items);
    Load_Save_WindowUI_ComboBox.ItemIndex := SelectItemIndex;
    Release;
  end;
end;

procedure TMainForm.LoadDockInfo;
begin
  CreateDockableForm;
  GetToolbarWidthArr;
  LoadDefaultLayout;
end;

procedure TMainForm.LoadDefaultLayout;
var IniFile: TIniFile;
  Str: string;
  Sections: TStringList;
  Index: Integer;
begin
  IniFile := TIniFile.Create(ExtractFilePath(Application.EXEName) + DefineWindowLayoutFileName);
  Sections := TStringList.Create;
  try
    IniFile.ReadSection(SectionString, Sections);
    Index := Sections.IndexOf(DefaultLayout);
    if Index <> - 1 then
      Sections.Delete(Sections.IndexOf(DefaultLayout));
    Sections.Sort;
    Load_Save_WindowUI_ComboBox.Items.Assign(Sections);
    Load_Save_WindowUI_ComboBox.ItemIndex := 0;
    Str := IniFile.ReadString(SectionString, DefaultLayout, 'ERROR');
    if Str <> 'ERROR' then
    begin
      Load_Save_WindowUI_ComboBox.ItemIndex := Load_Save_WindowUI_ComboBox.Items.IndexOf(Str);
      {$IFDEF USEJVCL}
      JvAppStorage.Filename := ExtractFilePath(Application.ExeName) + Str + '.ini';
      LoadDockTreeFromAppStorage(JvAppStorage);
      {$ELSE}
      LoadDockTreeFromFile(ExtractFilePath(Application.EXEName) + Str + '.ini');
      {$ENDIF}
    end;
  finally
    Sections.Free;
    IniFile.Free;
  end;
end;

procedure TMainForm.SaveDefaultLayout;
//var IniFile: TIniFile;
begin
  {$IFDEF USEJVCL}
  JvAppStorage.Filename := ExtractFilePath(Application.EXEName) + Load_Save_WindowUI_ComboBox.Text + '.ini';
  SaveDockTreeToAppStorage(JvAppStorage, Load_Save_WindowUI_ComboBox.Text);
{  JvAppStorage.WriteString(JvAppStorage.ConcatPaths([SectionString, DefaultLayout]), Load_Save_WindowUI_ComboBox.Text);
  IniFile := TIniFile.Create(ExtractFilePath(Application.EXEName) + DefineWindowLayoutFileName);
  try
    IniFile.WriteString(SectionString, DefaultLayout, Load_Save_WindowUI_ComboBox.Text);
  finally
    IniFile.Free;
  end;}
  {$ELSE}
    SaveDockTreeToFile(ExtractFilePath(Application.EXEName) + Load_Save_WindowUI_ComboBox.Text + '.ini');
  {$ENDIF}
end;

procedure TMainForm.Load_Save_WindowUI_ComboBoxChange(Sender: TObject);
begin
  {$IFNDEF USEJVCL}
  LoadDockTreeFromFile(ExtractFilePath(Application.EXEName) + Load_Save_WindowUI_ComboBox.Text + '.ini');
  {$ENDIF}
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  { 保存停靠信息的代码不能放在OnDestroy事件中,因为这时候有些窗口已经被释放了,不能被保存。 }
  SaveDefaultLayout;
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
(*  ProjectExplorerForm.Release;
  PropertiesForm.Release;
  ToolboxForm.Release;
  {----------------------------------------------------------------------------}
  ImmediateForm.Release;
  AutosForm.Release;
  LocalsForm.Release;
  WatchForm.Release;
  ThreadsForm.Release;
  CallStackForm.Release;
  RunningDocumentsForm.Release;
  {----------------------------------------------------------------------------}
  TaskListForm.Release;
  DocumentOutlineForm.Release;
  OutputForm.Release;
  ScriptOutlineForm.Release;
  {----------------------------------------------------------------------------}
  FindAndReplaceForm.Release;*)
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  {$IFDEF USEJVCL}
  JvAppStorage := TJvAppIniFileStorage.Create(self);
  {$ENDIF}
  LoadDockInfo;
end;

procedure TMainForm.Action_AboutExecute(Sender: TObject);
begin
 with TSplashForm.Create(nil) do
 try
   ShowModal;
 finally
   Free;
 end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -