0

TEditフォーム上で動的に作成される、拡張するカスタム Firemonkey コントロールがあります。次を使用して作成するときにフォントサイズを設定しようとしています:

Search->Font->Size = 15;

ただし、コントロールのフォントは変更されません。

プログラムでフォントサイズを変更できるフォームに既にある同じタイプの別のコントロールがあります。このコントロールで気がついたのは、プロパティSizeで設定が false に設定されている場合はフォントを変更できるのに対して、設定が true に設定されている場合はフォント サイズを変更できないことです。 StyledSettingsSize

そのため、カスタム コントロールを作成するときに、プログラムでSizeプロパティを false に設定しようとしていますが、その方法がわかりません。

私が試してみました:

Search->StyledSettings.Size = false;

Search->StyledSettings = ListBox->StyledSettings - [TStyledSetting.ssSize];

どちらもコンパイルさえしません。実行時にカスタム コントロールでこのプロパティが確実に削除されるようにするにはどうすればよいですか? または、フォントを設定する別の方法はありますか?

4

1 に答える 1

3

ただし、コントロールのフォントは変更されません。

プログラムでフォントサイズを変更できるフォームに既にある同じタイプの別のコントロールがあります。このコントロールで、StyledSettings プロパティで Size 設定が false に設定されている場合はフォントを変更できますが、Size 設定が true に設定されている場合はフォント サイズを変更できないことに気付きました。

これは文書化された動作です:

StyledSettings プロパティの使用

TTextSettings タイプ オブジェクトのテキスト表現プロパティを変更する場合、(前の例の TextSettings.Font.Size プロパティの) プロパティの値を変更する場合、オブジェクトのビューの実際の変更は、ITextSettings が.StyledSettings プロパティに TStyledSetting.Size 定数が含まれていません。TStyledSetting 定数と TTextSettings プロパティの関係」の表に、TTextSettings テキスト表現プロパティの処理を制御する TStyledSetting 定数を示します。

FMX.Graphics.ITextSettings

プロパティ (たとえば、TextSettings.FontColor プロパティ) の値を変更する場合、StyledSettings プロパティに TStyledSetting.FontColor 定数が含まれていない場合にのみ、コントロールの表示が実際に変更されることに注意してください。次の表は、どの TStyledSetting 定数が、どの TTextSettings テキスト表現プロパティの処理を制御するかを示しています。

TStyledSetting 定数と TTextSettings プロパティの関係

TStyledSetting 依存 TTextSettings 意味
   定数プロパティ

Family TFont.Family フォント名。
Size TFont.Size フォント サイズ。
Style TFont.Style フォント スタイル (斜体、太字)。
FontColor FontColor フォントの色。
その他 HorzAlign、VertAlign、テキストの配置方法と表示方法。  
                 トリミング、ワードラップ。

そのため、カスタム コントロールを作成するときに、プログラムで Size プロパティを false に設定しようとしていますが、その方法がわかりません。

C++ の正しい構文は次のとおりです。

Search->StyledSettings = Search->StyledSettings >> TStyledSetting::Size;
于 2015-06-12T21:39:07.117 に答える