📄 d_lmddesigner0.pas
字号:
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 + -