• 0
patrikey

Баг с LoginForm

Вопросы

Добрый день.

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

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

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

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


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

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

  • 0

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

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

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

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

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


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

это запускается в Windows ?

Да.

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


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

тогда просто сделайте как я советовал по ссылке

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


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

тогда просто сделайте как я советовал по ссылке

Просто хочется создать LoginForm до создания MainForm.

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


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

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

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти

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

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