Сбой мобильного приложения Android при нажатии кнопки на следующем экране

#android #delphi #crash #rad-studio

Вопрос:

Я новичок в Delphi и создаю простое мобильное приложение для Android с экраном входа и регистрации. Когда я запускаю приложение на рабочем столе win 64, оно работает нормально, но когда я запускаю его на своем телефоне (android 64, Samsung A5) и нажимаю кнопку регистрации, чтобы перейти к экрану регистрации с экрана входа в систему, происходит сбой. Код кнопки:

 begin
  Application.CreateForm(TRegister_form, Register_form);
  Register_form.Show;
  Application.MainForm := Register_form;
  Login_form.Close;
  Login_form.Free;
  Login_form := nil;
end;
 

Есть ли какие-либо идеи о лучшем способе или почему он выходит из строя?

Ответ №1:

Если вы посмотрите на документацию для MainForm, вы увидите, что MainForm доступна только для чтения во время выполнения, и поэтому ее нельзя изменить

MainForm не может быть изменен во время выполнения (он доступен только для чтения во время выполнения).

Вам придется использовать другой подход для достижения желаемого. В Интернете есть много примеров того, как обрабатывать формы входа или заставки в Delphi. Здесь даже есть некоторые ответы на вопросы по этой же теме в Stack Overflow.

Кроме того, первая форма, созданная Application.CreateForm автоматически, становится the Application.MainForm , поэтому ваши попытки сделать это в опубликованном вами коде в любом случае были бы бессмысленными — Register_Form это уже the Application.MainForm .