フォントスタイルをレジストリに書き込みたい

ある掲示板で出てた質問の解答を作成したので、それをそのまま 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;

集合型毎にこんなもの作ってたらたまんないなあ。
なんかもっとスマートな方法はないもんかねえ(ふぅ)


Return index page