【delphi开源代码栏目提醒】:以下是网学会员为您推荐的delphi开源代码-DSNUNIT.PAS,希望本篇文章对您学习有所帮助。
unit DsnUnit;
// Runtime Design System Version 2.x June/08/1998
// Copyright(c) 1998 Kazuhiro Sasaki.
interface
uses
Windows, Messages, SysUtils, {COMMCTRL,}Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TypInfo, ExtCtrls, Buttons, Grids,
Clipbrd, Menus, COMCTRLS, DsnShape, DsnHandle, DsnList, DsnProp,
DsnPanel, DsnMes, DsnLgMes, DsnAgent, DsnFunc;
type
TResizeMessage = record
Msg: Cardinal;
SLeft:Smallint;
STop:Smallint;
SWidth:Smallint;
SHeight:Smallint;
Result: Longint;
end;
TDsnStage = class;
TDsnCtrl = class;
TDsnRegister = class;
TDsnList = class(TList)
end;
TDsnPartner = class(TComponent)
private
FDsnRegister: TDsnRegister;
protected
FDesigning: Boolean;
procedure SetDsnRegister(Value:TDsnRegister);
procedure SetDesigning(Value:Boolean);virtual;
procedure CreateTargetList;
procedure CreateMoveShape;
function CheckCanSelect(Control: TControl): Boolean;
function GetDsnList:TDsnList;
function GetTargetList:TTargetList;
public
constructor Create(AOwner: TComponent); override;
property DsnRegister: TDsnRegister read FDsnRegister write SetDsnRegister;
end;
TDsnRegister = class(TComponent)
private
FDesigning:Boolean;
FDsnPanel:TCustomCmpPlt;
FDsnStage:TDsnStage;
FDsnInspector:TCustomInspector;
FArrowButton:TArrowButton;
FProps: TMultiProps;
FContextMenu :TPopupMenu;
protected
FDsnCtrlList: TDsnList;
DsnNotifies: TList;
DsnPartners: TList;
// FLastTarget: TComponent;
FTargetList: TTargetList;
FParentCtrl: TWinControl;
FX, FY: Integer;
CutSizeX:Integer;
CutSizeY:Integer;
Color:TColor;
PenWidth:Integer;
FDsnControl:TComponent;
FHandler: TMultiHandler;
FShape: TMultiShape;
procedure CreateSubClass;
procedure DestroySubClass;
procedure SetDsnStage(Value:TDsnStage);
procedure SetDsnPanel(Value:TCustomCmpPlt);
procedure SetDsnInspector(Value:TCustomInspector);
procedure SetArrowButton(Value:TArrowButton);
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure AlertClientDeath;virtual;
procedure AlertTargetDeath;virtual;
procedure SetDesigning(Value:Boolean);virtual;
procedure CreateHandler;virtual;
procedure CreateCopyShape;virtual;
procedure CreateMoveShape;virtual;
function CreateSubCtrl(AParent:TWinControl):TDsnCtrl;virtual;
function CreateList:TTargetList;virtual;
function CreateDsnList:TDsnList;virtual;
function CreateProps:TMultiProps;
procedure Cutting(var X, Y: Integer);
procedure MouseDown(Client:TWinControl; Target:TComponent; MousePoint:TPoint; Shift: TShiftState);virtual;
procedure MoseMove(Client:TWinControl; MousePoint:TPoint; Shift: TShiftState);virtual;
procedure MoseUp(Client:TWinControl; MousePoint:TPoint; Shift: TShiftState);virtual;
procedure MouseDownCreate(Client:TWinControl; Target:TComponent; MousePoint:TPoint; Shift: TShiftState);virtual;
procedure MouseMoveCreate(Client:TWinControl; MousePoint:TPoint; Shift: TShiftState);virtual;
procedure MouseUpCreate(Client:TWinControl; MousePoint:TPoint; Shift: TShiftState);virtual;
procedure MouseDownMove(Client:TWinControl; Target:TComponent; MousePoint:TPoint; Shift: TShiftState);virtual;
procedure MouseMoveMove(Client:TWinControl; MousePoint:TPoint; Shift: TShiftState);virtual;
procedure MouseUpMove(Client:TWinControl; MousePoint:TPoint; Shift: TShiftState);virtual;
procedure DbClick(Target:TControl; var Message: TWMMouse);virtual;
procedure CallPopupMenu(Client:TWinControl; Target:TControl; XPos,YPos: Integer);virtual;
procedure RButtonDown(Client:TWinContro