TGPLinearGradientBrush.Create(rect: TGPRect;            {线性渐变的界限}color1, color2: TGPColor; {线性渐变起始色与终止色}mode: TLinearGradientMode {渐变方向, 见下表}
);TGPLinearGradientBrush.Create(rect: TGPRectF;color1, color2: TGPColor;mode: TLinearGradientMode
);

本例效果图:



代码文件:


unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, TeCanvas;typeTForm1 = class(TForm)ComboBox1: TComboBox;ButtonColor1: TButtonColor;ButtonColor2: TButtonColor;procedure FormCreate(Sender: TObject);procedure FormPaint(Sender: TObject);procedure ButtonColor1Click(Sender: TObject);procedure ButtonColor2Click(Sender: TObject);procedure ComboBox1Change(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses GDIPOBJ, GDIPAPI, TypInfo;procedure TForm1.FormCreate(Sender: TObject);
vari: Integer;
beginfor i := 0 to 3 doComboBox1.Items.Add(GetEnumName(TypeInfo(TLinearGradientMode), i));ComboBox1.ItemIndex := 1;ButtonColor1.Caption := '色1     ';ButtonColor2.Caption := '色2     ';ButtonColor1.SymbolColor := clYellow;ButtonColor2.SymbolColor := clRed;
end;procedure TForm1.FormPaint(Sender: TObject);
varg: TGPGraphics;lb: TGPLinearGradientBrush;c1,c2: TGPColor;r: TGPRect;
beging := TGPGraphics.Create(Canvas.Handle);r := MakeRect(60, 40, ClientWidth - 120, ClientHeight - 50);c1 := ColorRefToARGB(ButtonColor1.SymbolColor);c2 := ColorRefToARGB(ButtonColor2.SymbolColor);lb := TGPLinearGradientBrush.Create(r, c1, c2, TLinearGradientMode(ComboBox1.ItemIndex));g.FillEllipse(lb, r);lb.Free;g.Free;
end;procedure TForm1.ButtonColor1Click(Sender: TObject);
beginRepaint;
end;procedure TForm1.ButtonColor2Click(Sender: TObject);
beginRepaint;
end;procedure TForm1.ComboBox1Change(Sender: TObject);
beginRepaint;
end;end.

窗体文件:


object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 197ClientWidth = 309Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalsePosition = poScreenCenterOnCreate = FormCreateOnPaint = FormPaintPixelsPerInch = 96TextHeight = 13object ComboBox1: TComboBoxLeft = 113Top = 6Width = 192Height = 21ItemHeight = 13TabOrder = 0Text = 'ComboBox1'OnChange = ComboBox1Changeendobject ButtonColor1: TButtonColorLeft = 5Top = 4Width = 49Caption = 'ButtonColor1'TabOrder = 1OnClick = ButtonColor1Clickendobject ButtonColor2: TButtonColorLeft = 58Top = 4Width = 49Caption = 'ButtonColor2'TabOrder = 2OnClick = ButtonColor2Clickend
end

线性渐变的方向参数:

Delphi 微软 说明
LinearGradientModeHorizontal Horizontal 指定从左到右的渐变。
LinearGradientModeVertical Vertical 指定从上到下的渐变。
LinearGradientModeForwardDiagonal ForwardDiagonal 指定从左上到右下的渐变。
LinearGradientModeBackwardDiagonal  BackwardDiagonal  指定从右上到左下的渐变。

再学 GDI+[22]: TGPLinearGradientBrush - 之一: TLinearGradientMode相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. JdbcTemplate详解 - 2
  2. price ceiling
  3. win10家庭版没有device guard_普通用户选择哪个Win10系统版本?家庭版与专业版的对比介绍...
  4. ABAP Development Tool前后台交互的原理
  5. php环境模拟stphp_一个模拟浏览器请求的php类,模拟请求ua设置
  6. openstack service glance-api/registry mysql of max_connection
  7. dump文件 linux,linux使用MAT分析dump文件
  8. 攻防世界-music-高手进阶区-miscmisc
  9. 英文论文sci参考文献格式
  10. Windows10 操作系统里数量众多的 svchost.exe
  11. 基于Vue使用Arco Design组件封装一个七牛云上传图片的函数
  12. 计算机开不了机反复重启,电脑一直重启就是开不了机怎么样解决
  13. SQLiteSpy导入db文件(导入数据库文件)
  14. 2022年煤矿探放水题库及模拟考试
  15. 最受DBA欢迎的数据库技术文档-巡检篇
  16. 2.5 信道的极限容量
  17. fmm3d在windows环境中的编译使用过程
  18. 期货成交量与持仓量图(期货持仓量成交量价格图解)
  19. 一个女孩的就业之路 ------来自猫扑(mop.com)
  20. IBM FileNet P8 的权限管理

热门文章

  1. Kafka性能测试实例
  2. 《CCIE路由和交换认证考试指南(第5版) (第2卷)》——1.6节理解与记忆
  3. opencv视频播放
  4. OOP 术语:Arguments(参量)和 Parameters(参数)的区别(转载)
  5. 常用的C#方法【Format.CS】
  6. Kent Beck 的《测试驱动开发》(TDD) Money示例Ruby版
  7. Part 2 —— 迁移到 Go Modules
  8. Linux 命令(17)—— su 与 sudo 命令
  9. 操作系统简介-计算机历史、进程(一)
  10. Flask 的 template模板 与 jinja2语法