Создайте свою форму Firemonkey HD, установите Fill.Kind
на bkNone
и Fill.Color
на Null
.Кроме того, установите для свойства Transparency
значение True, а для BorderStyle
- bsNone
.
Создайте TRectangle (или любую форму) и установите для свойства Stroke.Kind
значение bkNone
.Установите Fill.Color
на Gray
, Opacity
на 0,5.
Создайте TAniIndicator
и TLabel
с родителем обоих в качестве формы.Это Opacity
остается на уровне 1,0.По желанию, также создайте 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
) в качестве дочернего компонента.Затем вы вызываете созданную вами процедуру с допустимой переменной режима, и она будет работать так, как вы указали в коде.Достаточно просто добавить больше режимов, и я сделал нечто похожее с одним из моих собственных приложений (хотя это было связано с TRectangle
, а не с созданием индикатора).