1

私は Firemonkey を使い始めたばかりで、スタイルの使用法に関してまだ学ぶべきことがたくさんありますが、理解できないことがあります。

スタイルを使用して TListView をシミュレートする方法を学びました。リスト アイテムにプログレス バーを追加するスタイルを作成したので、これを ListItemStyleProgressBar と呼びましょう。

ここで、フォームに 2 つの ListView インスタンスが必要です。1 つは TListItem のフォントが赤で、もう 1 つはフォントが青です。これを達成する方法は?ListItemStyleProgressBar (ListItemStyleProgressBarRed) から「継承」するスタイルを作成できますか?

次に、これら 2 つのリストビュー インスタンスを「スタイル」できるようにしたいので、明るい背面を示すスタイルと暗い背面を示すスタイルを用意します。

私を混乱させるのは、機能を追加する (TProgressBar を TListItem に追加する) だけでなく、この追加された機能のスタイリングを行うためにスタイリングが必要であるように思われることです。

ここで何が欠けているのか誰か教えてもらえますか?

4

1 に答える 1

0

いいえ。スタイルの継承メカニズムはありません。問題を解決するには、次の 2 つの方法があります。

1) 2 つ (またはそれ以上) の非常に類似したスタイルを作成して、それぞれの「外観」を表現します。2) OnApplyStyleLookup メソッドを使用するか、カスタム コントロールがある場合は ApplyStyle メソッドをオーバーライドして、実行時に変更を行います。

後者の場合、次のようなものが必要になります。

procedure TMyClass.ApplyStyle;
var O: TFMXObject;
begin
  O := FindStyleResource('background');
  if O is TRectangle then
    TRectangle(O).Fill.Color := claRed;
end;
于 2013-05-07T11:49:22.217 に答える