コンポーネントを使用していて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 個のウィンドウが開きます)。
私はまだ回避策を探しています(これは関連しているように聞こえますが、彼らは従いませんでした)