Перейти к содержанию
Fire Monkey от А до Я
  • 0

Курсор ожидания выполнения


rustam_d

Вопрос

Кто нить делал сабж в FMX? Интересует красивое решение.

На vcl это конечно Screen.Cursor типа crHourglas, crSqlWait и т.к.

 

В своем проекте сделал пока на Toast от Roland Kossow.

Хоть и работает Но чую отдает глупостью...

Может какие то анимации лучше юзать, но незнаю как.

 

procedure TfmMain.ShowText(const aTxt: string; const aType: byte = 0);
begin
  case aType of
    0: tsMain.Duration := 3000;
    1: tsMain.Duration := 60000;
    2: tsMain.Duration := 1;
  end;
  tsMain.Now(aTxt);
end;
 
  ShowText('Загрузка...',1);
  try
...долгая процедура
  finally
    ShowText('Загрузка...',2);
  end;
 
 

 

 

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Спасибо!

Юзать так вроде надо.
  AniIndicator1.Visible := True;
  AniIndicator1.Enabled := True;
 
Вопрос, а как его показывать поверх всех окон? Он сам по себе stayontop? Или через popup ?
Ссылка на комментарий
  • 0

Управление осуществляется св-вом Enabled.

Чтобы было поверх всех окон, можно бросить его на прозрачную форму со стилем stayontop.

Ну или прямо на форме приложения выводить.

Ссылка на комментарий
  • 0
  • Модераторы

TRectange

   - TAniIndicator -> VertCenter

   - TLabel = Загрузка  -> MostBottom

 

Выставь высоту и ширину, цвет для TRectangle

 

При показе

TRectange.Visible:= true;
TRectange.BringToFront;
TAniIndicator.Enabled := true;

При скрытий

TAniIndicator.Enabled := false;
TRectange.Visible:= false;
Ссылка на комментарий
  • 0

 

TRectange

   - TAniIndicator -> VertCenter

   - TLabel = Загрузка  -> MostBottom

Выставь высоту и ширину, цвет для TRectangle

 

 

ZuBy спасибо за идею!

Вот мой код для рантайма. На винде великовато смотрится, а в андроид самое то.

 

  FMX.Objects, FMX.StdCtrls, FMX.Controls.Presentation;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    pRect: TRoundRect;
    pInd: TAniIndicator;
    pIndLabel: TLabel;
    procedure ShowWait(const aWait: Boolean);
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.fmx}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  pRect := TRoundRect.Create(Self);
  pRect.Height := 50;
  pRect.Width := 150;
  pRect.Position.X := (Self.Width/2)-pRect.Width/2;
  pRect.Position.Y := (Self.Height/2)-pRect.Height;
  pRect.Parent := Self;
  //pRect.Fill.Color := TAlphaColorRec.Steelblue; //Цвет фона если нужен
  pRect.Stroke.Color := pRect.Fill.Color; //не хочу окантовку
  pRect.Visible := false;
  pInd := TAniIndicator.Create(pRect);
  pInd.Parent := pRect;
  pInd.Align := TAlignLayout.Top;
  pInd.Height := 25;
  pIndLabel := TLabel.Create(pRect);
  pIndLabel.Parent := pRect;
  pIndLabel.Align := TAlignLayout.Bottom;
  pIndLabel.TextAlign := TTextAlign.Center;
  pIndLabel.Text := 'Загрузка...';
end;
 
procedure TForm1.ShowWait(const aWait: Boolean);
begin
  pRect.Visible := aWait;
  pInd.Enabled := aWait;
  if aWait then pRect.BringToFront;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowWait(not pRect.Visible);
end;
Изменено пользователем rustam_d
Ссылка на комментарий
  • 0

до fgx не дошел ) но может и поюзаю позже как приспичит, опыт на fmx 2 мес ), под OSX и Винду на фмх не требуют заказчики пока...иоса и дроида заглаза.

вот думаю на базе сабжа сделать Toast, добавить просто таймер...делал так кто?

Ссылка на комментарий
  • 0

нет нативно только для Android, в IOS есть Toast?

ну вот и я о том же...браина код то все знают...а робин сделал как у нас по сабжу..)

так что через сабж стоит самому.

Ссылка на комментарий
  • 0
  pIndLabel.Text := '      Загрузка...'; //пробелы...т.к. кривовато

а чем HorzAlign не угодил?

 

ZuBy, вопрос не решен с курсором...решение отменил.

На простое нажатие ShowWait работает норм.

А если где то в операциях загрузки чего то из БД или еще откуда...ничего не появляется.

Пробовал дописать pRect.UpdateRect и pRect.Repaint не помогает.

Походу через лайоты как то надо решать вопрос...

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...