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

Управление окном заставки


Steepe_Hare

Вопрос

В настройках проекта можно поставить галку "Include splash image" и выбрать картинку для заставки. А как получить доступ к окну заставки, то есть, например, динамически менять текст там?

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

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

  • 1
  • Модераторы
1 час назад, Steepe_Hare сказал:

В настройках проекта можно поставить галку "Include splash image" и выбрать картинку для заставки. А как получить доступ к окну заставки, то есть, например, динамически менять текст там?

никак

если хотите менять текст и прочее, создайте форму сами и сделайте её главной. там и заставку ставьте и текст и прочее

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

главное - главную форму делать из трех компонентов - бэкграунд, лого и кнопка Начать

тогда все будет очень хорошо и быстро

Ссылка на комментарий
  • 0
1 час назад, krapotkin сказал:

главное - главную форму делать из трех компонентов - бэкграунд, лого и кнопка Начать

тогда все будет очень хорошо и быстро

А вторая форма уже типа главная (основное окно программы)?

Вы ее как форму создаете или на главной (которая заставка) фрейм создаете?

Изменено пользователем wamaco
Ссылка на комментарий
  • 0

тут все непросто

если нет связи например, или еще какая-то совсем беда, остаемся на первой

если не залогинены, загружаю форму логина

если залогинены - одну из двух "главных" (по смыслу, не по делфи) форм приложения

при этом на каждой из форм есть и фреймы и всякая другая беда

Ссылка на комментарий
  • 0
  • Модераторы
8 минут назад, Rusland сказал:

Как это делается? По FormShow идет вызов другой формы или по FormActivate?

Тут зависит от пухлости формы...

если форма которую нужно показать после сплеша содержит много компонентов, то желательно её засунуть в OnActivate

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

у меня еще хитрее ) могу сейчас чуть-чуть приврать, давно ваял, но общий смысл...

сделан поток, который стартует в FormShow, все проверяет, и возвращает все результаты проверок

соответственно, в OnThreadTerminate стартует ShowModal формы логина

но в большинстве мест все-таки загрузки профиля и т.п. идут в главном потоке под диалогом из fgx ...

Изменено пользователем krapotkin
Ссылка на комментарий
  • 0
В 14.12.2016 в 08:19, Rusland сказал:

Как это делается? По FormShow идет вызов другой формы или по FormActivate?

 

Может кому пригодится.

1. В приложении по умолчанию главной формой, т.е. формой, которая автоматически создается при старте, является форма логина. Т.е. именно она появляется первой.

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

 

procedure SetAsMainForm(aForm:TForm);
 var
   P: Pointer;
 begin
   P := @Application.Mainform;
   Pointer(P^) := aForm;
 end;

 

когда проверили логин/пароль и убедились, что пользователь авторизован, создаём форму и делаем её главной, а форму логина закрываем:

procedure TfmLogin.btnOkClick(Sender: TObject);
begin
  if edPass.Text = qUserspassword.AsString then
  begin
    UserData.ID     := qUsersid.AsInteger;
    UserData.Name   := qUsersname.AsString;
    UserData.Group  := qUsersid_group.AsInteger;
    fmMain := TfmMain.Create(Application);
    fmMain.Show;
    SetAsMainForm(fmMain);
    close;
  end
  else
  begin
    lbInfo.Text := 'Ошибка. Пароль неверный.';
  end;

end;

 

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

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

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

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

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

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

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

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

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

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

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