Перейти к содержанию
  • 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 пользователей онлайн

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

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