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

📄 d_lmddesigner0.pas

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

procedure TForm1.Nodelete1Click(Sender: TObject);
var
  LLockMode: TLMDDesignerLockMode;
begin
  LLockMode := LMDDesigner1.GetLockMode(LMDDesigner1.SelectedComponents[0]);
  if lmNoDelete in LLockMode then
    Exclude(LLockMode, lmNoDelete)
  else
    Include(LLockMode, lmNoDelete);
  LMDDesigner1.LockComponent(LMDDesigner1.SelectedComponents[0], LLockMode);
end;

procedure TForm1.NoMove1Click(Sender: TObject);
var
  LLockMode: TLMDDesignerLockMode;
begin
  LLockMode := LMDDesigner1.GetLockMode(LMDDesigner1.SelectedComponents[0]);
  if lmNoMove in LLockMode then
    Exclude(LLockMode, lmNoMove)
  else
    Include(LLockMode, lmNoMove);
  LMDDesigner1.LockComponent(LMDDesigner1.SelectedComponents[0], LLockMode);
end;

procedure TForm1.Noresize1Click(Sender: TObject);
var
  LLockMode: TLMDDesignerLockMode;
begin
  LLockMode := LMDDesigner1.GetLockMode(LMDDesigner1.SelectedComponents[0]);
  if lmNoResize in LLockMode then
    Exclude(LLockMode, lmNoResize)
  else
    Include(LLockMode, lmNoResize);
  LMDDesigner1.LockComponent(LMDDesigner1.SelectedComponents[0], LLockMode);
end;

procedure TForm1.Aligntogrid1Click(Sender: TObject);
begin
  LMDDesigner1.SelectedComponents.AlignToGrid;
end;

procedure TForm1.Noinsertin1Click(Sender: TObject);
var
  LLockMode: TLMdDesignerLockMode;
begin
  LLockMode := LMDDesigner1.GetLockMode(LMDDesigner1.SelectedComponents[0]);
  if lmNoInsertIn in LLockMode then
    Exclude(LLockMode, lmNoInsertIn)
  else
    Include(LLockMode, lmNoInsertIn);
  LMDDesigner1.LockComponent(LMDDesigner1.SelectedComponents[0], LLockMode);
end;

procedure TForm1.Nocopy1Click(Sender: TObject);
var
  LLockMode: TLMDDesignerLockMode;
begin
  LLockMode := LMDDesigner1.GetLockMode(LMDDesigner1.SelectedComponents[0]);
  if lmNoCopy in LLockMode then
    Exclude(LLockMode, lmNoCopy)
  else
    Include(LLockMode, lmNoCopy);
  LMDDesigner1.LockComponent(LMDDesigner1.SelectedComponents[0], LLockMode);
end;

procedure TForm1.Copy1Click(Sender: TObject);
begin
  LMDDesigner1.CopyToClipboard;
end;

procedure TForm1.Cut1Click(Sender: TObject);
begin
  LMDDesigner1.CutToClipboard;
end;

procedure TForm1.Paste1Click(Sender: TObject);
begin
  LMDDesigner1.PasteFromClipboard;
end;

procedure TForm1.LMDDesigner1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if CheckBox9.Checked then
    Memo1.Lines.Add(Format('OnKeyDown: (Key: $%x)', [Key]));
  if Shift = [ssCtrl] then
  begin
    if (Key = Ord('C')) then LMDDesigner1.CopyToClipboard;
    if (Key = Ord('X')) then LMDDesigner1.CutToClipboard;
    if (Key = Ord('V')) then LMDDesigner1.PasteFromClipboard;
  end;
end;

procedure TForm1.LMDDesigner1Change(Sender: TObject);
begin
  Memo1.Lines.Add('OnChange');
end;

procedure TForm1.LMDDesigner1Notification(Sender: TObject;
  AnObject: TPersistent; Operation: TOperation);
var
  LS1, LS2: string;
begin
  if AnObject is TControl then
    LS1 := TControl(AnObject).Name;
  if Operation = opInsert then
    LS2 := 'Insert'
  else
    LS2 := 'Remove';
  Memo1.Lines.Add(Format('OnNotification: (AnObject.Name: %s Operation: %s)', [LS1, LS2]));
end;

procedure TForm1.LMDDesigner1ValidateName(Sender: TObject;
  const AName: String; var AIsValidName: Boolean);
begin
  Memo1.Lines.Add(Format('OnValidateName: (AName: %s)', [AName]));
end;

