zoukankan      html  css  js  c++  java
  • TPen的7种Style和16种Mode

    [delphi] view plain copy
     
     print?
    1. //TPen 的主要属性有四: Color、Width、Style、Mode  
    2.   
    3. {Color: 颜色}  
    4.   
    5. {Width: 宽度; 默认是 1; 如果赋予 <= 0 的值, 会使用默认值}  
    6.   
    7. {Style: 样式; Delphi 定义了笔样式枚举 TPenStyle, 包含以下样式:}  
    8. psSolid       = 0; {实线}  
    9. psDash        = 1; {段线; 要求笔宽<=1}  
    10. psDot         = 2; {点线; 要求笔宽<=1}  
    11. psDashDot     = 3; {线、点; 要求笔宽<=1}  
    12. psDashDotDot  = 4; {线、点、点; 要求笔宽<=1}  
    13. psClear       = 5; {不可见}  
    14. psInsideFrame = 6; {实线; 但笔宽是向里扩展}  
    15. psUserStyle   = 7; {自定义, Delphi.Net 支持}  
    16. psAlternate   = 8; {交替, Delphi.Net 支持}  


     

    [delphi] view plain copy
     
     print?
    1. //下面的例子依次展示了各种样式:  
    2. var  
    3.   i,x,y,n: Integer;  
    4. begin  
    5.   x := 10;  
    6.   y := 15;  
    7.   n := ClientWidth - 2*x;  
    8.   Canvas.Pen.Color := clRed;  
    9.   for i := to do  
    10.   begin  
    11.     Canvas.Pen.Style := TPenStyle(i);  
    12.     Canvas.MoveTo(x, y);  
    13.     Canvas.LineTo(x + n, y);  
    14.     y := y + 15;  
    15.   end;  
    16. end;  


    //效果图:

    [delphi] view plain copy
     
     print?
    1. {Mode: 画笔与背景的颜色混合模式; Delphi 定义了模式枚举 TPenMode, 包含以下模式:}  
    2. pmBlack       {总是黑色}  
    3. pmWhite       {总是白色}  
    4. pmNop         {画笔无效}  
    5. pmNot         {背景色取反}  
    6. pmCopy        {画笔设置的颜色}  
    7. pmNotCopy     {画笔颜色取反}  
    8. pmMergePenNot {画笔颜色与背景颜色的反色的组合}  
    9. pmMaskPenNot  {画笔颜色与背景公共色的反色的组合}  
    10. pmMergeNotPen {画笔颜色取反后与背景颜色的组合}  
    11. pmMaskNotPen  {画笔的反色与背景的公共色的组合}  
    12. pmMerge       {画笔颜色与背景颜色的组合}  
    13. pmNotMerge    {pmMerge 的反色}  
    14. pmMask        {画笔与背景公共颜色的组合}  
    15. pmNotMask     {pmMask 的反色}  
    16. pmXor         {画笔颜色与背景颜色的 Xor 组合}  
    17. pmNotXor      {pmXor 的反色}  


     

    [delphi] view plain copy
     
     print?
    1. //颜色模式测试程序:  
    2. var  
    3.   i,x,y,w,n: Integer;  
    4. begin  
    5.   {先画竖的颜色背景}  
    6.   x := 0;  
    7.   y := 0;  
    8.   w := ClientWidth div 18;  
    9.   for i := to 18 do  
    10.   begin  
    11.     Canvas.Brush.Color := PaletteIndex(i);  
    12.     Canvas.FillRect(Rect(x, y, x+w, ClientHeight));  
    13.     x := x + w;  
    14.   end;  
    15.   
    16.   {再按不同模式依次画 16 条红色的横线}  
    17.   x := 0;  
    18.   y := 20;  
    19.   n := ClientWidth;  
    20.   Canvas.Pen.Width := 4;  
    21.   Canvas.Pen.Color := clRed;  
    22.   for i := to 15 do  
    23.   begin  
    24.     Canvas.Pen.Mode := TPenMode(i);  
    25.     Canvas.MoveTo(x, y);  
    26.     Canvas.LineTo(x + n, y);  
    27.     y := y + 20;  
    28.   end;  
    29. end;  


    //效果图:

    :

     
     http://blog.csdn.net/yanjiaye520/article/details/8315197
  • 相关阅读:
    DP专集
    FJUT ACM 1212 集训队的药药切克闹
    Codecraft-18 and Codeforces Round #458 (Div. 1 + Div. 2, combined) C. Travelling Salesman and Special Numbers (组合数学)
    牛客网 Wannafly挑战赛8 C-小C打比赛 (状压DP)
    HDU 1260 TICKETS (简单DP)
    汇编入门学习笔记 段内转移和段间转移
    汇编入门学习笔记 循环程序设计
    汇编入门学习笔记 分支程序举例
    汇编入门学习笔记 16X+Y
    POJ
  • 原文地址:https://www.cnblogs.com/findumars/p/5003991.html
Copyright © 2011-2022 走看看