Friday, 24 July 2009

Separando units en Delphi

Delphi, a diferencia de Java, puede albergar diferentes clases definidas en una misma unidad (.pas), por lo tanto al final puede que tengamos un fichero con miles de líneas de código que pueden hacernos ir un poco mal. En este caso la opción para separar nuestras clases en diferentes ficheros es bastante sencillo, solo tenemos que poner la clausula {$I file1.pas}. De esta manera, podemos tener creadas nuestras clases en un fichero y separar la definición de sus métodos en otros archivos. Para acceder al fichero con la clausula $I, solo hay que ejecutar CTRL + ENTER mientras el cursor está encima del nombre del fichero.
Con el siguiente código lo veréis más claro:




unit myGraph;

interface

uses
Classes;

type
TMyPoint = class(TObject)
private
x,y :extended;
public
closeDist :extended;
constructor Create(x,y:extended;L:TList;C:TCanvas);
function Clone:TGraphObject;override;
procedure draw;override;
procedure clear;override;
function getX:extended;
function getY:extended;
function DistanceTo(p:TMyPoint):extended;overload;
function DistanceTo(x,y:extended):extended;overload;
procedure MoveTo(x,y:extended);
function Match(p:TMyPoint):boolean;overload;
function Match(x,y:extended):boolean;overload;
function Angle(p:TMyPoint):extended;
function IsRightTurn(p1,p2:TMyPoint):boolean;
function areCollinear(a,b:TMyPoint):boolean;
function Bisector(p:TMyPoint):TGLine;
function CircleCenter(a,b:TGPoint):TMyPoint;
end;

implementation

uses
types,sysutils,dialogs,math, main, forms;

{$I Graph.pas}
{$I Lines.pas}
{$I Pointer.pas}

end.



Luego en los ficheros definidos al final de la unit, creamos la implementación de nuestra clase.

0 comments:

Post a Comment