• 0
Steepe_Hare

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

Вопросы

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 ответов на этот вопрос

  • 1
1 час назад, Steepe_Hare сказал:

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

никак

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
1 час назад, krapotkin сказал:

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

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

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

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

Изменено пользователем wamaco

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
9 часов назад, krapotkin сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 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;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


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

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