ある掲示板で出てた質問の解答を作成したので、それをそのまま tips 化(笑)
この問題は、集合型をどうやってレジストリに書き込むかという問題である。
ヘルプをちまちま見たけど、一発で切りぬける手段が見つからなかったので、何も考えずに Integer 辺りに変換すりゃ良いやということにした。
const
FontStyleToInt: array[TFontStyle] of Integer = (1, 2, 4, 8);
function FontStylesToInt(FontStyles: TFontStyles): Integer;
var
Style: TFontStyle;
begin
Result := 0;
for Style := Low(TFontStyle) to High(TFontStyle) do
if Style in FontStyles then Result := Result + FontStyleToInt[Style];
end;
function IntToFontStyles(I: Integer): TFontStyles;
var
Style: TFontStyle;
begin
Result := [];
for Style := Low(TFontStyle) to High(TFontStyle) do
if (FontStyleToInt[Style] and I) <> 0 then Include(Result, Style);
end;
集合型毎にこんなもの作ってたらたまんないなあ。
なんかもっとスマートな方法はないもんかねえ(ふぅ)