Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2009
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Duda con Function

Se que no es posible una funcion tener dos results. Entonces mi gustaria de hacer el seguinte:
Una funcion boolean que me trae True o False. Pero en esta funcion yo tengo dos variables que son cargadas en la funcion. Como puedo buscar el valor destas variable dentro de la funcion y trabajar con ellos afuera de la funcion? Pero no es el result, pero si las variables que están dentro de la funcion.
Responder Con Cita
  #2  
Antiguo 01-04-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Una posibilidad es usar variables pasadas a la función como argumentos "por referencia":

Código Delphi [-]
function Foo(var a: string) : boolean;
begin
  a := a + ' from Brasil';

  Result := true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  a: string;
begin
  a := 'Paulao';

  Foo(a);

  ShowMessage(a); // Show: "Paulao from Brasil"

end;

Como ves, es bastante sencillo, basta con usar la palabra reservada "var" antes del identificador de la variable. Cualquier cambio que se haga a la variable "a", se mantendrá en dicha variable incluso fuera ya de la función.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 01-04-2009
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Una pregunta. Tengo que pasar el valor de la variable en la llamada de la funcion? En su ejemplo tengo que pasar el valor de a: Foo(a). Pero esto yo no quiero, pues el valor tendra que venir de la funcion asi:

Código Delphi [-]
function CarregaValores(ano, num: Integer): boolean;
var
  tipo, equipamento: String;
begin
  tipo        := qryOcorPend.FieldByname('ABRANGENCIA').AsString;
  equipamento := qryOcorPend.FieldByname('DEFEITO_FALHA').AsString;
  ...........
  Result := True;
end;
if CarregaValores(2009, 2589) then
carga los valores de las variables tipo y equipamento;
Pero en mi ejemplo aca puzo ellos locales a la funcion, pero pueden ser globales o publicas e etc... Esto es solo un ajemplo. No puedo tener una variable como parametro, pues no puedo dar a ella un valor. La funcion tiene mas cosas, esto es solo un ejemplo.
Responder Con Cita
  #4  
Antiguo 01-04-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A bote pronto, otra posible solución podría ser algo similar a esta:

Código Delphi [-]
type
  TCarregaValoresResult = record
    tipo: string;
    result: boolean;
    equipamiento: string;
  end;

function CarregaValores(ano, num: Integer): TCarregaValoresResult;
var
  tipo, equipamento: String;
begin

  Result.tipo := 'Valor';
  Result.equipamiento := 'Valor';

  Result.result := true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  carregaValoresResult: TCarregaValoresResult;
begin
  carregaValoresResult := CarregaValores(2009, 2589);

  if carregaValoresResult.result then begin

    ShowMessage(carregaValoresResult.tipo); // Show Valor

    ShowMessage(carregaValoresResult.equipamiento); // Show Valor
  end;

end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
duda con function DoNumber alexia Varios 2 25-08-2008 20:50:04
function GetFileDate look OOP 3 13-07-2008 07:55:40
FutureValue Function chino150 Varios 2 28-01-2008 22:07:16
Create Function rickymarti Firebird e Interbase 1 02-12-2004 10:37:00
Function vtdeleon OOP 1 25-11-2004 07:22:48


La franja horaria es GMT +2. Ahora son las 08:19:18.


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
Copyright 1996-2007 Club Delphi