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

Баг с LoginForm


patrikey

Вопрос

Добрый день.

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

Всё реализовано таким образом:

unit Main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs;

type
  TMainForm = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.fmx}

end.
unit Login;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.Edit;

type
  TLoginForm = class(TForm)
    Edit1: TEdit;
  private
    { Private declarations }
  public
  class function Execute: Boolean;  { Public declarations }
  end;

var
  LoginForm: TLoginForm;

implementation

{$R *.fmx}

{ TForm2 }

class function TLoginForm.Execute: Boolean;
begin
 LoginForm:= TLoginForm.Create(nil);
 try
  Result:= LoginForm.ShowModal = mrOk;
 finally
  LoginForm.Free;
 end;
end;

end.
program LoginBug;

uses
  System.StartUpCopy,
  FMX.Forms,
  Main in 'Main.pas' {MainForm},
  Login in 'Login.pas' {LoginForm};

{$R *.res}

begin
 if TLoginForm.Execute then begin
 Application.Initialize;
 Application.CreateForm(TMainForm, MainForm);
  Application.Run;
 end;
end.

Но при запуске программы форма логина выглядит неактивной и отсутствует каретка в Edite.

Кто-нибудь сталкивался с таким?

Login.7z

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

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

  • 0

не хочет ) иначе бы все работало. а цель не в том ))))

а вообще я за то чтобы вызывать форму логина из конструктора главной формы.

в связи с тем, что концепция программы на делфи очень связана с этой главной формой

http://www.cyberforum.ru/blogs/469693/blog4874.html

Ссылка на комментарий
  • 0
В 02.06.2018 в 07:14, Равиль Зарипов (ZuBy) сказал:

А вы не хотите вынести Application.Initialize вне блока begin end?

program LoginBug;

uses
  System.StartUpCopy,
  FMX.Forms,
  Main in 'Main.pas' {MainForm},
  Login in 'Login.pas' {LoginForm};

{$R *.res}

begin
 if TLoginForm.Execute then begin
 Application.Initialize;
 Application.CreateForm(TMainForm, MainForm);
 Application.Run;
 end;
end.

Вы имеете ввиду выделенные begin end?

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

а потом мучаться с тем, что для делфи приложения первая форма и есть главная

зачем рассыпать гвоздики в местах парковки?

если вы создаете логин в конструкторе главной формы, то она так и не создастся, если после логина - Abort

так что какая разница ??

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

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

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

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

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

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

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

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

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

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

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