https://github.com/jdg/MBProgressHUDの HUD 機能をDelphi で firemonkey を使用して複製したいと考えています。
これは、iPhone では次のように表示されます。
主な問題は、フォームを半透明にし、境界線を完全に削除する方法です。
https://github.com/jdg/MBProgressHUDの HUD 機能をDelphi で firemonkey を使用して複製したいと考えています。
これは、iPhone では次のように表示されます。
主な問題は、フォームを半透明にし、境界線を完全に削除する方法です。
Firemonkey HD フォームを作成し、 に設定し、 にFill.Kind
設定bkNone
しFill.Color
ますNull
。さらに、そのTransparency
プロパティをTrueに設定するとBorderStyle
、bsNone
.
TRectangle (または任意の形状) を作成し、Stroke.Kind
プロパティを に設定しますbkNone
。に設定しFill.Color
ます。0.5Gray
に設定します。Opacity
フォームとして両方の親を持つTAniIndicator
andを作成します。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
、インジケーターの作成ではなく関連していました)。