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

📄 d_lmddesigner0.pas

📁 delphi 运行期间窗体设计
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit d_LMDDesigner0;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ImgList, Menus, ExtCtrls,
  ColorGrd, ComCtrls, LmdDsgDesigner, LMDDsgClass;

type
  TForm1 = class(TForm)
    LMDDesigner1: TLMDDesigner;
    Button1: TButton;
    Button2: TButton;
    PopupMenu1: TPopupMenu;
    Delete1: TMenuItem;
    N1: TMenuItem;
    SetVisibletoTrue1: TMenuItem;
    SetVisibletoFalse1: TMenuItem;
    N2: TMenuItem;
    Nodelete1: TMenuItem;
    NoMove1: TMenuItem;
    Noresize1: TMenuItem;
    Aligntogrid1: TMenuItem;
    Noinsertin1: TMenuItem;
    Nocopy1: TMenuItem;
    N3: TMenuItem;
    Copy1: TMenuItem;
    Cut1: TMenuItem;
    Paste1: TMenuItem;
    Memo1: TMemo;
    Label3: TLabel;
    lmCustom11: TMenuItem;
    lmCustom21: TMenuItem;
    CheckBox8: TCheckBox;
    CheckBox9: TCheckBox;
    Button5: TButton;
    CheckBox10: TCheckBox;
    SetEnabledtoTrue1: TMenuItem;
    SetEnabledtoFalse1: TMenuItem;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    ImageList1: TImageList;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    GroupBox1: TGroupBox;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    CheckBox2: TCheckBox;
    ColorGrid2: TColorGrid;
    CheckBox1: TCheckBox;
    UpDown2: TUpDown;
    UpDown1: TUpDown;
    GroupBox2: TGroupBox;
    Memo2: TMemo;
    Button3: TButton;
    Button4: TButton;
    TabSheet2: TTabSheet;
    GroupBox4: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    TabSheet3: TTabSheet;
    GroupBox3: TGroupBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    CheckBox6: TCheckBox;
    CheckBox7: TCheckBox;
    Edit1: TEdit;
    TabSheet4: TTabSheet;
    GroupBox5: TGroupBox;
    Button6: TButton;
    Button7: TButton;
    TabSheet5: TTabSheet;
    GroupBox7: TGroupBox;
    Panel1: TPanel;
    CheckBox11: TCheckBox;
    Label4: TLabel;
    TabSheet6: TTabSheet;
    Label5: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    TabSheet7: TTabSheet;
    GroupBox6: TGroupBox;
    Label13: TLabel;
    CheckBox12: TCheckBox;
    CheckBox13: TCheckBox;
    CheckBox14: TCheckBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Delete1Click(Sender: TObject);
    procedure SetVisibletoTrue1Click(Sender: TObject);
    procedure SetVisibletoFalse1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);
    procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
    procedure ColorGrid2Change(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure LMDDesigner1ChangeSelection(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure CheckBox4Click(Sender: TObject);
    procedure CheckBox5Click(Sender: TObject);
    procedure CheckBox6Click(Sender: TObject);
    procedure CheckBox7Click(Sender: TObject);
    procedure LMDDesigner1ControlHint(Sender: TObject; AControl: TControl;
      var AHint: String);
    procedure Button4Click(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure Nodelete1Click(Sender: TObject);
    procedure NoMove1Click(Sender: TObject);
    procedure Noresize1Click(Sender: TObject);
    procedure Aligntogrid1Click(Sender: TObject);
    procedure Noinsertin1Click(Sender: TObject);
    procedure Nocopy1Click(Sender: TObject);
    procedure Copy1Click(Sender: TObject);
    procedure Cut1Click(Sender: TObject);
    procedure Paste1Click(Sender: TObject);
    procedure LMDDesigner1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure LMDDesigner1Change(Sender: TObject);
    procedure LMDDesigner1Notification(Sender: TObject;
      AnObject: TPersistent; Operation: TOperation);
    procedure LMDDesigner1ValidateName(Sender: TObject; const AName: String;
      var AIsValidName: Boolean);
    procedure LMDDesigner1GetUniqueName(Sender: TObject;
      const ABaseName: String; var AUniqueName: String);
    procedure LMDDesigner1DblClick(Sender: TObject);
    procedure lmCustom11Click(Sender: TObject);
    procedure lmCustom21Click(Sender: TObject);
    procedure LMDDesigner1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure LMDDesigner1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure LMDDesigner1KeyPress(Sender: TObject; var Key: Char);
    procedure LMDDesigner1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure LMDDesigner1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure LMDDesigner1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure LMDDesigner1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure LMDDesigner1MouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
    procedure LMDDesigner1MouseWheelDown(Sender: TObject;
      Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
    procedure LMDDesigner1MouseWheelUp(Sender: TObject; Shift: TShiftState;
      MousePos: TPoint; var Handled: Boolean);
    procedure Button5Click(Sender: TObject);
    procedure SetEnabledtoTrue1Click(Sender: TObject);
    procedure SetEnabledtoFalse1Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure LMDDesigner1ComponentHint(Sender: TObject;
      AComponent: TComponent; var AHint: String);
    procedure LMDDesigner1ComponentInserted(Sender: TObject);
    procedure LMDDesigner1ComponentInserting(Sender: TObject;
      var AComponentClass: TComponentClass);
    procedure CheckBox11Click(Sender: TObject);
    procedure LMDDesigner1GetImageIndex(Sender: TObject;
      AComponentClass: TComponentClass; var AImageIndex: Integer);
    procedure FormCreate(Sender: TObject);
    procedure CheckBox12Click(Sender: TObject);
    procedure CheckBox13Click(Sender: TObject);
    procedure CheckBox14Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TMyPanel = class(TPanel)
  public
    constructor Create(AOwner: TComponent); override;
  end;


var
  Form1: TForm1;

implementation

uses d_LMDDesigner1;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  LStream: TMemoryStream;
begin
  if not LMDDesigner1.Active then
  begin
    if CheckBox10.Checked then
    begin
      LStream := TMemoryStream.Create;
      try
        LStream.WriteComponent(Form2);
        Form2.DestroyComponents;
        LMDDesigner1.DesignControl := Form2;
        LMDDesigner1.Active := True;
        LStream.Seek(0, soFromBeginning);
        LStream.ReadComponent(Form2);
        Form2.Name := 'Form2';
      finally
        LStream.Free;
      end;
    end
    else
    begin
      LMDDesigner1.DesignControl := Form2;
      LMDDesigner1.Active := True;
    end;
    LMDDesigner1.ShowNonvisualComponents := CheckBox11.Checked;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  LStream: TMemoryStream;
begin
  if LMDDesigner1.Active then
  begin
    if CheckBox10.Checked then
    begin
      LStream := TMemoryStream.Create;
      try
        LStream.WriteComponent(Form2);
        Form2.DestroyComponents;
        LMDDesigner1.Active := False;
        LStream.Seek(0, soFromBeginning);
        LStream.ReadComponent(Form2);
        Form2.Name := 'Form2';
      finally
        LStream.Free;
      end;
    end
    else
      LMDDesigner1.Active := False;
  end;
end;

procedure TForm1.Delete1Click(Sender: TObject);
begin
  LMDDesigner1.DeleteSelectedComponents;
end;

procedure TForm1.SetVisibletoTrue1Click(Sender: TObject);
var
  LI: Integer;
begin
  for LI := 0 to LMDDesigner1.SelectedComponents.Count - 1 do
    if LMDDesigner1.SelectedComponents[LI] is TControl then
      TControl(LMDDesigner1.SelectedComponents[LI]).Visible := True;
end;

procedure TForm1.SetVisibletoFalse1Click(Sender: TObject);
var
  LI: Integer;
begin
  for LI := 0 to LMDDesigner1.SelectedComponents.Count - 1 do
    if LMDDesigner1.SelectedComponents[LI] is TControl then
      TControl(LMDDesigner1.SelectedComponents[LI]).Visible := False;
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
  LMDDesigner1.Grid.Visible := CheckBox2.Checked;
end;

procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
  Label1.Caption := IntToStr(UpDown2.Position);
  LMDDesigner1.Grid.XStep := UpDown2.Position;
end;

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
  Label2.Caption := IntToStr(UpDown1.Position);
  LMDDesigner1.Grid.YStep := UpDown1.Position;
end;

procedure TForm1.ColorGrid2Change(Sender: TObject);
begin
  LMDDesigner1.Grid.Color := ColorGrid2.ForegroundColor;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  LMDDesigner1.SnapToGrid := CheckBox1.Checked;
end;

procedure TForm1.LMDDesigner1ChangeSelection(Sender: TObject);
var
  LI: Integer;
begin
  Memo2.Lines.BeginUpdate;
  Memo2.Lines.Clear;
  for LI := 0 to LMDDesigner1.SelectedComponents.Count - 1 do
    Memo2.Lines.Add(
      LMDDesigner1.SelectedComponents[LI].Name + ': ' +
        LMDDesigner1.SelectedComponents[LI].ClassName
    );
  Memo2.Lines.EndUpdate;
  Memo1.Lines.Add('OnChangeSelection');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if LMDDesigner1.Active then
    LMDDesigner1.SelectedComponents.Clear;
end;

procedure TForm1.CheckBox3Click(Sender: TObject);
begin
  if CheckBox3.Checked then
    LMDDesigner1.Hints := LMdDesigner1.Hints + [dhComponent]
  else
    LMDDesigner1.Hints := LMDDesigner1.Hints - [dhComponent];
end;

procedure TForm1.CheckBox4Click(Sender: TObject);
begin
  if CheckBox4.Checked then
    LMDDesigner1.Hints := LMDDesigner1.Hints + [dhSize]
  else
    LMdDesigner1.Hints := LMDDesigner1.Hints - [dhSize];
end;

procedure TForm1.CheckBox5Click(Sender: TObject);
begin
  if CheckBox5.Checked then
    LMDDesigner1.Hints := LMDDesigner1.Hints + [dhMove]
  else
    LMDDesigner1.Hints := LMDDesigner1.Hints - [dhMove];
end;

procedure TForm1.CheckBox6Click(Sender: TObject);
begin
  if CheckBox6.Checked then
    LMDDesigner1.Hints := LMDDesigner1.Hints + [dhInsert]
  else
    LMDDesigner1.Hints := LMDDesigner1.Hints - [dhInsert];
end;

procedure TForm1.CheckBox7Click(Sender: TObject);
begin
  Edit1.Enabled := CheckBox7.Checked;
end;

procedure TForm1.LMDDesigner1ControlHint(Sender: TObject;
  AControl: TControl; var AHint: String);
begin

end;

{ TMyPanel }

constructor TMyPanel.Create(AOwner: TComponent);
begin
  inherited;
  Color := clRed;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  if LMDDesigner1.Active then
    LMDDesigner1.SelectAll;
end;

procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
  LLockMode: TLMDDesignerLockMode;
begin
  Nodelete1.Enabled := (LMDDesigner1.SelectedComponents.Count = 1);
  Nomove1.Enabled := (LMDDesigner1.SelectedComponents.Count = 1);
  Noresize1.Enabled := (LMDDesigner1.SelectedComponents.Count = 1);
  Noinsertin1.Enabled := (LMDDesigner1.SelectedComponents.Count = 1);
  Nocopy1.Enabled := (LMDDesigner1.SelectedComponents.Count = 1);
  lmCustom11.Enabled := (LMDDesigner1.SelectedComponents.Count = 1);
  lmCustom21.Enabled := (LMDDesigner1.SelectedComponents.Count = 1);
  if LMDDesigner1.SelectedComponents.Count = 1 then
  begin
    LLockMode := LMDDesigner1.GetLockMode(LMDDesigner1.SelectedComponents[0]);
    Nodelete1.Checked := lmNoDelete in LLockMode;
    Nomove1.Checked := lmNoMove in LLockMode;
    Noresize1.Checked := lmNoResize in LLockMode;
    Noinsertin1.Checked := lmNoInsertIn in LLockMode;
    NoCopy1.Checked := lmNoCopy in LLockMode;
    lmCustom11.Checked := lmCustom1 in LLockMode;
    lmCustom21.Checked := lmCustom2 in LLockMode;
  end
  else
  begin
    Nodelete1.Checked := False;
    Nomove1.Checked := False;
    Noresize1.Checked := False;
    Noinsertin1.Checked := False;
    NoCopy1.Checked := False;
    lmCustom11.Checked := False;
    lmCustom21.Checked := False;
  end;
  Copy1.Enabled := LMDDesigner1.CanCopyToClipboard;
  Cut1.Enabled := LMDDesigner1.CanCutToClipboard;
  Paste1.Enabled := LMDDesigner1.CanPasteFromClipboard;

⌨️ 快捷键说明

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