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

📄 gx_idedeskform.pas

📁 GExperts is a set of tools built to increase the productivity of Delphi and C++Builder programmers
💻 PAS
字号:
unit GX_IdeDeskForm;

interface

{$UNDEF DoNotCompileThis}
{$IFDEF DoNotCompileThis}

uses
  SysUtils, Windows, Messages, Classes, Controls, Forms, Menus, DsgnIntf,
  IniFiles;

type
  TDesktopForm = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    FAutoSave: Boolean;
    FDeskSection: string;
    FLocked: Boolean;
    FLoadedFromDesktop: Boolean;
    FSaveStateNecessary: Boolean;
    FWindowPlacement: TWindowPlacement;
    FWindowPlacementDirty: Boolean;
    procedure MainFormMadeVisible(Sender: TObject);
    procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
  protected
    FLastLoadedBounds: TRect;
    procedure DoMainFormShown; dynamic;
    function LoadDockClients(DeskTop: TMemIniFile; const Section: string;
      DockSite: TWinControl): Boolean; virtual;
    procedure LoadDockStream(DeskTop: TMemIniFile; const Section: string;
      DockSite: TWinControl); virtual;
    procedure SaveDockClients(DeskTop: TMemIniFile; const Section: string;
      DockSite: TWinControl); virtual;
    procedure SaveDockStream(DeskTop: TMemIniFile; const Section: string;
      DockSite: TWinControl); virtual;
    procedure UnlockUpdates; dynamic;
    property SaveStateNecessary: Boolean read FSaveStateNecessary write FSaveStateNecessary;
    procedure ZoomWindow; virtual;
    procedure Repaint; override;
  public
    constructor Create(AOwner: TComponent); override;
    procedure EditAction(Action: TEditAction); virtual;
    procedure GetEditState(var EditState: TEditState); virtual;
    procedure SaveWindowState(Desktop: TMemIniFile; isProject: Boolean); virtual;
    procedure LoadWindowState(Desktop: TMemIniFile); virtual;
    procedure LockUpdates; dynamic;
    property DeskSection: string read FDeskSection write FDeskSection;
    property AutoSave: Boolean read FAutoSave write FAutoSave;
    property LoadedFromDesktop: Boolean read FLoadedFromDesktop;
  end;

  TDesktopFormClass = class of TDesktopForm;

  TInitializeForm = procedure(Ident: TComponent);

var
  InitializeForm: TInitializeForm;
  RegisterMenu: procedure (AMenu: TMenu) of object = nil;
  UnregisterMenu: procedure (AMenu: TMenu) of object = nil;
  RegisterMainFormShown: procedure (Event: TNotifyEvent) = nil;
  UnregisterMainFormShown: procedure (Event: TNotifyEvent) = nil;
  GetDockable: function (const DeskSection: string): Boolean = nil;
  LoadedDesktopFormInstances: TStringList;

procedure BeginDesktopUpdate;
procedure EndDesktopUpdate;
function IsDesktopLocked: Boolean;

{$ENDIF DoNotCompileThis}

implementation

{$R *.dfm}

end.

⌨️ 快捷键说明

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