shapes.~pas

来自「《Kylix程序设计》一书中附带的例程源代码」· ~PAS 代码 · 共 92 行

~PAS
92
字号
unit Shapes;interfaceuses  SysUtils, Classes, Types, QGraphics;type  TGeoShape = class( TObject )
  public
    procedure Draw( Canvas: TCanvas ); virtual;
  end;

  TGeoPoint = class( TGeoShape )
  protected
    FPoint: TPoint;
  public
    procedure SetValue( Point: TPoint );
    procedure Draw( Canvas: TCanvas ); override;
  end;

  TGeoLine = class( TGeoPoint )
  protected
    FToPoint: TPoint;
  public
    procedure SetValue( FromPoint, ToPoint: TPoint ); overload;
    procedure Draw( Canvas: TCanvas ); override;
  end;

  TGeoRect = class( TGeoShape )
  protected
    FRect: TRect;
  public
    procedure SetValue( Rect: TRect ); overload;
    procedure Draw( Canvas: TCanvas ); override;
  end;
{var  Shape: TGeoShape;  Point: TGeoPoint;  Line: TGeoLine;  Rect: TGeoRect;}implementation{ TGeoShape }procedure TGeoShape.Draw(Canvas: TCanvas);begin  Canvas.TextOut( 200, 200, 'Do nothing.' );end;{ TGeoPoint }procedure TGeoPoint.SetValue(Point: TPoint);begin  FPoint := Point;end;procedure TGeoPoint.Draw(Canvas: TCanvas);begin  Canvas.DrawPoint( FPoint );end;{ TGeoLine }procedure TGeoLine.SetValue(FromPoint, ToPoint: TPoint);begin  FPoint := FromPoint;  FToPoint := ToPoint;end;procedure TGeoLine.Draw(Canvas: TCanvas);begin  Canvas.MoveTo( FPoint.X, FPoint.Y );  Canvas.LineTo( FToPoint.X, FToPoint.Y );end;{ TGeoRect }procedure TGeoRect.Draw(Canvas: TCanvas);begin  Canvas.Rectangle( FRect );end;procedure TGeoRect.SetValue(Rect: TRect);begin  FRect := Rect;end;end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?