Ver Mensaje Individual
  #8  
Antiguo 23-11-2007
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Reputación: 21
pcicom Va por buen camino
Thumbs up

Cita:
Empezado por wlad Ver Mensaje
como puedo hacer para que una variable valga 2 valores al mismo tiempo y pueda ejecutar el mismo procedure,pa esos dos distintos valores

Creo Entender lo que mencionar, si es asi puedes darte una idea de como una variable puede tener 2 o mas Valores dando el formato que tu decidas:

1er Caso.

Código:
      cVar := '001Juan';

Esta variable es de tipo String y puede contener 2 Valores que puedes resuperar mediante alguna Instriccion.

    nNumero := strtoint(Copy(cVar,1,3)) ;     //  Esto seria = 1
    cNombre := strtoint(Copy(cVar,4)) ;     //  Esto seria = Juan

Entonces en la misma Variable cVar estarias Almacenando 2 Valores..
2do Caso.
Código:
Puedes Usar Variables de tipo registro

Type record cVar
    Numero:integer;
    Nombre:String
end;


Y Usarla Asi.

     cVar.Numero := 1;
     cVar.Nombre := 'Juan';

3er Caso
Código:
Paso de Variables entre funciones con Paso de Variables por Valor

function XValor(pValor:Variant):Integer; overload;
begin
     XValor := 0;
     if pValor>1 then
        XValor := pValor;
end;

function XValor(pValor:Variant):String; overload;
begin
    XValor := '';
    if pValor <> '' then
      XValor := pValor;
end;

Usandola seria asi:

      nSuma := nSUma + XValor(1);

      cNombre := 'Perez ' + XValor('Juan');

4o Caso

Código:
procedure XValor(pValor:Integer);
begin
    pValor := pValor + 100;
end;


Usandola seria asi:

      x := 50;      //   x = 50
      xValor(x);   //    x= 150

Si checas el Valor de X cambio al pasarla por la Funcion..


Este ejemplo se aplica muy sencillamente en el caso de una funcion para 
obtener el factorial de un Numero donde utilizar la recursividad para resolver
el valor usando y cambiando el valor de la variable una y otra vez..



function Fact(nValor:integer):integer;
begin
  if nValor < 1 then Result := 1
  else Result := nValor * Fact(nValor-1) ;
end; 



Ejecutandolo seria

    showmessage('El  Factorial de 5 = ',inttostr(Fact(5)));

// Si checas en la Misma Funcion cambia el Valor de la variable nValor


ESPERO TE SIRVE UN POCO DE AYUDA...
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton
Responder Con Cita