Board logo

Subject: 颜色常量预览功能 [Print This Page]

Author: hypdelphi    Time: 2018-7-24 09:48     Subject: 颜色常量预览功能

对于 Vcl.Graphics 中定义了很多的颜色常量,比如:

  clWebYellow = TColors.Yellow;
  clWebDarkOrange = TColors.DarkOrange;
  clWebRed = TColors.Red;
  clWebDarkRed = TColors.DarkRed;
  clWebMaroon = TColors.Maroon;
  clWebIndianRed = TColors.IndianRed;
  clWebSalmon = TColors.Salmon;
  clWebCoral = TColors.Coral;
  clWebGold = TColors.Gold;
  clWebTomato = TColors.Tomato;
  clWebCrimson = TColors.Crimson;
  clWebBrown = TColors.Brown;
  clWebChocolate = TColors.Chocolate;
  clWebSandyBrown = TColors.SandyBrown;
  clWebLightSalmon = TColors.LightSalmon;
  clWebLightCoral = TColors.LightCoral;
  clWebOrange = TColors.Orange;
  clWebOrangeRed = TColors.OrangeRed;
  clWebFirebrick = TColors.Firebrick;
  clWebSaddleBrown = TColors.SaddleBrown;
  clWebSienna = TColors.Sienna;
  clWebPeru = TColors.Peru;
  clWebDarkSalmon = TColors.DarkSalmon;
  clWebRosyBrown = TColors.RosyBrown;

直接看上去比较抽象,不知道配色效果到底如何。一个一试试,比较麻烦。

如果当鼠标放在这个颜色里面的时候,能够有一个颜色预览的小圆点或者悬浮窗口出现多好啊。
很直观看到这些颜色的效果出来。

对于代码中,自己编写的代码,如果也支持就更好了。
类似这种颜色值:

$ff00ff
$3A66FD

颜色预览功能,Delphi 的 Experts 好像都没提供支持的。要是支持,就更加现代化一点了。
感谢cnpack 开发组。
Author: Passion    Time: 2018-7-28 10:58

比较麻烦。IDE的编辑器与组件板上的Hint都不走标准的Application的Hint,目前还没找到拦截并自定义的地方,还得花点时间去找。
Author: hypdelphi    Time: 2018-7-29 18:11

加油。辛苦了。越来越好
Author: Passion    Time: 2018-7-30 07:57

目前我们专家包有个浮动按钮的功能,针对选中的代码块能出现一个浮动按钮。考虑将颜色预览做在浮动按钮上。
Author: hypdelphi    Time: 2018-7-30 12:28

嗯。这个想法也比较快速。以后颜色选中,如果选的是颜色常量就可以预览到颜色。可以先做出来效果哦

也想到高版本的 Delphi 代码编辑器本身新加入的两个地方/细节,挺不错。可以借鉴一下:

就是,代码中只要是出现: break 或者 exit 的地方;这一行的行尾肯定会出现一个彩色的小箭头标记。
这个特性,不知道是哪个版本的 Delphi 才开始具备的。 -----》这个说明一点:Delphi 编辑器中可以加入彩色的小标记。
这个彩色的小标记,可以根据是 break 还是 exit ,会自动出现,删除不掉的,除非删除了 break 或 exit,就自动消失。
有多少个 break 或 exit,就有多少个彩色标记。

break,出现的彩色标记是绿色;
exit,出现的彩色标记是红色。

一点点思考而已。估计要实现这个效果可能会比较麻烦。谢谢你的努力付出~

[ 本帖最后由 hypdelphi 于 2018-7-30 12:31 编辑 ]
Author: Passion    Time: 2018-7-30 15:06

我们最新的每日构建版940已经实现了此功能,下载地址:http://www.cnpack.org/downbuilds.php 烦请下载试用一下?

Break和Exit后面出现箭头的功能,是IDE后来自带的Castalia实现的。CnPack IDE专家包的高亮代码部分也有类似的功能,对程序中改变流向的地方有高亮背景显示。不过没这么细致,还区分方向什么的。
Author: hypdelphi    Time: 2018-7-31 11:12

刚刚安装使用了。感觉浮动按钮,右边小色彩方块的预览效果挺好,也是非常巧妙的设计。可以。
浮动按钮,功能更丰富了。
对于 cl 开头的颜色常量和 $ 开头的颜色常量,都支持。以后要方便好多了。
Author: Passion    Time: 2018-8-1 22:12

昨天刚优化了一下,对于普通整型譬如0和1等,不当作颜色来解析。
Author: hypdelphi    Time: 2018-8-2 11:31

嗯,昨天也发现这个问题。不过看着也不影响啥。颜色的本质也是数字。就没反馈了。呵呵。

不过,如果对于 $3AF00A 这类颜色值,当双击它的时候,Delphi IDE 默认就只选中了除 $ 之后的后面部分,
那么,颜色不能识别出来。必须手动向前全部选中这个颜色才识别,选中区域必须是规范的颜色格式,才能识别出来。

$3AF00A 此类颜色常量的预览稍微麻烦了一丁丁点,多了一个选择操作,相较 clRed 颜色常量而言。

这个选中数字的效果,若是移加到 3AF00A 颜色常量的选择上,就好了。不过,数字的好判断,这种十六进制的不好判断了。也不知道想法对不对。

好的,我升级一下。
Author: Passion    Time: 2018-8-3 00:09

优化版本941还没发出来,不过你提到的$3AF00A 此类颜色常量已经处理好了。
Author: Passion    Time: 2018-8-3 10:24

941已出,烦请试用?
Author: hypdelphi    Time: 2018-8-3 17:44

嗯。941 已经下载使用了。
确实不错。clRed, $3ffabb 这两类的颜色,都已经支持的特别ok了。
而且对于, 123 之类的数字再也不会误当成颜色来处理了。

PS: 另外,我也做了一下极限测试,小细节,以后优化就更完美了。
对于 $3ffabb、$003ffabb 这类美元开头的颜色支持很好。
但是对于,(字符)长度较短的颜色常量,比如:

$3ffab
$3ffa
$3ff
$3f
$3

这几种极端颜色样式,当选中时刻还不支持,不过这种情形不常见。
已经够使用了。
Author: Passion    Time: 2018-8-3 23:27

目前是长度低于6的都不处理。极端的太短的忽略也就算了。
Author: hypdelphi    Time: 2018-8-4 16:20


Author: hypdelphi    Time: 2018-9-25 14:07

最近开始用 Sublime 编辑器写 HTML 、CSS 前端页面,
发现个不错的颜色插件: Color Highlighter。适用于 Sublime。
写CSS非常方便。

见下图:



color highlighter 官方介绍

若是该插件的部分功能,也可以应用到 Delphi 中,会非常不错了。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0