本例效果图:



代码文件:


unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls;typeTForm1 = class(TForm)ComboBox1: TComboBox;ComboBox2: TComboBox;ComboBox3: TComboBox;ComboBox4: TComboBox;procedure FormCreate(Sender: TObject);procedure FormPaint(Sender: TObject);procedure ComboBox1Change(Sender: TObject);procedure ComboBox2Change(Sender: TObject);procedure ComboBox3Change(Sender: TObject);procedure ComboBox4Change(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses GDIPOBJ, GDIPAPI, TypInfo;var StartCap,EndCap,DashCap: Integer;procedure TForm1.FormCreate(Sender: TObject);
vari: Integer;
beginComboBox1.Text := '虚线样式';ComboBox2.Text := '起点线帽';ComboBox3.Text := '中间线帽';ComboBox4.Text := '终点线帽';for i := 0 to 5 doComboBox1.Items.Add(GetEnumName(TypeInfo(TDashStyle), i));ComboBox2.Items.Add('LineCapFlat');ComboBox2.Items.Add('LineCapSquare');ComboBox2.Items.Add('LineCapRound');ComboBox2.Items.Add('LineCapTriangle');ComboBox2.Items.Add('LineCapNoAnchor');ComboBox2.Items.Add('LineCapSquareAnchor');ComboBox2.Items.Add('LineCapRoundAnchor');ComboBox2.Items.Add('LineCapDiamondAnchor');ComboBox2.Items.Add('LineCapArrowAnchor');ComboBox3.Items := ComboBox2.Items;ComboBox4.Items := ComboBox2.Items;
end;procedure TForm1.FormPaint(Sender: TObject);
constColorArr: array[0..2] of TGPColor = (aclRed, aclGreen, aclBlue);
varg: TGPGraphics;p: TGPPen;x1,x2,y: Integer;i: Integer;
beging := TGPGraphics.Create(Canvas.Handle);p := TGPPen.Create($FF000000, 16);p.SetDashStyle(TDashStyle(ComboBox1.ItemIndex));p.SetLineCap(StartCap, EndCap, DashCap);x1 := 50;x2 := ClientWidth - 50;y := 60;for i := 0 to 2 dobeginp.SetColor(ColorArr[i]);g.DrawLine(p, x1, y, x2, y);Inc(y, 40);end;p.Free;g.Free;
end;procedure TForm1.ComboBox1Change(Sender: TObject);
beginRepaint;
end;procedure TForm1.ComboBox2Change(Sender: TObject);
vari: Integer;
begini := 0;case TComboBox(Sender).ItemIndex of0 : i := LineCapFlat;1 : i := LineCapSquare;2 : i := LineCapRound;3 : i := LineCapTriangle;4 : i := LineCapNoAnchor;5 : i := LineCapSquareAnchor;6 : i := LineCapRoundAnchor;7 : i := LineCapDiamondAnchor;8 : i := LineCapArrowAnchor;9 : i := LineCapCustom;10: i := LineCapAnchorMask;end;if TComboBox(Sender) = ComboBox2 then StartCap := i;if TComboBox(Sender) = ComboBox3 then DashCap := i;if TComboBox(Sender) = ComboBox4 then EndCap := i;Repaint;
end;procedure TForm1.ComboBox3Change(Sender: TObject);
beginComboBox2Change(Sender);
end;procedure TForm1.ComboBox4Change(Sender: TObject);
beginComboBox2Change(Sender);
end;end.

窗体文件:


object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 165ClientWidth = 515Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalsePosition = poDesktopCenterOnCreate = FormCreateOnPaint = FormPaintPixelsPerInch = 96TextHeight = 13object ComboBox1: TComboBoxLeft = 8Top = 8Width = 121Height = 21ItemHeight = 13TabOrder = 0Text = 'ComboBox1'OnChange = ComboBox1Changeendobject ComboBox2: TComboBoxLeft = 135Top = 8Width = 121Height = 21ItemHeight = 13TabOrder = 1Text = 'ComboBox2'OnChange = ComboBox2Changeendobject ComboBox3: TComboBoxLeft = 262Top = 8Width = 121Height = 21ItemHeight = 13TabOrder = 2Text = 'ComboBox3'OnChange = ComboBox3Changeendobject ComboBox4: TComboBoxLeft = 389Top = 8Width = 121Height = 21ItemHeight = 13TabOrder = 3Text = 'ComboBox4'OnChange = ComboBox4Changeend
end

转载于:https://www.cnblogs.com/del/archive/2008/06/15/1222156.html

再学 GDI+[36]: TGPPen - SetLineCap相关推荐

  1. 再学 GDI+[33]: TGPPen - 画笔的几何变换 - SetTransform

    几何变换也就是 Matrix 变换, 画笔的 Matrix 会忽略 dx.dy 平移参数; 选择 LineCapRound 线帽效果比较好. 本例效果图: 代码文件: unit Unit1;inter ...

  2. 再学 GDI+[25]: TGPPen - 宽度、颜色与线帽

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  3. 再学 GDI+[57]: 路径 - Widen

    为什么80%的码农都做不了架构师?>>>    路径的 Widen 方法可以把路径中的线, 根据指定画笔的宽度与样式, 转换为一个范围(有点类似区域); 但转换后再描绘路径就只能使用 ...

  4. 再学 GDI+[56]: 路径 - Warp

    为什么80%的码农都做不了架构师?>>>    通过路径的 Warp 方法可以让路径在一个范围内(四个点决定的范围)变换; 第一个参数可以是 3 个点或 4 个点的数组, 如果是 3 ...

  5. 再学 GDI+[11]: DrawCurve - 绘制曲线

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  6. 再学 GDI+[7]: DrawLines - 绘制一组直线

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  7. 再学 GDI+[81]: TGPImage(1) - 显示图像

    已知 GDI+ 可以支持的图像格式: BMP.JPEG.GIF.TIFF.PNG.ICO.WMF.EMF TGPGraphics.DrawImage 函数有太多重载了, 一起列在这吧: functio ...

  8. 再学 GDI+[83]: TGPImage(3) - 平行四边形变换

    为什么80%的码农都做不了架构师?>>>    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, V ...

  9. 再学 GDI+[60]: TGPGraphics.SetSmoothingMode - 绘图质量

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

最新文章

  1. [c++] vector<vector<int>>排序
  2. firefox+android+平板,Firefox模拟手机浏览器(iOS+Android) – UserAgent Switcher使用方法...
  3. win10系统下载-靠谱推荐
  4. 【Java10】lambda表达式(函数式编程),Stream流,File类,字节/字符流,乱码,缓冲/转换/序列化/打印流,Properties
  5. 《Python Cookbook 3rd》笔记(5.19):创建临时文件和文件夹
  6. android手机测试”
  7. ArcGIS利用DEM提取河流水系(附练习数据下载)
  8. C语言程序设计孙家啸第一版,广东(年4月自考各专业课程使用教材.doc
  9. H3CIERS+(H3C认证路由交换互联网专家介绍)
  10. win10计算机上的策略禁止用户安装,win10电脑安装摄像头驱动时提示策略禁止安装此设备的解决教程...
  11. 黑客黑手伸向微博微信手机成网络钓鱼主要渠道
  12. Grafana 任意文件读取漏洞复现
  13. JAVA实现模板word文档导入,Java依据word模板生成word文档之后台解析和实现及部分代码(一)...
  14. NR ZC 序列相关与preamble检测原理
  15. unity学习途中奇奇怪怪的问题——Unity打不开VS的问题
  16. Spring环境搭建错误
  17. 查看zookeeper状态报错`Error contacting service. It is propably not running`
  18. 使用SpannableString实现一个load小动画
  19. 用Easyui写一个银行个人存款计算器(纯前端页面)
  20. CSS(3)学习笔记——持续更新

热门文章

  1. 2021年宇华实验中学高考成绩查询,2021年河南高考状元多少分,今年河南高考状元资料名单...
  2. nftables入门文档
  3. GDAL中MEM格式的简单使用示例
  4. 使用OGR2OGR将S57数据转为shp格式
  5. Java多线程(八)——多线程辅助功能类
  6. 设计模式(一)----简单工厂、工厂方法和抽象工厂区别
  7. MFC 教程【6_应用程序的退出 】
  8. 广东学考计算机专业要多少排位,太难了!2021年学考录取分数大暴涨!深职、广轻需要300分以上?...
  9. 【java学习之路】(数据结构篇)001.数组
  10. scala中getorElse()方法