3

https://github.com/jdg/MBProgressHUDの HUD 機能をDelphi で firemonkey を使用して複製したいと考えています。

これは、iPhone では次のように表示されます。

HUD

主な問題は、フォームを半透明にし、境界線を完全に削除する方法です。

4

1 に答える 1

4

Firemonkey HD フォームを作成し、 に設定し、 にFill.Kind設定bkNoneFill.ColorますNull。さらに、そのTransparencyプロパティをTrueに設定するとBorderStylebsNone.

TRectangle (または任意の形状) を作成し、Stroke.Kindプロパティを に設定しますbkNone。に設定しFill.Colorます。0.5Grayに設定します。Opacity

フォームとして両方の親を持つTAniIndicatorandを作成します。1.0TLabelのままです。Opacity必要に応じて、 も作成し、TImageとまったく同じサイズと位置にしTAniIndicatorます。

そこからTFloatAnimation、イメージを (目盛りなどに) 変更したいときに TAniIndicator を操作し、ラベル テキストを単に表示したいメッセージに変更するだけです。理想的には、変数として文字列または整数を受け入れるプロシージャを作成し、それに一致するようにテキストとインジケータ/イメージを変更するだけです。例えば;

Procedure TForm1.Process(Mode : Integer);
Begin
 if Mode = 1 then
 begin
  AniIndicator1.Enabled := True;
  AniIndicator1.Visible := True;
  Image1.Visible := False;
  Label1.TextAlign := TTextAlign.taCenter; // Must be called to reset alignment
  Label1.Text := 'Loading';
 End
 else if Mode = 2 then
 Begin
  AniIndicator1.Enabled := False;
  AniIndicator1.Visible := False;
  Label1.TextAlign := TTextAlign.taCenter; // Must be called to reset alignment
  Image1.Bitmap.LoadFromFile('Tick.png');
  Image1.Visible := True;
  Label1.Text := 'Complete!';
 end;
end;

次に、メイン フォームに tpanel を作成し、上記のフォーム ( を含むTAniIndicator, label, and rectangle) を子コンポーネントとして追加します。次に、作成したプロシージャを有効なモード変数で呼び出すと、コードで示したとおりに実行されます。モードを追加するのは簡単で、私自身のアプリケーションの 1 つで同様のことを行いました (ただしTRectangle、インジケーターの作成ではなく関連していました)。

于 2012-05-09T18:38:31.860 に答える