本例效果图:



代码文件:


unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, TeCanvas, ComCtrls;typeTForm1 = class(TForm)ComboBox1: TComboBox;ComboBox2: TComboBox;TrackBar1: TTrackBar;ButtonColor1: TButtonColor;procedure FormCreate(Sender: TObject);procedure FormPaint(Sender: TObject);procedure ComboBox1Change(Sender: TObject);procedure ComboBox2Change(Sender: TObject);procedure TrackBar1Change(Sender: TObject);procedure ButtonColor1Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses GDIPOBJ,GDIPAPI, TypInfo;varStartCap, EndCap: Integer;LineWidth: Single = 2;LineColor: TGPColor = aclRed;procedure TForm1.FormCreate(Sender: TObject);
beginwith ComboBox1.Items dobeginAdd('LineCapFlat');Add('LineCapSquare');Add('LineCapRound');Add('LineCapTriangle');Add('LineCapNoAnchor');Add('LineCapSquareAnchor');Add('LineCapRoundAnchor');Add('LineCapDiamondAnchor');Add('LineCapArrowAnchor');Add('LineCapCustom');end;ComboBox1.ItemIndex := 0;ComboBox2.Items := ComboBox1.Items;ComboBox2.ItemIndex := 0;TrackBar1.ShowSelRange := False;TrackBar1.Min := 1;TrackBar1.Max := 50;TrackBar1.Position := 2;ButtonColor1.SymbolColor := clRed;
end;procedure TForm1.FormPaint(Sender: TObject);
varg: TGPGraphics;p: TGPPen;x1,y1,x2,y2: Integer;
beging := TGPGraphics.Create(Canvas.Handle);p := TGPPen.Create(0);g.Clear(MakeColor(255,255,255));x1 := 50;x2 := ClientWidth - 50;y1 := ClientHeight div 2;y2 := y1;p.SetColor(LineColor);p.SetWidth(LineWidth);p.SetStartCap(StartCap);p.SetEndCap(EndCap);g.DrawLine(p, x1, y1, x2, y2);g.Free;p.Free;
end;procedure TForm1.ComboBox1Change(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) = ComboBox1 then StartCap := i;if TComboBox(Sender) = ComboBox2 then EndCap := i;Repaint;
end;procedure TForm1.ComboBox2Change(Sender: TObject);
beginComboBox1Change(Sender);
end;procedure TForm1.TrackBar1Change(Sender: TObject);
beginLineWidth := TrackBar1.Position;Repaint;
end;procedure TForm1.ButtonColor1Click(Sender: TObject);
beginLineColor := ColorRefToARGB(ButtonColor1.SymbolColor);Repaint;
end;end.

窗体文件:


object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 206ClientWidth = 315Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalsePosition = poDesktopCenterOnCreate = FormCreateOnPaint = FormPaintPixelsPerInch = 96TextHeight = 13object ComboBox1: TComboBoxLeft = 8Top = 8Width = 145Height = 21ItemHeight = 13TabOrder = 0Text = 'ComboBox1'OnChange = ComboBox1Changeendobject ComboBox2: TComboBoxLeft = 162Top = 8Width = 145Height = 21ItemHeight = 13TabOrder = 1Text = 'ComboBox2'OnChange = ComboBox2Changeendobject TrackBar1: TTrackBarLeft = 3Top = 182Width = 223Height = 20TabOrder = 2OnChange = TrackBar1Changeendobject ButtonColor1: TButtonColorLeft = 232Top = 177Caption = 'ButtonColor1'TabOrder = 3OnClick = ButtonColor1Clickend
end

附线帽样式常数:


LineCapFlat          = 0;   {指定平线帽}
LineCapSquare        = 1;   {指定方线帽}
LineCapRound         = 2;   {指定圆线帽}
LineCapTriangle      = 3;   {指定三角线帽}
LineCapNoAnchor      = $10; {指定没有锚}
LineCapSquareAnchor  = $11; {指定方锚头帽}
LineCapRoundAnchor   = $12; {指定圆锚头帽}
LineCapDiamondAnchor = $13; {指定菱形锚头帽}
LineCapArrowAnchor   = $14; {指定箭头状锚头帽}
LineCapCustom        = $ff; {指定自定义线帽}LineCapAnchorMask    = $f0; {定用于检查线帽是否为锚头帽的掩码}

再学 GDI+[25]: TGPPen - 宽度、颜色与线帽相关推荐

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

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

  2. 再学 GDI+[36]: TGPPen - SetLineCap

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

  3. 再学 GDI+[16]: GDI+ 的颜色常量表

    颜色名称   颜色效果   颜色值 aclAliceBlue $FFF0F8FF aclAntiqueWhite $FFFAEBD7 aclAqua $FF00FFFF aclAquamarine $ ...

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

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

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

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

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

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

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

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

  8. mysql img格式缩放,再学 GDI+[89]: TGPImage(9) - 图像缩放时的质量(算法)

    本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Co ...

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

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

最新文章

  1. telegraf input的配置
  2. 定时任务卡死问题排查
  3. Discovery Session
  4. JoshChen防止前台恶意修改数据
  5. ImageUploadAssist--DATA
  6. 生成函数Euler变换学习笔记(无标号有根树计数)
  7. [js] json和对象有什么区别?
  8. java string常用的占位符形式
  9. java 监测文件夹_实时监测文件夹中新增的文件和文件夹(java)
  10. tp3.2 执行原生sql
  11. Ross《概率论基础教程》—Note 1
  12. w3cschool数据库mysql教程_SQLite 简介 | w3cschool菜鸟教程
  13. MySQL定时备份并清理
  14. IXI MEGA声卡M4 6 8 PIUS M2 M-NU2 NU4安装调试教程
  15. python下dicom格式图像转化为jpg格式图像
  16. 【机器学习项目实战】随机森林(random forest)回归(RandomForestRegressor)模型Python实现
  17. html5 canvas花瓣,canvas花瓣飘落
  18. scam计算机术语是什么意思,外贸术语dropshipping 是什么意思?如何操作?
  19. matlab最大回撤值,用matlab计算区间最大回撤值和最大回撤率
  20. Sqlite 索引的使用、索引的优缺点

热门文章

  1. 构建布局良好的windows程序
  2. EMetaBlob类分析
  3. iPhone5或明年下半年发布 配备iOS6和A6芯片
  4. 可恶的MSSQL 内部 SQL Server 错误。(臭BUG)
  5. Juniper SRX IPsec *** base route CLI
  6. ubuntu16.04 安装 eclipse
  7. 听我说说我的博客: 月访问量过万的个人IT博客的技术史
  8. Solr添加SolrDocument报错
  9. onsubmit阻止表单提交
  10. 99%的用户都选择用它来恢复丢失的照片