procedure TForm1.LMDDesigner1GetUniqueName(Sender: TObject;
  const ABaseName: String; var AUniqueName: String);
begin
  Memo1.Lines.Add(format('OnGetUniqueName: (ABaseName: %s)', [ABaseName]));
end;

procedure TForm1.LMDDesigner1DblClick(Sender: TObject);
begin
  Memo1.Lines.Add('OnDblClick');
end;

procedure TForm1.lmCustom11Click(Sender: TObject);
var
  LLockMode: TLMDDesignerLockMode;
begin
  LLockMode := LMDDesigner1.GetLockMode(LMDDesigner1.SelectedComponents[0]);
  if lmCustom1 in LLockMode then
    Exclude(LLockMode, lmCustom1)
  else
    Include(LLockMode, lmCustom1);
  LMDDesigner1.LockComponent(LMDDesigner1.SelectedComponents[0], LLockMode);
end;

procedure TForm1.lmCustom21Click(Sender: TObject);
var
  LLockMode: TLMDDesignerLockMode;
begin
  LLockMode := LMDDesigner1.GetLockMode(LMDDesigner1.SelectedComponents[0]);
  if lmCustom2 in LLockMode then
    Exclude(LLockMode, lmCustom2)
  else
    Include(LLockMode, lmCustom2);
  LMDDesigner1.LockComponent(LMDDesigner1.SelectedComponents[0], LLockMode);
end;

procedure TForm1.LMDDesigner1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
var
  LComponent: TComponent;
  LSource, LTarget: string;
begin
  if Source <> nil then
    LSource := (Source as TDragControlObject).Control.Name
  else
    LSource := 'nil';

  LComponent := LMDDesigner1.ComponentAtPos(Point(X, Y));

  if LComponent <> nil then
    LTarget := LComponent.Name
  else
    LTarget := 'nil';

  Memo1.Lines.Add(Format('OnDragDrop: %s -> %s (X: %d, Y: %d)', [LSource, LTarget, X, Y]));
end;

procedure TForm1.LMDDesigner1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
var
  LComponent: TComponent;
  LSource, LTarget: string;
begin
  if Source <> nil then
    LSource := (Source as TDragControlObject).Control.Name
  else
    LSource := 'nil';

  LComponent := LMDDesigner1.ComponentAtPos(Point(X, Y));

  if LComponent <> nil then
    LTarget := LComponent.Name
  else
    LTarget := 'nil';
    
  Memo1.Lines.Add(Format('OnDragOver: %s -> %s (X: %d, Y: %d)', [LSource, LTarget, X, Y]));
end;

procedure TForm1.LMDDesigner1KeyPress(Sender: TObject; var Key: Char);
begin
  if CheckBox9.Checked then
    Memo1.Lines.Add(Format('OnKeyPress: (Key: "%s")', [Key]));
end;

procedure TForm1.LMDDesigner1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if CheckBox9.Checked then
    Memo1.Lines.Add(Format('OnKeyUp: (Key: %x)', [Key]));
end;

procedure TForm1.LMDDesigner1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  LComponent: TComponent;
  LS: string;
begin
  if CheckBox8.Checked then
  begin
    LComponent := LMDDesigner1.ComponentAtPos(Point(X, Y));
    if LComponent <> nil then
      LS := LComponent.Name
    else
      LS := 'nil';
    Memo1.Lines.Add(Format('OnMouseDown: (X: %d, Y: %d, ComponentAtPos: "%s")', [X, Y, LS]));
  end;
end;

procedure TForm1.LMDDesigner1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  LComponent: TComponent;
  LS: string;
begin
  if CheckBox8.Checked then
  begin
    LComponent := LMDDesigner1.ComponentAtPos(Point(X, Y));
    if LComponent <> nil then
      LS := LComponent.Name
    else
      LS := 'nil';
    Memo1.Lines.Add(Format('OnMouseMove: (X: %d, Y: %d, ComponentAtPos: "%s")', [X, Y, LS]));
  end;
end;

procedure TForm1.LMDDesigner1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  LComponent: TComponent;
  LS: string;
begin
  if CheckBox8.Checked then
  begin
    LComponent := LMDDesigner1.ComponentAtPos(Point(X, Y));
    if LComponent <> nil then
      LS := LComponent.Name
    else
      LS := 'nil';
    Memo1.Lines.Add(Format('OnMouseUp: (X: %d, Y: %d, ComponentAtPos: "%s")', [X, Y, LS]));
  end;
