home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / zkuste / delphi / kompon / d5 / cak / CAKINST.ZIP / pdfmaker.lzh / PDFMaker / ULineDemo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-02-08  |  5.8 KB  |  255 lines

  1. unit ULineDemo;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, PDFMaker, PMFonts;
  8.  
  9. type
  10.   TLineDemoForm = class(TForm)
  11.     Button1: TButton;
  12.     procedure Button1Click(Sender: TObject);
  13.   private
  14.     FPDFMaker: TPDFMaker;
  15.     procedure LineCapStyleDemo(X, Y: Single; ACanvas: TPDFContents);
  16.     procedure LineJoinStyleDemo(X, Y: Single; ACanvas: TPDFContents);
  17.     procedure RectDemo(X, Y: Single; ACanvas: TPDFContents);
  18.   public
  19.     { Public ÉΘî╛ }
  20.   end;
  21.  
  22. var
  23.   LineDemoForm: TLineDemoForm;
  24.  
  25. implementation
  26.  
  27. {$R *.DFM}
  28.  
  29. procedure TLineDemoForm.Button1Click(Sender: TObject);
  30. var
  31.   X, Y: Single;
  32. begin
  33.   {*
  34.    * ôKôûé╚ê╩Æué╔èeÄφâTâôâvâïé≡Åoù═é╖éΘüB
  35.    *
  36.    *}
  37.   FPDFMaker := TPDFMaker.Create;
  38.   with FPDFMaker do
  39.   begin
  40.     X := 80;
  41.     Y := 750;
  42.     BeginDoc(TFileStream.Create('LineDemo.pdf', fmCreate));
  43.  
  44.     LineCapStyleDemo(X, Y, Canvas);
  45.  
  46.     X := 310;
  47.     Y := 750;
  48.     LineJoinStyleDemo(X, Y, Canvas);
  49.  
  50.     X := 80;
  51.     Y := 500;
  52.     RectDemo(X, Y, Canvas);
  53.  
  54.     EndDoc(true);
  55.     Free;
  56.   end;
  57.   ShowMessage('LineDemo.pdfé≡ì∞ɼé╡é▄é╡é╜üB');
  58.   Close;
  59. end;
  60.  
  61. procedure TLineDemoForm.LineCapStyleDemo(X, Y: Single; ACanvas: TPDFContents);
  62.  
  63.   procedure DrawCloss(X, Y: Single);
  64.   var
  65.     X1, Y1, X2, Y2: Single;
  66.   begin
  67.     X1 := X - 5;
  68.     X2 := X + 5;
  69.     Y1 := Y - 5;
  70.     Y2 := Y + 5;
  71.     ACanvas.LineWidth := 0.25;
  72.     ACanvas.StrokeColor := clRed;
  73.     ACanvas.LineTo(X, Y1, X, Y2);
  74.     ACanvas.LineTo(X1, Y, X2, Y);
  75.   end;
  76. begin
  77. {*
  78.  *  LineCapStyle
  79.  *
  80.  *  èeÄφLineCapStyleé╠âTâôâvâïé≡ACanvasé╔Åoù═é╖éΘüB
  81.  *
  82.  *}
  83.  
  84.   // î⌐Åoé╡
  85.   ACanvas.Font := fiGothic;
  86.   ACanvas.FontSize := 9;
  87.   ACanvas.TextOut(X, Y, 'LineCapStyle');
  88.   ACanvas.LineWidth := 0.75;
  89.   ACanvas.DrawRect(X, Y - 5, X + 220, Y - 230, false);
  90.  
  91.   X := X + 10;
  92.  
  93.   Y := Y - 10;
  94.   ACanvas.StrokeColor := clWhite;
  95.  
  96.   // âNâèâbâsâôâOüiÉⁿé╠ì╢Æ[é≡ëBé╖é╜é▀üj
  97.   ACanvas.DrawRect(X, Y, X + 200, Y - 200, true);
  98.  
  99.   // LineCapStyleé≡lcButtEndé╔É▌ÆΦ
  100.   ACanvas.StrokeColor := clGreen;     // ÉFé═ù╬ÉF
  101.   ACanvas.LineWidth := 40;            // Éⁿé╠ò¥é═40
  102.   ACanvas.LineCapStyle := lcButtEnd;
  103.   Y := Y - 40;
  104.   ACanvas.LineTo(X - 10, Y, X + 70, Y);  // Éⁿé≡ê°é¡
  105.   DrawCloss(X + 70, Y);                  // ÉⁿÆ[é╠â|âCâôâgé≡Å\ÄÜé┼Īé╖
  106.  
  107.   ACanvas.TextOut(X + 100, Y - 4, 'lcButtEnd(Default)');
  108.  
  109.   // LineCapStyleé≡lcProjectingSquareEndé╔É▌ÆΦ
  110.   ACanvas.StrokeColor := clGreen;
  111.   ACanvas.LineWidth := 40;
  112.   ACanvas.LineCapStyle := lcProjectingSquareEnd;
  113.   Y := Y - 70;
  114.   ACanvas.LineTo(X - 10, Y, X + 70, Y);
  115.   DrawCloss(X + 70, Y);
  116.  
  117.   ACanvas.TextOut(X + 100, Y - 4, 'lcProjectingSquareEnd');
  118.  
  119.   // LineCapStyleé≡lcRoundEndé╔É▌ÆΦ
  120.   ACanvas.StrokeColor := clGreen;
  121.   ACanvas.LineWidth := 40;
  122.   ACanvas.LineCapStyle := lcRoundEnd;
  123.   Y := Y - 70;
  124.   ACanvas.LineTo(X - 10, Y, X + 70, Y);
  125.   DrawCloss(X + 70, Y);
  126.  
  127.   ACanvas.TextOut(X + 100, Y - 4, 'lcRoundEnd');
  128.  
  129.   // âNâèâbâsâôâOë≡Å£
  130.   ACanvas.CancelClip;
  131. end;
  132.  
  133. procedure TLineDemoForm.LineJoinStyleDemo(X, Y: Single; ACanvas: TPDFContents);
  134. begin
  135. {*
  136.  *  LineJoinStyleDemo
  137.  *
  138.  *  èeÄφLineJoinStyleDemoé╠âTâôâvâïé≡ACanvasé╔Åoù═é╖éΘüB
  139.  *
  140.  *}
  141.  
  142.   // î⌐Åoé╡
  143.   ACanvas.Font := fiGothic;
  144.   ACanvas.FontSize := 9;
  145.   ACanvas.TextOut(X, Y, 'LineJoinStyle');
  146.  
  147.   ACanvas.StrokeColor := clBlack;
  148.   ACanvas.LineWidth := 0.75;
  149.   ACanvas.DrawRect(X, Y - 5, X + 220, Y - 230, false);
  150.  
  151.   X := X + 10;
  152.  
  153.   Y := Y - 10;
  154.  
  155.   // âNâèâbâsâôâOüiÉⁿé╠ì╢Æ[é≡ëBé╖é╜é▀üj
  156.   ACanvas.StrokeColor := clWhite;
  157.   ACanvas.DrawRect(X, Y, X + 200, Y - 60, true);
  158.  
  159.   ACanvas.LineJoinStyle := ljMiterJoin;
  160.   ACanvas.StrokeColor := clBlue;
  161.   ACanvas.LineWidth := 15;
  162.   ACanvas.DrawRect(X - 10, Y - 30, X + 80, Y - 80, false);
  163.  
  164.   // âNâèâbâsâôâOë≡Å£
  165.   ACanvas.CancelClip;
  166.  
  167.   ACanvas.TextOut(X + 100, Y - 40, 'ljMiterJoin(Default)');
  168.  
  169.   Y := Y - 70;
  170.  
  171.   // âNâèâbâsâôâOüiÉⁿé╠ì╢Æ[é≡ëBé╖é╜é▀üj
  172.   ACanvas.StrokeColor := clWhite;
  173.   ACanvas.DrawRect(X, Y, X + 200, Y - 60, true);
  174.  
  175.   ACanvas.LineJoinStyle := ljBevelJoin;
  176.   ACanvas.StrokeColor := clBlue;
  177.   ACanvas.LineWidth := 15;
  178.   ACanvas.DrawRect(X - 10, Y - 30, X + 80, Y - 80, false);
  179.  
  180.   // âNâèâbâsâôâOë≡Å£
  181.   ACanvas.CancelClip;
  182.  
  183.   ACanvas.TextOut(X + 100, Y - 40, 'ljBevelJoin');
  184.  
  185.   Y := Y - 70;
  186.  
  187.   // âNâèâbâsâôâOüiÉⁿé╠ì╢Æ[é≡ëBé╖é╜é▀üj
  188.   ACanvas.StrokeColor := clWhite;
  189.   ACanvas.DrawRect(X, Y, X + 200, Y - 60, true);
  190.  
  191.   ACanvas.LineJoinStyle := ljRoundJoin;
  192.   ACanvas.StrokeColor := clBlue;
  193.   ACanvas.LineWidth := 15;
  194.   ACanvas.DrawRect(X - 10, Y - 30, X + 80, Y - 80, false);
  195.  
  196.   // âNâèâbâsâôâOë≡Å£
  197.   ACanvas.CancelClip;
  198.  
  199.   ACanvas.TextOut(X + 100, Y - 40, 'ljRoundJoin');
  200.  
  201. end;
  202.  
  203. procedure TLineDemoForm.RectDemo(X, Y: Single; ACanvas: TPDFContents);
  204. begin
  205. {*
  206.  *  RectDemo
  207.  *
  208.  *  Drawé¿éµé╤Fillâüâ\âbâhé╠âTâôâvâïé≡ACanvasé╔Åoù═é╖éΘüB
  209.  *
  210.  *}
  211.  
  212.   // î⌐Åoé╡
  213.   ACanvas.Font := fiGothic;
  214.   ACanvas.FontSize := 9;
  215.   ACanvas.TextOut(X, Y, 'Draw and Fill Rectangle');
  216.  
  217.   ACanvas.StrokeColor := clBlack;
  218.   ACanvas.LineWidth := 0.75;
  219.   ACanvas.DrawRect(X, Y - 5, X + 220, Y - 230, false);
  220.  
  221.   X := X + 15;
  222.  
  223.   Y := Y - 10;
  224.  
  225.   ACanvas.LineJoinStyle := ljMiterJoin;
  226.   ACanvas.StrokeColor := clBlack;
  227.   ACanvas.FillColor := clYellow;
  228.   ACanvas.LineWidth := 1;
  229.  
  230.   ACanvas.DrawRect(X, Y - 10, X + 80, Y - 60, false);
  231.  
  232.   ACanvas.FillColor := clBlack;
  233.   ACanvas.TextOut(X + 100, Y - 40, 'DrawRect');
  234.   ACanvas.FillColor := clYellow;
  235.  
  236.   Y := Y - 70;
  237.  
  238.   ACanvas.FillRect(X, Y - 10, X + 80, Y - 60, false);
  239.  
  240.   ACanvas.FillColor := clBlack;
  241.   ACanvas.TextOut(X + 100, Y - 40, 'FillRect');
  242.   ACanvas.FillColor := clYellow;
  243.  
  244.   Y := Y - 70;
  245.  
  246.   ACanvas.DrawAndFillRect(X, Y - 10, X + 80, Y - 60, false);
  247.  
  248.   ACanvas.FillColor := clBlack;
  249.   ACanvas.TextOut(X + 100, Y - 40, 'DrawAndFillRect');
  250.   ACanvas.FillColor := clYellow;
  251.  
  252. end;
  253.  
  254. end.
  255.