AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
Delphi2010 フォント選択の画面 2010/11/03
 
前回は[Dialogs]内の「OpenTextFileDialog」(「テキストファイルを開く」画面)および「SaveTextFileDialog」(「テキストファイルを保存」画面)について見ましたので今回も同じく[Dialogs]内の「FontDialog」(「フォント選択」画面)をみてみます。「フォント選択」画面は Delphi6 にもあります。

 
「テスト21」を開いてそこに配置してみます。1つ目ですので Nameプロパティは「FontDialog1」となります。アイコン絵となりますが実行時には「フォント選択」画面が表示されます。ボタンを1つ追加します。

 
「フォント選択」画面は、画面上の文字をどのようなフォントで表示するか、とか、印刷を行う際にどのようなフォントを利用するか等のような場合に利用出来ます。ここではメモの文字のフォントを変更できるようにしてみます。ボタン[文字](Button3)をクリックした時の処理を記述します。
procedure TForm1.Button3Click(Sender: TObject);
begin
 FontDialog1.Font := Memo1.Font ;
 if (FontDialog1.Execute) then begin
  Memo1.Font := FontDialog1.Font ;
 end;
end;
フォント選択画面での初期設定値には、Fontプロパティへ各値を指定すれば良いです。そして、「開く」「保存」画面同様、フォント選択画面を表示(実行)するには Executeメソッドを利用します。[OK]ボタンをクリックすると「True」値が返ってきます。[キャンセル]ボタンをクリックするか右上の[×]をクリックすると「False」値が返ってきます。フォント選択画面で指定した値は、Fontプロパティで取得できます。保存・コンパイル(再構築)・実行してみます。

文章を入力し、[文字]ボタンをクリック


フォント選択画面表示
Windows色や任意色を使っている場合、
色は正しく受け取れない様子です


いろいろと変更してみて[OK]クリック


メモの文字のフォントが変更されました
 
フォント選択を行う事によって文字の大きさ等が変化する場合も多いので、例えばコンポーネント上の文字のフォントを変更するような場合などは、文字の大きさが大きくなったり小さくなったりしても、画面上でのバランスがおかしくならないように注意する必要があるかもしれません。例えば、AutoSizeプロパティを「True」にしておくとか、隣り合うコントロール同士の間隔を管理するようにする等、色々あるかもしれません。
例えば、ボタンのフォントも変更するようにしてみます。
procedure TForm1.Button3Click(Sender: TObject);
begin
 FontDialog1.Font := Memo1.Font ;
 if (FontDialog1.Execute) then begin
  Memo1.Font := FontDialog1.Font ;
  Button1.Font := FontDialog1.Font ;
  Button2.Font := FontDialog1.Font ;
 end;
end;
 





ボタンの文字の色は指定しても反映されません。文字の大きさが大きくなりすぎてボタン内に納まりきらなくなっています。こういった場合、ボタンを大きくするのか、ボタンの文字の大きさの最大値(併せて最小値も)を決めておくか、敢えてそのままにするか等のような事は考えておく必要があるでしょう。
 
フォント選択画面に表示されるフォント名は、このプログラムを実行するパソコンのWindowsでセット/別途インストールされたフォントが表示されます。Deviceプロパティで画面用フォント「fdScreen」を表示するようにするか(デフォルト)、印刷用フォント「fdPrinter」を表示するようにするか、両方「fdBoth」を表示するかを選択します。フォントには、ビットマップフォント(ドットフォント)、TrueTypeフォント等があります。「@」「@」付のフォントは縦書き用のフォントです。記号用フォントや絵文字用フォント、固定幅フォント(フィックスフォント)やプロポーショナルフォント、欧文フォントや和文フォント、等等あります。文字化け等の状態にならないよう注意して下さい。
 
Optionsプロパティにて、フォント選択画面の外観・動作等の設定を行う事が出来ます。以下、ヘルプより。
fdAnsiOnlyWindows 文字セットを使用するフォントだけを表示する。シンボルフォントはダイアログボックスに表示されない
fdApplyButtonOnApply イベントハンドラに関係なく,ダイアログボックスに[適用]ボタンを表示する
fdEffects[文字飾り]チェックボックス(取り消し線や下線)および[色]リストボックスをダイアログボックスに表示する
fdFixedPitchOnlyダイアログボックスに固定幅フォントだけを表示する。プロポーショナルフォントや,スタイルヘッダーで固定ピッチフラグがセットされていない TrueType フォントは表示されない
fdForceFontExistダイアログボックスに表示されている([フォントの指定]コンボボックスのリストにある)フォントの入力だけをユーザーに許可する。それ以外のフォント名をユーザーが入力しようとすると,エラーメッセージが表示される
fdLimitSizeMaxFontSize と MinFontSize プロパティを有効にし,これらのプロパティに値が代入されていれば,ダイアログボックスのフォントサイズの範囲を制限する
fdNoFaceSel[フォントの指定]コンボボックスに選択済みのフォント名を表示せずにダイアログボックスを開く
fdNoOEMFontsダイアログボックスのコンボボックスから OEM フォントを削除する。OEM 以外のフォントだけを表示する
fdScalableOnlyダイアログボックスにスケーラブルフォントだけを表示する。それ以外の(ビットマップ)フォントはリストから削除される
fdNoSimulationsフォント定義ファイルによって直接サポートされているフォントおよびフォントスタイルのみ表示する。GDI 合成の太字および斜体スタイル(ビットマップフォントの場合)は表示されない
fdNoSizeSel[サイズ]コンボボックスに選択済みのサイズを表示せずにダイアログボックスを開く
fdNoStyleSel[スタイル]コンボボックスに選択済みのスタイルを表示せずにダイアログボックスを開く
fdNoVectorFontsダイアログボックスのコンボボックスからベクタフォントを削除する。ベクタ以外のフォントだけを表示する(ベクタフォントは Roman や Script などの Windows 1.0 フォントで,ペンプロッタの出力に似ている)
fdShowHelp[ヘルプ]ボタンがダイアログボックスに表示される
fdTrueTypeOnlyダイアログボックスに TrueTypeフォントだけを表示する。ほかのフォントは表示されない
fdWysiwygプリンタと画面の両方に使用可能なフォントだけを表示する。デバイス固有のフォントはダイアログボックスに表示されない
 
 
<オブジェクトインスペクタ>での内容は以下のようになっています。


 

 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/11/02
 2010/11/03
▼2010/11/04
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.