Вопрос 1. Как закрыть приложение из модального окна на андроиде? Делаю так:
procedure ExitQwery(MainSelf: TForm);
var
FormExitQwery: TFormExitQwery;
begin
Application.CreateForm(TFormExitQwery, FormExitQwery);
FormExitQwery.BringToFront;
FormExitQwery.StyleBook := MainSelf.StyleBook;
FormExitQwery.Label1.Width := 1;
FormExitQwery.ShowModal(
procedure(Result: TModalResult)
begin
if Result = mrOk then
begin
FormExitQwery.Free;
MainSelf.Close;
MainSelf.Free;
Application.Terminate;
end
else if Result = mrCancel then
begin
FormExitQwery.CloseModal;
FormExitQwery.Free;
end;
end);
end;
procedure TFormExitQwery.Close(Sender: TObject; var Action: TCloseAction);
begin
Action := TCloseAction.caFree;
end;
end.
, но приложение не закрывается.
Вопрос 2. По нажатию на TImage и по таймеру создаются два модальных окна
procedure ShowMessageModal(Self: TForm; const AMessage: string;
ADefProc: TProc);
var
locMessageForm: TMessageForm;
begin
Application.CreateForm(TMessageForm, locMessageForm);
locMessageForm.BringToFront;
// locMessageForm.ModalResult := mrOk;
locMessageForm.CurWidth := false;
locMessageForm.SelfWidth := Self.Width;
locMessageForm.StyleBook := Self.StyleBook;
// locMessageForm.Parent := Self;
locMessageForm.MessText.BeginUpdate;
locMessageForm.MessText.Text := AMessage;
locMessageForm.MessText.EndUpdate;
locMessageForm.ButtonHeight := Round(locMessageForm.Buttton.Height);
locMessageForm.ButtonWidth := Round(locMessageForm.Buttton.Width) + 24;
locMessageForm.MessText.Width := 1;
locMessageForm.Buttton.ModalResult := mrOk;
locMessageForm.showModal(
procedure(Result: TModalResult)
begin
if Result = mrOk then
begin
ADefProc();
locMessageForm.CloseModal;
end;
end);
end;
end.
Если на экране смартфона уже есть окно от нажатия на TImage, то окно по таймеру уже не показывается. Как быть?
Вопрос
Ллирик
Вопрос 1. Как закрыть приложение из модального окна на андроиде? Делаю так:
procedure ExitQwery(MainSelf: TForm); var FormExitQwery: TFormExitQwery; begin Application.CreateForm(TFormExitQwery, FormExitQwery); FormExitQwery.BringToFront; FormExitQwery.StyleBook := MainSelf.StyleBook; FormExitQwery.Label1.Width := 1; FormExitQwery.ShowModal( procedure(Result: TModalResult) begin if Result = mrOk then begin FormExitQwery.Free; MainSelf.Close; MainSelf.Free; Application.Terminate; end else if Result = mrCancel then begin FormExitQwery.CloseModal; FormExitQwery.Free; end; end); end; procedure TFormExitQwery.Close(Sender: TObject; var Action: TCloseAction); begin Action := TCloseAction.caFree; end; end.
, но приложение не закрывается.
Вопрос 2. По нажатию на TImage и по таймеру создаются два модальных окна
procedure ShowMessageModal(Self: TForm; const AMessage: string; ADefProc: TProc); var locMessageForm: TMessageForm; begin Application.CreateForm(TMessageForm, locMessageForm); locMessageForm.BringToFront; // locMessageForm.ModalResult := mrOk; locMessageForm.CurWidth := false; locMessageForm.SelfWidth := Self.Width; locMessageForm.StyleBook := Self.StyleBook; // locMessageForm.Parent := Self; locMessageForm.MessText.BeginUpdate; locMessageForm.MessText.Text := AMessage; locMessageForm.MessText.EndUpdate; locMessageForm.ButtonHeight := Round(locMessageForm.Buttton.Height); locMessageForm.ButtonWidth := Round(locMessageForm.Buttton.Width) + 24; locMessageForm.MessText.Width := 1; locMessageForm.Buttton.ModalResult := mrOk; locMessageForm.showModal( procedure(Result: TModalResult) begin if Result = mrOk then begin ADefProc(); locMessageForm.CloseModal; end; end); end; end.
Если на экране смартфона уже есть окно от нажатия на TImage, то окно по таймеру уже не показывается. Как быть?
Ссылка на комментарий
21 ответ на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.