
Впрочем, любые пляски с бубном в _work_doSaveHiLight - не противоречат идеи экономии временных ресурсов в HiLight ...
Ну предположим, добавим "для синонимов" еще пару десятков "почти одинаковых" строк:
procedure THIHiLightMemo._work_doSaveHiLight;
var i:integer; TS:PStrList; _C:TColor;
str,fn: string;
begin
if not _prop_Hilight then exit;
fn := ReadString(_Data, _data_FileNameHiLight, _prop_FileNameHiLight);
//added by Galkov
TS := NewStrlist;
for i := 0 to HS.Count-1 do begin
str := HS.Items[i];
if TypeArr[i]<0 then str := '{' + str + '}';
str := str + '=';
_C := AttrArr[i].fontcolor;
if _C <> -1 then begin
if _C = clBlack then str := str + 'Black' else //+
if _C = clMaroon then str := str + 'Maroon' else //+
if _C = clGreen then str := str + 'Green' else //+
if _C = clOlive then str := str + 'Olive' else //+
if _C = clNavy then str := str + 'Navy' else //+
if _C = clPurple then str := str + 'Purple' else //+
if _C = clTeal then str := str + 'Teal' else //+
if _C = clGray then str := str + 'Gray' else //+
if _C = clSilver then str := str + 'Silver' else //+
if _C = clRed then str := str + 'Red' else //+
if _C = clLime then str := str + 'Lime' else //+
if _C = clYellow then str := str + 'Yellow' else //+
if _C = clBlue then str := str + 'Blue' else //+
if _C = clFuchsia then str := str + 'Fuchsia' else //+
if _C = clAqua then str := str + 'Aqua' else //+
if _C = clWhite then str := str + 'White' else //+
str := str + int2str(_C);
end;
if fsUnderline in AttrArr[i].fontstyle then str := str + '=U';
if fsBold in AttrArr[i].fontstyle then str := str + '=B';
if fsItalic in AttrArr[i].fontstyle then str := str + '=I';
if fsStrikeOut in AttrArr[i].fontstyle then str := str + '=S';
TS.Add(str);
end;
// end of adding
TS.SaveToFile(fn); TS.free;
Focused_CaretToView;
end;
Между прочим, в Kol определены еще 6 синонимов:
clLtGray = TColor($C0C0C0);
clDkGray = TColor($808080);
clMoneyGreen = TColor($C0DCC0);
clSkyBlue = TColor($F0CAA6);
clCream = TColor($F0FBFF);
clMedGray = TColor($A4A0A0);
И вот, недосмотрел.... Логичнее мне было было использовать clNone, а не -1