ву public для можливості отримання доступу до властивостей об'єктів з боку клієнта. Клас TTracePad розширює функціонал класу TTraceElement додатковим властивістю LinkPad, для забезпечення посилання на пов'язану майданчик:
TTracePad = class (TTraceElement)
private
aLinkPad: TTraceElement;
public
property LinkPad: TTraceElement read aLinkPad write aLinkPad;
procedure Paint; override;
constructor Create (pCanvas: TControlCanvas; pWidth, pHeigth, pxpos, pypos, pType: integer);
destructor Destroy; override;
end;
Клас TTraceWire перекриває тільки властивість Paint
= class (TTraceElement)
private
public
procedure Paint; override;
end;
Далі розглянемо клас, що описує сутність В«поле трасуванняВ»
= class
private
RowCount, ColCount: integer;
ACanvas: TControlCanvas;
function GetCellWidth: integer;
function GetCellHeight: integer;
public
constructor Create (pCanvas: TControlCanvas);
procedure Paint;
property CellWidth: integer read GetCellWidth;
property CellHeight: integer read GetCellHeight;
end;
Клас володіє двома відкритими властивостями CellWidth і CellHeight, що описують розміри комірки таблиці.
Розглянемо клас, що описує сутність В«зв'язокВ». br/>
TCircuit = class
private
StartPad, FinishPad: TTraceElement;
Wires: array of TTraceWire;
public
constructor Create;
destructor destroy; override;
end;
Клас TCircuit є контейнерним класом, який містить посилання на об'єкти класів TTraceWire і ТТraceElement; Обробку даних клас не виробляє;
Розглянемо клас, який реалізує сутність В«діаграма щільності трасуванняВ»:
= class
private
aCanvas: TControlCanvas;
aDensityArray: TDensityArray;
aElemSize: integer;
aElemMaxCount: integer;
public
constructor Create (pCanvas: TControlCanvas; ElemSize: integer; ElemMaxCount: integer);
procedure Paint (pDensityArray: TDensityArray);
end;
Даний клас забезпечує малювання діаграми щільності трасування. Малювання забезпечує процедура Paint, в параметри якої передається масив зі значеннями щільності трасування. p> Розглянемо клас, що описує менеджер трасування.
= class
private
aTracingGrid: TTracingGrid;
rc, cc: integer;
Pad: TTraceElement;
aCanvas: TControlCanvas;
aPads: TTraceElementArray;
aCircuits: array of TCircuit;
RowDens, ColDens: TTraceDiagram;
procedure SetRowCount (prc: integer);
procedure SetColCount (pcc: integer);
procedure PaintElements;
function IsTracePosible: boolean;
procedure PrepareBefor...