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

📄 d_frmmainunit.pas

📁 delphi 运行期间窗体设计
💻 PAS
字号:
unit d_frmMainUnit;

interface

uses
  Windows, Messages, SysUtils, {$IFNDEF VER130}Variants,{$ENDIF} Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, ActnList, Menus, ExtCtrls, LMDDsgManager, StdCtrls,
  Buttons, ComCtrls, ToolWin, LMDDsgClass;

type
  TfrmMain = class(TForm)
    MainMenu1: TMainMenu;
    DesignersImages: TImageList;
    File1: TMenuItem;
    New1: TMenuItem;
    Open1: TMenuItem;
    Save1: TMenuItem;
    LMDDesignManager1: TLMDDesignManager;
    SaveAs1: TMenuItem;
    OpenDialog1: TOpenDialog;
    Panel2: TPanel;
    sbNone: TSpeedButton;
    sbGrid: TSpeedButton;
    sbNavigator: TSpeedButton;
    sbLabel: TSpeedButton;
    sbEdit: TSpeedButton;
    sbMemo: TSpeedButton;
    sbImage: TSpeedButton;
    sbListBox: TSpeedButton;
    sbQuery: TSpeedButton;
    sbComboBox: TSpeedButton;
    sbCheckBox: TSpeedButton;
    sbRadioGroup: TSpeedButton;
    sbDataSource: TSpeedButton;
    Run1: TMenuItem;
    Design1: TMenuItem;
    StatusBar1: TStatusBar;
    ActionList1: TActionList;
    actNew: TAction;
    actOpen: TAction;
    actSave: TAction;
    actSaveAs: TAction;
    actRun: TAction;
    actDesign: TAction;
    N1: TMenuItem;
    Exit1: TMenuItem;
    ImageList1: TImageList;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    actCopy: TAction;
    actCut: TAction;
    actPaste: TAction;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    Edit1: TMenuItem;
    Cut1: TMenuItem;
    Copy1: TMenuItem;
    Paste1: TMenuItem;
    actProps: TAction;
    N2: TMenuItem;
    Properties1: TMenuItem;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    procedure LMDDesignManager1Change(Sender: TObject);
    procedure LMDDesignManager1CurrentDesignerChange(Sender: TObject);
    procedure actNewExecute(Sender: TObject);
    procedure actOpenExecute(Sender: TObject);
    procedure actSaveExecute(Sender: TObject);
    procedure actSaveAsExecute(Sender: TObject);
    procedure actRunExecute(Sender: TObject);
    procedure actDesignExecute(Sender: TObject);
    procedure actSaveUpdate(Sender: TObject);
    procedure actSaveAsUpdate(Sender: TObject);
    procedure actRunUpdate(Sender: TObject);
    procedure actDesignUpdate(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure actCopyUpdate(Sender: TObject);
    procedure actCopyExecute(Sender: TObject);
    procedure actCutUpdate(Sender: TObject);
    procedure actCutExecute(Sender: TObject);
    procedure actPasteUpdate(Sender: TObject);
    procedure actPasteExecute(Sender: TObject);
    procedure actPropsUpdate(Sender: TObject);
    procedure actPropsExecute(Sender: TObject);
  private
    { Private declarations }
    FDocNum: Integer;
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

uses d_frmPropsUnit, d_frmDocFormUnit;

{$R *.dfm}

procedure TfrmMain.LMDDesignManager1Change(Sender: TObject);
begin
  if (ActiveMDIChild <> nil) and (ActiveMDIChild is TfrmDocForm) then
    (ActiveMDIChild as TfrmDocForm).Modified := True;
end;

procedure TfrmMain.LMDDesignManager1CurrentDesignerChange(Sender: TObject);
const
  LModified: array[Boolean] of string = ('', 'Modified');
begin
  if (ActiveMDIChild <> nil) and (ActiveMDIChild is TfrmDocForm) then
    StatusBar1.SimpleText := ActiveMDIChild.Caption + '  ' +
      LModified[(ActiveMDIChild as TfrmDocForm).Modified]
  else
    StatusBar1.SimpleText := 'No form';
end;

procedure TfrmMain.actNewExecute(Sender: TObject);
begin
  with TfrmDocForm.Create(Application) do
  begin
    Inc(FDocNum);
    Caption := 'Untitled' + IntToStr(FDocNum);
    LMDDesignManager1.Designers.AddDesigner(LMDDesigner1).IsCurrent := True;
  end;
end;

procedure TfrmMain.actOpenExecute(Sender: TObject);
begin
  if OpenDialog1.Execute then
    with TfrmDocForm.Create(Application) do
    try
      Load(OpenDialog1.FileName);
      LMDDesignManager1.Designers.AddDesigner(LMDDesigner1).IsCurrent := True;
    except
      Free;
      raise;
    end;
end;

procedure TfrmMain.actSaveExecute(Sender: TObject);
begin
  with (ActiveMDIChild as TfrmDocForm) do
  begin
    if FileName <> '' then
      Save(FileName)
    else
      SaveAs;
  end;
end;

procedure TfrmMain.actSaveAsExecute(Sender: TObject);
begin
  (ActiveMDIChild as TfrmDocForm).SaveAs;
end;

procedure TfrmMain.actRunExecute(Sender: TObject);
begin
  (ActiveMDIChild as TfrmDocForm).Run;
end;

procedure TfrmMain.actDesignExecute(Sender: TObject);
begin
  (ActiveMDIChild as TfrmDocForm).Design;
end;

procedure TfrmMain.actSaveUpdate(Sender: TObject);
begin
  actSave.Enabled := (ActiveMDIChild <> nil) and
    (ActiveMDIChild is TfrmDocForm) and
    ((ActiveMDIChild as TfrmDocForm).Modified or
    ((ActiveMDIChild as TfrmDocForm).FileName = ''));
end;

procedure TfrmMain.actSaveAsUpdate(Sender: TObject);
begin
  actSaveAs.Enabled := (ActiveMDIChild <> nil) and (ActiveMDIChild is TfrmDocForm);
end;

procedure TfrmMain.actRunUpdate(Sender: TObject);
begin
  actRun.Enabled := (ActiveMDIChild <> nil) and
    (ActiveMDIChild is TfrmDocForm) and
    not (ActiveMDIChild as TfrmDocForm).IsInRunMode;
end;

procedure TfrmMain.actDesignUpdate(Sender: TObject);
begin
  actDesign.Enabled := (ActiveMDIChild <> nil) and
    (ActiveMDIChild is TfrmDocForm) and
    (ActiveMDIChild as TfrmDocForm).IsInRunMode;
end;

procedure TfrmMain.Exit1Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmMain.actCopyUpdate(Sender: TObject);
begin
  actCopy.Enabled := (ActiveMDIChild <> nil) and
    (ActiveMDIChild is TfrmDocForm) and
    (ActiveMDIChild as TfrmDocForm).LMDDesigner1.CanCopyToClipboard;
end;

procedure TfrmMain.actCopyExecute(Sender: TObject);
begin
  (ActiveMDIChild as TfrmDocForm).LMDDesigner1.CopyToClipboard;
end;

procedure TfrmMain.actCutUpdate(Sender: TObject);
begin
  actCut.Enabled := (ActiveMDIChild <> nil) and
    (ActiveMDIChild is TfrmDocForm) and
    (ActiveMDIChild as TfrmDocForm).LMDDesigner1.CanCutToClipboard;
end;

procedure TfrmMain.actCutExecute(Sender: TObject);
begin
  (ActiveMDIChild as TfrmDocForm).LMDDesigner1.CutToClipboard;
end;

procedure TfrmMain.actPasteUpdate(Sender: TObject);
begin
  actPaste.Enabled := (ActiveMDIChild <> nil) and
    (ActiveMDIChild is TfrmDocForm) and
    (ActiveMDIChild as TfrmDocForm).LMDDesigner1.CanPasteFromClipboard;
end;

procedure TfrmMain.actPasteExecute(Sender: TObject);
begin
  (ActiveMDIChild as TfrmDocForm).LMDDesigner1.PasteFromClipboard;
end;

procedure TfrmMain.actPropsUpdate(Sender: TObject);
begin
  actProps.Enabled := True;
  actProps.Checked := frmProps.Visible;
end;

procedure TfrmMain.actPropsExecute(Sender: TObject);
begin
  frmProps.Visible := not frmProps.Visible;
end;

end.

⌨️ 快捷键说明

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