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 + -
显示快捷键?