Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   There is no overloaded version of MessageDlg that can be called with these arguments (https://www.clubdelphi.com/foros/showthread.php?t=88486)

H.Sagas96 11-06-2015 20:08:31

There is no overloaded version of MessageDlg that can be called with these arguments
 
El error lo que dice es:
Cita:

[DCC Error] Unit1.pas(160): E2250 There is no overloaded version of 'MessageDlg' that can be called with these arguments
No se como corregirlo.

Esta es una parte de mi codigo:
Código Delphi [-]
  i := messagedlg('¿Quiere borrar el pedido?',mtWarning, mbokcancel,0);
  if (i = mrok) then
    ShowMessage('Se ha borrado el pedido.');
Me mantiene constantemente subrayado de error el "mtWarning" dentro del codigo y no corre.

Casimiro Notevi 11-06-2015 20:09:44

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

H.Sagas96 11-06-2015 20:24:22

ok, perdon. Podrias resolverme la duda?

ecfisa 11-06-2015 21:38:23

Hola H.Sagas96.

En delphi 7 funciona perfectamente de este modo:
Código Delphi [-]
 if MessageDlg('¿Quiere borrar el pedido?', mtWarning, [mbYes,mbNo], 0) = mrOk then
   ....

Pero revisa en este ejemplo la sintáxis para la version XE7: MessageDlg (Delphi)

Saludos :)

H.Sagas96 11-06-2015 21:45:21

ok muchas gracias :) ahorita reviso :)

H.Sagas96 11-06-2015 21:47:18

No funciona en el xe6 :(

ecfisa 11-06-2015 22:26:09

Hola de nuevo.

A ver, revisa estos enlaces:
Saludos :)

H.Sagas96 11-06-2015 23:20:04

Muchas gracias :) Ya logre correguir el error gracias a los links :D

nlsgarcia 11-06-2015 23:53:35

Club Delphi,

Cita:

Empezado por H.Sagas96
...There is no overloaded version of MessageDlg that can be called with these arguments...

Cita:

Empezado por H.Sagas96
...Ya logre corregir el error...

:rolleyes:

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   if MessageDlg('¿Quiere borrar el pedido?', mtWarning, [mbYes,mbNo], 0) = mrYes then
      MessageDlg('Pedido Borrado', mtInformation, [mbOk], 0)
   else
      MessageDlg('Se mantiene el Pedido', mtInformation, [mbOk], 0)
end;

end.
El código anterior en Delphi XE6 sobre Windows 7 Professional x32, Muestra en ambiente VCL el uso de la función MessageDlg.

Revisa esta código:
Código Delphi [-]
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
begin
   if (MessageDlg('¿Quiere borrar el pedido?', TMsgDlgType.mtWarning, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) =  mrYes) then
      MessageDlg('Pedido Borrado', TMsgDlgType.mtInformation, [TMsgDlgBtn.mbOk], 0)
   else
      MessageDlg('Se mantiene el Pedido', TMsgDlgType.mtInformation, [TMsgDlgBtn.mbOk], 0)
end;

end.
El código anterior en Delphi XE6 sobre Windows 7 Professional x32, Muestra en ambiente FMX el uso de la función MessageDlg.

Revisa esta información:
Notas:

1- Toda la información anterior es para futuras consultas relacionadas a la función MessageDlg en ambiente VCL y FMX.

2- El código sugerido en VCL y FMX, funciono correctamente en Delphi XE6 y Delphi XE7.

3- El error mencionado en el Msg #1 (E2250 There is no overloaded version of 'MessageDlg' that can be called with these arguments), ocurre si se utiliza la sintaxis VCL de la función MessageDlg en FMX.

Espero sea útil :)

Nelson.

AgustinOrtu 12-06-2015 03:59:50

Es una de las cosas de FMX que molesta bastante

Realmente, el tener que agregar el nombre del tipo enumerativo adelante seguido del valor en cuestión (TAlign.Client) ensucia mucho el código

Y el código delphi siempre me gusto por lo limpio que es

Pero bueno, se soluciona creando funciones PromtMsg, InfoMsg, WarningMsg etc


La franja horaria es GMT +2. Ahora son las 21:41:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi