1

コンポーネントを使用していてTJvWizard、ヘッダーのタイトル フォントを Segoe UI Light を使用するように設定したいと考えています。私のフォームOnCreateメソッドでは、次のことを行っています。

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to JvWizard1.PageCount - 1 do
  begin
    JvWizard1.Pages[i].Header.ParentFont := false;
    JvWizard1.Pages[i].Header.Title.Font.Size := 16;
    JvWizard1.Pages[i].Header.Title.Font.Name := 'Segoe UI Light';
  end;
end;

このコードはフォント サイズを正しく設定しますが、フォントは Segoe UI Light に変更されず、代わりに親フォント (Segoe UI) を使用し続けます。

回避策として、私はこれをしました:

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
  f: TFont;
begin
  f := TFont.Create;
  f.Name := 'Segoe UI Light';
  f.Size := 16;
  for i := 0 to JvWizard1.PageCount - 1 do
  begin
    JvWizard1.Pages[i].Header.Title.Font.Assign(f);
  end;
  f.Free;
end;

これはうまくいきますが、私には変なにおいがします。また、割り当てがどのように機能するかわかりません。それは参照を保持していますか?f.Freeラインを維持する必要がありますか?

編集:追加情報として、Office 2013 にこれらのフォントのかなり新しいバージョンをインストールしました。また、InkScape などの他のアプリケーションで Segoe UI Light を選択できないことも確認しました。

また、Delphi プロパティ エディタでは、フォント選択ダイアログを使用して選択できますが、「Segoe UI Light」という名前は表示されません。代わりに、Segoe UI を選択する必要があり、Font Style リストで Light スタイルを選択します。

フォントダイアログ

また、ドロップダウン リストを使用してフォント名を選択しても機能しません。

プロパティ インスペクターのフォント名が設定されていません

したがって、これは私が持っているフォントのバージョンといくつかの拡張プロパティに関係していると思います (実際、私の Fonts フォルダーには Segoe UI しか表示されず、それを開くと 10 個のウィンドウが開きます)。

Windows Font フォルダー内の Segoe UI

私はまだ回避策を探しています(これは関連しているように聞こえますが、彼らは従いませんでした)

4

0 に答える 0