Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ayuda con parametros (https://www.clubdelphi.com/foros/showthread.php?t=91699)

serka 04-04-2017 02:20:08

ayuda con parametros
 
hola a todos me pueden ayudar lo que pasa es que creé un programa con un procedimiento ya lo escribí pero al compilarlo el ide me saca este error:

"types of actual formal var parameters must be identical"

que significa "Los tipos de parámetros formales var reales deben ser idénticos"

Código Delphi [-]
procedure mayor(var a:Integer; var b:Integer);

así tengo mi procedimiento y no se que le pasa por favor me pueden ayudar

de ante mano muchas gracias

serka

ecfisa 04-04-2017 03:23:53

Hola.

En realidad el significado se acerca mas a: "Los tipos de los parámetros actuales y los formales var, deben ser idénticos"

El procedimiento está correctamente declarado, sin dudas el error está en la llamada. Un ejemplo de como podría producirse:
Código Delphi [-]
procedure mayor( var a:Integer; var b:Integer );
begin 
  // bla, bla, bla
  a := 1;
  b := 2;
end;

// Llamada al procedimiento
procedure TForm1.Button1Click( Sender: TObject );
var
  a, b: Double;
begin
  a := 5;
  b := 6;
  mayor( a, b );  // <-- [Error] Unit1.pas(nn): Types of actual and formal var parameters must be identical
end;
La causal es clara, declaramos parámetros por referencia de tipo Integer y en el ejemplo le estamos pasando como argumento otros de tipo Double.

Esta llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  c, d: Integer;
begin
  c := 5;
  d := 6;
  mayor(c, d);
end;
Sobre el mismo procedimiento no daría ningún error.

Saludos :)

AgustinOrtu 04-04-2017 03:38:13

Sin ver el codigo no podemos hacer mas que adivinar

Otra posible causa:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  mayor(5, 6);
end;

Neftali [Germán.Estévez] 04-04-2017 08:36:57

Cita:

Empezado por serka (Mensaje 515105)
así tengo mi procedimiento y no se que le pasa por favor me pueden ayudar

Lo lógico para saber qué pasa, es que completaras ese código con las líneas de la llamada.


La franja horaria es GMT +2. Ahora son las 18:20:43.

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