Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Funciones que me den 2 resultados diferentes (https://www.clubdelphi.com/foros/showthread.php?t=59263)

mrnovice 19-08-2008 19:32:48

Funciones que me den 2 resultados diferentes
 
Saludos nuevamente :S
Quisiera saber si es posible que una funcion me regrese dos resultados diferentes

Código Delphi [-]
function A(): deva:String,devb:Boolean;
begin
   //Operacion1->deva:='A'; devb:=TRUE;
   //Operacion2->deva:='B'; devb:=FALSE;
end;
esa es la idea más o menos sigo buscando... gracias por su comprensión

xEsk 19-08-2008 19:42:53

Tal como lo escribes es imposible, pero bueno, puedes usar algo asi:

Código Delphi [-]
procedure A(out deva: String; out devb: Boolean);
begin
   //Operacion1->deva:='A'; devb:=TRUE;
   //Operacion2->deva:='B'; devb:=FALSE;
end;

Saludos.

mrnovice 19-08-2008 19:44:26

Thanks
 
Creo que es lo que buscaba lo voy a probar

fer21unmsm 19-08-2008 19:52:09

Que yo sepa una función devuelve un sólo resultado, salvo si usas parámetros por referencias, que si permiten devolver cuantos parámetros por referencia poseas, que creo es lo que buscas

Para esto se le antepone la palabra reservada var al parámetro

Ej:

Código Delphi [-]
 //Paso por referencia
function MiFuncion(var Parametro1:string;var Parametro2:string):string;
begin
Parametro1:= 'hola mundo';
Parametro2:= 'hola mundo2';
 end;

roman 19-08-2008 19:56:00

No hay mucho más qué agregar a lo dicho por xEsk, sin más contexto, pero quizá te convenga, por claridad, una combinación:

Código Delphi [-]
function A(out deva: String): Boolean;
begin
...
end;

Esto te serviría en caso de que el valor principal de vuelta sea el string y el boolenao sólo sea un indicador de que la función fue exitosa o no.

Otra opción que podrías considerar es el uso de un registro:

Código Delphi [-]
type
  TDev = record
    deva: String;
    devb: Boolean;
  end;

y usar ese tipo de datos como valor de vuelta de la función.

// Saludos

Caro 21-08-2008 15:32:04

Cuando necesito devolver mas de un valor en mi función he utilizado parametros por referencia (var) , me pueden explicar por favor cual es la diferencia de usar out o var. Ya que según la ayuda out también es un parametro por referencia.

Saluditos


La franja horaria es GMT +2. Ahora son las 10:08:56.

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