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

There is no overloaded version of 'MessageDialog' that can be called with these arguments


Ллирик

Вопрос

Пытаюсь создать модальное окно вот так:

procedure ShowMessageModal(const AMessage: string);
var
  ACloseDialogEvent: TInputCloseDialogEvent;
  DialogSvc: IFMXDialogService;
begin
  DialogSvc.MessageDialog(Translate(AMessage), TMsgDlgType.mtCustom,
    [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, -1, -1, nil, nil,
    procedure(const AResult: TModalresult)
    begin
      if Assigned(ACloseDialogEvent) then
        ACloseDialogEvent(DialogSvc.MessageDialog, AResult);
    end);
end;

но выдаёт

Цитата

[dcc32 Error] MessageModal.pas(27): E2250 There is no overloaded version of 'MessageDialog' that can be called with these arguments

Пожалуйста, подскажите как решить проблему

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

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

  • 0
  • Модераторы

вот почитайте как правильно вызывать

http://docwiki.embarcadero.com/Libraries/Berlin/en/FMX.DialogService.TDialogService.MessageDialog

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

Разобрался, но создать модальное окно на андроиде мне  в делфи rad studio 10 seattle так пока и не удалось. И я так и не понимаю почему в C++ builder диалоговые окна получаются модальными, а в делфи нет?

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

берем форму и вызываем ее модально. все почти так же как и раньше
 

f:=TForm2.Create(NIL);
f.showModal(procedure (Result:TModalResult) begin
if result = mrOk then begin 
end;
end);

не забыть на кнопки OK Cancel у TForm2 установить свойства ModalResult

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

Так у меня нет второй формы. Я создаю сообщения по средствам ShowMessage. Их более 500

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

А если сделать так:

if MessageDlg(AMessage, TMsgDlgType.mtCustom, [TMsgDlgBtn.mbOK], 0) = mrOK then

, то  на андроиде получаю "blocking dialogs not implemented on this platform", но в билдере диалоговые окна модальны и работают нормально. Почему?

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

я перестаю понимать, что вам нужно

в мобильных ОС нет и не может быть настоящих модальных диалогов

но showMessage же вас устраивает?

покажите, что за диалог вам нужен

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

В C++ builder при вызове showMessage  выполнение кода останавливается, а в делфи нет, но в C++ builder есть другой глюк, поэтому написал всё на делфи. Теперь только осталось решить проблему остановки выполнение кода при вызове showMessage 

Ссылка на комментарий
  • 0
В 03.02.2017 в 20:08, krapotkin сказал:

берем форму и вызываем ее модально. все почти так же как и раньше
 


f:=TForm2.Create(NIL);
f.showModal(procedure (Result:TModalResult) begin
if result = mrOk then begin 
end;
end);

не забыть на кнопки OK Cancel у TForm2 установить свойства ModalResult

Выполнение кода всё равно не останавливается

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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