📄 d_lmddiagram.pas
字号:
unit d_LMDDiagram;
interface
uses
Windows, Messages, SysUtils, {$IFNDEF VER130} Variants, {$ENDIF}Classes,
Graphics, Controls, Forms, Dialogs, ExtCtrls, LmdDsgDiagram, StdCtrls;
type
TForm1 = class(TForm)
LMDDiagram1: TLMDDiagram;
Memo1: TMemo;
Label3: TLabel;
CheckBox8: TCheckBox;
CheckBox9: TCheckBox;
Button5: TButton;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Label1: TLabel;
procedure LMDDiagram1Change(Sender: TObject);
procedure LMDDiagram1ChangeSelection(Sender: TObject);
procedure LMDDiagram1Click(Sender: TObject);
procedure LMDDiagram1DblClick(Sender: TObject);
procedure LMDDiagram1DeleteItem(Sender: TObject;
AItem: TLMDDiagramItem);
procedure LMDDiagram1DeleteLink(Sender: TObject;
ALink: TLMDDiagramLink);
procedure LMDDiagram1Enter(Sender: TObject);
procedure LMDDiagram1Exit(Sender: TObject);
procedure LMDDiagram1InsertItem(Sender: TObject;
AItem: TLMDDiagramItem);
procedure LMDDiagram1InsertLink(Sender: TObject;
ALink: TLMDDiagramLink);
procedure LMDDiagram1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure LMDDiagram1KeyPress(Sender: TObject; var Key: Char);
procedure LMDDiagram1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure LMDDiagram1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure LMDDiagram1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure LMDDiagram1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button5Click(Sender: TObject);
procedure Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure FormDestroy(Sender: TObject);
procedure Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure LMDDiagram1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure LMDDiagram1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure LMDDiagram1PaintItem(Sender: TObject;
APanel: TLMDDiagramItemPanel);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure LMDDiagram1CreateLinkDrawInfo(Sender: TObject;
ALink: TLMDDiagramLink; var ADrawInfo: TLMDLinkDrawInfo);
procedure LMDDiagram1IsEqualDrawInfos(Sender: TObject; ADrawInfo1,
ADrawInfo2: TLMDLinkDrawInfo; var AIsEqual: Boolean);
procedure LMDDiagram1IsOnLink(Sender: TObject;
ADrawInfo: TLMDLinkDrawInfo; AX, AY: Integer;
var AIsOnLink: Boolean);
procedure LMDDiagram1PaintLink(Sender: TObject;
ADrawInfo: TLMDLinkDrawInfo; AClear: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
TCustomLinkDrawInfo = class(TLMDLinkDrawInfo)
BeginP : TPoint;
EndP : TPoint;
Color : TColor;
Selected: Boolean;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.LMDDiagram1Change(Sender: TObject);
begin
Memo1.Lines.Add('OnChange');
end;
procedure TForm1.LMDDiagram1ChangeSelection(Sender: TObject);
begin
Memo1.Lines.Add('OnChangeSelection');
end;
procedure TForm1.LMDDiagram1Click(Sender: TObject);
begin
Memo1.Lines.Add('OnClick');
end;
procedure TForm1.LMDDiagram1DblClick(Sender: TObject);
begin
Memo1.Lines.Add('OnDblClick');
end;
procedure TForm1.LMDDiagram1DeleteItem(Sender: TObject;
AItem: TLMDDiagramItem);
begin
Memo1.Lines.Add(Format('OnDeleteItem: %s', [AItem.DisplayName]));
end;
procedure TForm1.LMDDiagram1DeleteLink(Sender: TObject;
ALink: TLMDDiagramLink);
begin
Memo1.Lines.Add(Format('OnDeleteLink: %s', [ALink.DisplayName]));
end;
procedure TForm1.LMDDiagram1Enter(Sender: TObject);
begin
Memo1.Lines.Add('OnEnter');
end;
procedure TForm1.LMDDiagram1Exit(Sender: TObject);
begin
Memo1.Lines.Add('OnExit');
end;
procedure TForm1.LMDDiagram1InsertItem(Sender: TObject;
AItem: TLMDDiagramItem);
begin
Memo1.Lines.Add(Format('OnInsertItem: %s', [AItem.DisplayName]));
end;
procedure TForm1.LMDDiagram1InsertLink(Sender: TObject;
ALink: TLMDDiagramLink);
begin
Memo1.Lines.Add(Format('OnInsertLink: %s', [ALink.DisplayName]));
end;
procedure TForm1.LMDDiagram1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if CheckBox9.Checked then
Memo1.Lines.Add(Format('OnKeyDown: (Key: $%x)', [Key]));
end;
procedure TForm1.LMDDiagram1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if CheckBox9.Checked then
Memo1.Lines.Add(Format('OnKeyUp: (Key: %x)', [Key]));
end;
procedure TForm1.LMDDiagram1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
LItem: TLMDDiagramItem;
LLink: TLMDDiagramLink;
LS, LS1: string;
begin
if CheckBox8.Checked then
begin
LItem := LMDDiagram1.ItemAtPos(X, Y);
LLink := LMDDiagram1.LinkAtPos(X, Y);
if LItem <> nil then
LS := Format('ItemAtPos: %s', [LItem.DisplayName])
else
LS := 'ItemAtPos: nil';
if LLink <> nil then
LS1 := Format('LinkAtPos: %s', [LLink.DisplayName])
else
LS1 := 'LinkAtPos: nil';
Memo1.Lines.Add(Format('OnMouseDown: (X: %d, Y: %d, %s, %s)',
[X, Y, LS, LS1]));
end;
end;
procedure TForm1.LMDDiagram1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
LItem: TLMDDiagramItem;
LLink: TLMDDiagramLink;
LS, LS1: string;
begin
if CheckBox8.Checked then
begin
LItem := LMDDiagram1.ItemAtPos(X, Y);
LLink := LMDDiagram1.LinkAtPos(X, Y);
if LItem <> nil then
LS := Format('ItemAtPos: %s', [LItem.DisplayName])
else
LS := 'ItemAtPos: nil';
if LLink <> nil then
LS1 := Format('LinkAtPos: %s', [LLink.DisplayName])
else
LS1 := 'LinkAtPos: nil';
Memo1.Lines.Add(Format('OnMouseMove: (X: %d, Y: %d, %s, %s)',
[X, Y, LS, LS1]));
end;
end;
procedure TForm1.LMDDiagram1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
LItem: TLMDDiagramItem;
LLink: TLMDDiagramLink;
LS, LS1: string;
begin
if CheckBox8.Checked then
begin
LItem := LMDDiagram1.ItemAtPos(X, Y);
LLink := LMDDiagram1.LinkAtPos(X, Y);
if LItem <> nil then
LS := Format('ItemAtPos: %s', [LItem.DisplayName])
else
LS := 'ItemAtPos: nil';
if LLink <> nil then
LS1 := Format('LinkAtPos: %s', [LLink.DisplayName])
else
LS1 := 'LinkAtPos: nil';
Memo1.Lines.Add(Format('OnMouseUp: (X: %d, Y: %d, %s, %s)',
[X, Y, LS, LS1]));
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Memo1.Lines.Clear;
end;
procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
LSource, LItem: string;
begin
if Source <> nil then
LSource := (Source as TComponent).Name
else
LSource := 'nil';
if (Source is TLMDDiagram) and (TLMDDiagram(Source).SelectedItem <> nil) then
LItem := TLMDDiagram(Source).SelectedItem.DisplayName
else
LItem := 'nil';
Memo1.Lines.Add(Format('Panel1.OnDragOver: %s (Item: %s) -> %s (X: %d, Y: %d)',
[LSource, LItem, Panel1.Name, X, Y]));
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
LMDDiagram1.Free;
end;
procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
LSource, LItem: string;
begin
if Source <> nil then
LSource := (Source as TComponent).Name
else
LSource := 'nil';
if (Source is TLMDDiagram) and (TLMDDiagram(Source).SelectedItem <> nil) then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -