再学 GDI+[25]: TGPPen - 宽度、颜色与线帽
代码文件:
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 - 宽度、颜色与线帽相关推荐
- 再学 GDI+[33]: TGPPen - 画笔的几何变换 - SetTransform
几何变换也就是 Matrix 变换, 画笔的 Matrix 会忽略 dx.dy 平移参数; 选择 LineCapRound 线帽效果比较好. 本例效果图: 代码文件: unit Unit1;inter ...
- 再学 GDI+[36]: TGPPen - SetLineCap
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 再学 GDI+[16]: GDI+ 的颜色常量表
颜色名称 颜色效果 颜色值 aclAliceBlue $FFF0F8FF aclAntiqueWhite $FFFAEBD7 aclAqua $FF00FFFF aclAquamarine $ ...
- 再学 GDI+[57]: 路径 - Widen
为什么80%的码农都做不了架构师?>>> 路径的 Widen 方法可以把路径中的线, 根据指定画笔的宽度与样式, 转换为一个范围(有点类似区域); 但转换后再描绘路径就只能使用 ...
- 再学 GDI+[11]: DrawCurve - 绘制曲线
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 再学 GDI+[56]: 路径 - Warp
为什么80%的码农都做不了架构师?>>> 通过路径的 Warp 方法可以让路径在一个范围内(四个点决定的范围)变换; 第一个参数可以是 3 个点或 4 个点的数组, 如果是 3 ...
- 再学 GDI+[7]: DrawLines - 绘制一组直线
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- mysql img格式缩放,再学 GDI+[89]: TGPImage(9) - 图像缩放时的质量(算法)
本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Co ...
- 再学 GDI+[81]: TGPImage(1) - 显示图像
已知 GDI+ 可以支持的图像格式: BMP.JPEG.GIF.TIFF.PNG.ICO.WMF.EMF TGPGraphics.DrawImage 函数有太多重载了, 一起列在这吧: functio ...
最新文章
- telegraf input的配置
- 定时任务卡死问题排查
- Discovery Session
- JoshChen防止前台恶意修改数据
- ImageUploadAssist--DATA
- 生成函数Euler变换学习笔记(无标号有根树计数)
- [js] json和对象有什么区别?
- java string常用的占位符形式
- java 监测文件夹_实时监测文件夹中新增的文件和文件夹(java)
- tp3.2 执行原生sql
- Ross《概率论基础教程》—Note 1
- w3cschool数据库mysql教程_SQLite 简介 | w3cschool菜鸟教程
- MySQL定时备份并清理
- IXI MEGA声卡M4 6 8 PIUS M2 M-NU2 NU4安装调试教程
- python下dicom格式图像转化为jpg格式图像
- 【机器学习项目实战】随机森林(random forest)回归(RandomForestRegressor)模型Python实现
- html5 canvas花瓣,canvas花瓣飘落
- scam计算机术语是什么意思,外贸术语dropshipping 是什么意思?如何操作?
- matlab最大回撤值,用matlab计算区间最大回撤值和最大回撤率
- Sqlite 索引的使用、索引的优缺点