end;

procedure TForm1.LMDDesigner1MouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  if CheckBox8.Checked then
    Memo1.Lines.Add(Format('OnMouseWheel: (WheelDelta: %d, MousePos: (%d, %d))',
      [WheelDelta, MousePos.X, MousePos.Y]));
end;

procedure TForm1.LMDDesigner1MouseWheelDown(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
  if CheckBox8.Checked then
    Memo1.Lines.Add(Format('OnMouseWheelDown: (MousePos: (%d, %d))',
      [MousePos.X, MousePos.Y]));
end;

procedure TForm1.LMDDesigner1MouseWheelUp(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
  if CheckBox8.Checked then
    Memo1.Lines.Add(Format('OnMouseWheelUp: (MousePos: (%d, %d))',
      [MousePos.X, MousePos.Y]));
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  Memo1.Lines.Clear;
end;

procedure TForm1.SetEnabledtoTrue1Click(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]).Enabled := True;
end;

procedure TForm1.SetEnabledtoFalse1Click(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]).Enabled := False;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    LMDDesigner1.LoadFromFile(OpenDialog1.FileName);
end;

procedure TForm1.Button6Click(Sender: TObject);
var
  LSave: Boolean;
begin
  if SaveDialog1.Execute then
  begin
    LSave := True;
    if FileExists(SaveDialog1.FileName) and
      (MessageDlg(Format('File "%s" already exists. Overwrite?',
        [SaveDialog1.FileName]), mtConfirmation, [mbYes, mbNo], 0) <> mrYes) then
        LSave := False;
    if LSave then
      LMDDesigner1.SaveToFile(SaveDialog1.FileName);
  end;
end;

procedure TForm1.LMDDesigner1ComponentHint(Sender: TObject;
  AComponent: TComponent; var AHint: String);
begin
  if CheckBox7.Checked then
    AHint := Format(Edit1.Text, [AHint]);
end;

procedure TForm1.LMDDesigner1ComponentInserted(Sender: TObject);
begin
  RadioButton1.Checked := True;

  { This is TRadioButton bag. It always become checked when resieve focus.
    Setting ActiveControl to nil prevent another radio buttons of resieving
    focus when form is activated (focus changed from another form to this). }
  ActiveControl := nil;
end;

procedure TForm1.LMDDesigner1ComponentInserting(Sender: TObject;
  var AComponentClass: TComponentClass);
begin
  if RadioButton2.Checked then
    AComponentClass := TEdit
  else if RadioButton3.Checked then
    AComponentClass := TLabel
  else if RadioButton4.Checked then
    AComponentClass := TMyPanel
  else if RadioButton5.Checked then
    AComponentClass := TTimer
  else if RadioButton6.Checked then
    AComponentClass := TPopupMenu;
end;

procedure TForm1.CheckBox11Click(Sender: TObject);
begin
  LMDDesigner1.ShowNonvisualComponents := CheckBox11.Checked;
end;

procedure TForm1.LMDDesigner1GetImageIndex(Sender: TObject;
  AComponentClass: TComponentClass; var AImageIndex: Integer);
begin
  if (AComponentClass = TTimer) or
    AComponentClass.InheritsFrom(TTimer) then
    AImageIndex := 0
  else if (AComponentClass = TPopupMenu) or
    AComponentClass.InheritsFrom(TPopupMenu) then
    AImageIndex := 1;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  LMDDesigner1.HiddenClasses.Add(TMenuItem);
end;

procedure TForm1.CheckBox12Click(Sender: TObject);
begin
  if CheckBox12.Checked then
    LMDDesigner1.HiddenClasses.Add(TMenuItem)
  else
    LMDDesigner1.HiddenClasses.Remove(TMenuItem);
end;

procedure TForm1.CheckBox13Click(Sender: TObject);
begin
  if CheckBox13.Checked then
    LMDDesigner1.HiddenClasses.Add(TPopupMenu)
  else
    LMDDesigner1.HiddenClasses.Remove(TPopupMenu);
end;

procedure TForm1.CheckBox14Click(Sender: TObject);
begin
  if CheckBox14.Checked then
    LMDDesigner1.HiddenClasses.Add(TTimer)
  else
    LMDDesigner1.HiddenClasses.Remove(TTimer);
end;

initialization
  ForceCurrentDirectory := True;
  RegisterClasses([TEdit, TLabel, TMyPanel, TTimer, TPopupMenu]);

end.

⌨️ 快捷键说明

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