2016-06-02 5 views
1

Delphi Berlin 10,1 + iOS64 = ОшибкаRAD Studio 10.1 Berlin + iOS64 = Ошибка

App закрывается без сообщения, просто оставьте сообщение в журнале прошивке: "предупреждение Полученной памяти"

Кодекс делает только это:

var 
   frm: TMyForm; 
begin 
   frm: = TMyForm.Create (nil); 
   frm.ShowModal; 
   frm.Free; 
end; 

Если нажать на кнопку около 8 раз это, когда он дает ошибку.

Кто-нибудь знает, как решить эту проблему ???

ответ

4

От documentation:

Внимание: Модальные диалоговые окна не поддерживаются в Android приложений. Вместо того, чтобы звонить ShowModal, вы должны позвонить Show и вернуть форму и позвонить вашему мероприятию. Мы рекомендуем не использовать модальные диалоговые окна на любой из мобильных платформ (iOS и Android), поскольку это может привести к неожиданному поведению. Избегание использования модальных диалоговых окон устраняет потенциальные проблемы при отладке и поддержке ваших мобильных приложений.

Правильный путь в FireMonkey, чтобы показать диалог modal является:

procedure MyCurrentForm.MyButtonClick(Sender: TObject); 
var 
    dlg: TMyModalForm; 
begin 
    // Create an instance of a form. 
    dlg := TMyModalForm.Create(nil); 

    // Configure the form. For example, give it a display name. 
    dlg.Caption := 'My Modal Dialog Box'; 

    // Show your dialog box and provide an anonymous method that handles the closing of your dialog box. 
    dlg.ShowModal(
    procedure(ModalResult: TModalResult) 
    begin 
     // Do something. 
    end 
); 
end; 

Не забудьте установить Action := caFree; в OnClose случае модального диалога.

Вы не можете освободить память, выделенную для вашей формы модального диалогового окна в рамках метода, чем обрабатывать закрытие формы модального диалогового окна. Чтобы освободить свою модальную форму диалогового окна, необходимо обработать его OnClose события следующим образом:

procedure TMyModalForm.FormClose(Sender: TObject; var Action: TCloseAction); 
    begin 
    Action := TCloseAction.caFree; 
    end; 
+0

OP имеет в виде прошивку - я не верю, что то же самое относится, не так ли? –

+0

@JerryDodge, Рекомендация не использовать модальные формы для всех мобильных платформ. Или вы имеете в виду что-то еще? –

+0

Я пропустил часть '(iOS и Android)'. –

Смежные вопросы