Перейти к содержанию
  • Регистрация
  • 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

в андроиде ничего не останавливается

просто надо писать по-другому, зная что диалоги не останавливают поток исполнения

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


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

в андроиде ничего не останавливается

Как? А вызов showMessage  в билдере тогда что делает?

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


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

ну, ясно же что от языка программирования операционная система на зависит

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


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

Я имею ввиду, что в билдере у 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 пользователей онлайн

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

×
×
  • Создать...