再学 GDI+[22]: TGPLinearGradientBrush - 之一: TLinearGradientMode
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相关推荐
- 再学 GDI+[81]: TGPImage(1) - 显示图像
已知 GDI+ 可以支持的图像格式: BMP.JPEG.GIF.TIFF.PNG.ICO.WMF.EMF TGPGraphics.DrawImage 函数有太多重载了, 一起列在这吧: functio ...
- 再学 GDI+[57]: 路径 - Widen
为什么80%的码农都做不了架构师?>>> 路径的 Widen 方法可以把路径中的线, 根据指定画笔的宽度与样式, 转换为一个范围(有点类似区域); 但转换后再描绘路径就只能使用 ...
- 再学 GDI+[56]: 路径 - Warp
为什么80%的码农都做不了架构师?>>> 通过路径的 Warp 方法可以让路径在一个范围内(四个点决定的范围)变换; 第一个参数可以是 3 个点或 4 个点的数组, 如果是 3 ...
- 再学 GDI+[11]: DrawCurve - 绘制曲线
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 再学 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+[33]: TGPPen - 画笔的几何变换 - SetTransform
几何变换也就是 Matrix 变换, 画笔的 Matrix 会忽略 dx.dy 平移参数; 选择 LineCapRound 线帽效果比较好. 本例效果图: 代码文件: unit Unit1;inter ...
- 再学 GDI+[25]: TGPPen - 宽度、颜色与线帽
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 再学 GDI+[83]: TGPImage(3) - 平行四边形变换
为什么80%的码农都做不了架构师?>>> 本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, V ...
最新文章
- JdbcTemplate详解 - 2
- price ceiling
- win10家庭版没有device guard_普通用户选择哪个Win10系统版本?家庭版与专业版的对比介绍...
- ABAP Development Tool前后台交互的原理
- php环境模拟stphp_一个模拟浏览器请求的php类,模拟请求ua设置
- openstack service glance-api/registry mysql of max_connection
- dump文件 linux,linux使用MAT分析dump文件
- 攻防世界-music-高手进阶区-miscmisc
- 英文论文sci参考文献格式
- Windows10 操作系统里数量众多的 svchost.exe
- 基于Vue使用Arco Design组件封装一个七牛云上传图片的函数
- 计算机开不了机反复重启,电脑一直重启就是开不了机怎么样解决
- SQLiteSpy导入db文件(导入数据库文件)
- 2022年煤矿探放水题库及模拟考试
- 最受DBA欢迎的数据库技术文档-巡检篇
- 2.5 信道的极限容量
- fmm3d在windows环境中的编译使用过程
- 期货成交量与持仓量图(期货持仓量成交量价格图解)
- 一个女孩的就业之路 ------来自猫扑(mop.com)
- IBM FileNet P8 的权限管理
热门文章
- Kafka性能测试实例
- 《CCIE路由和交换认证考试指南(第5版) (第2卷)》——1.6节理解与记忆
- opencv视频播放
- OOP 术语:Arguments(参量)和 Parameters(参数)的区别(转载)
- 常用的C#方法【Format.CS】
- Kent Beck 的《测试驱动开发》(TDD) Money示例Ruby版
- Part 2 —— 迁移到 Go Modules
- Linux 命令(17)—— su 与 sudo 命令
- 操作系统简介-计算机历史、进程(一)
- Flask 的 template模板 与 jinja2语法