Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2008
jangel_ramirezm jangel_ramirezm is offline
Miembro
 
Registrado: ago 2007
Ubicación: León Gto. Mex.
Posts: 39
Poder: 0
jangel_ramirezm Va por buen camino
Como hacer para que una funcion regrese varios valores

Hola saludos a todos
y antes que nada gracias a todos por tomarse el tiempo de leer este hilo
si alguien pudiera ayudarme(por favor ) mil gracias
esta es mi Duda : Tengo Un formulario que quiero utlilizar para seleccionar un rango de fechas( este regresa un valor "True" si se da click en el botón "Si" o "false" si se da click en el botón "No") y la funcion
donde lo mando llamar recibe como parametros a demás de otros las fechas
mi duda es ¿como le regreso el valor de cada fecha a la variable correspondiente ?
aqui muestro el codigo que uso :


Código Delphi [-]
function Input2Fechas(Caption:String;Msg:String;FechaI,FechaF:TDateTime ):Boolean;
var FF:TfrmInput2fechas ;
begin
FF:=TfrmInput2fechas.Create(nil);
FF.Caption:=Caption;
FF.lblTexto.Caption:=Msg;
FF.ShowModal;
FechaI:=FF.txtInicio.date;
FechaF:=FF.txtFin.date;
result:=FF.Resultado;
FF.Destroy;
end;









Este es un ej. de como quiero utilizar las fechas


Código Delphi [-]
procedure TForm1.btnpruebaClick(Sender: TObject);
var
Fecha1,Fecha2:TDate;
begin
if not Input2Fechas('Ejemplo','Introdusca las Fechas ',Fecha1,Fecha2) then
showmessage('No se capturaron las fechas')
else
showmessage('Fecha 1: '+datetostr(Fecha)+' Fecha2: '+datetostr(Fecha2));

end;










gracias por su ayuda
Responder Con Cita
  #2  
Antiguo 07-03-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Agrega dos miembros públicos al formulario, llamados FechaInicial: Date y Fecha Final de tipo Date. Una vez que hayas cerrado el formulario y de haber presionado afirmativamente, toma los valores de esos dos miembros y asignalos a las variables que deseas.

suerte.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 07-03-2008
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hola
Esta otra también puede servirte:

Código Delphi [-]
Type
  TMyResult=Record
    V1:integer;
    V2:Real;
  End;

///después

Function MultiValor:TMyResult;
Begin
  Result.V1:=1;
  Result.V2:=5,67;
End;
Espero te sirva.

Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #4  
Antiguo 07-03-2008
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hay que leer mejor, puse mi respuesta solo por el título de tu pregunta, lo ciento creo que lo que necesitas es pasar los parámetros de fecha a tu función por dirección en ves de por valor, así cuando esta retorne tendrá en dichas variables las fechas seleccionadas. Sería algo como:

Código Delphi [-]
function Input2Fechas(Caption:String;Msg:String;Var FechaI :TDateTime; Var FechaF:TDateTime ):Boolean;
var FF:TfrmInput2fechas ;
begin
FF:=TfrmInput2fechas.Create(nil);
FF.Caption:=Caption;
FF.lblTexto.Caption:=Msg;
FF.ShowModal;
FechaI:=FF.txtInicio.date;
FechaF:=FF.txtFin.date;
result:=FF.Resultado;
FF.Destroy;
end;

aunque aclaro que la solución de los records que te di tambien podría ser una vía, pero esta última se ajusta más a lo que tienes hecho.

Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #5  
Antiguo 07-03-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hazlo así:

Código Delphi [-]
function Input2Fechas(const Caption, Msg: string; var fechaI, fechaF: TDateTime ): Boolean;
var 
  FF: TfrmInput2fechas;
begin
  FF := TfrmInput2fechas.Create(nil);
  FF.Caption := Caption;
  FF.lblTexto.Caption := Msg;
  FF.ShowModal;
  FechaI := FF.txtInicio.date;
  FechaF := FF.txtFin.date;
  result := FF.Resultado;
  FF.Destroy;
end;

procedure TForm1.btnpruebaClick(Sender: TObject);
var 
  Fecha1, Fecha2: TDateTime;
begin
  if not Input2Fechas('Ejemplo','Introduzca las Fechas', Fecha1, Fecha2) then
    showmessage('No se capturaron las fechas')
  else
    showmessage('Fecha1: ' + DateToStr(Fecha) + ' Fecha2: ' + DateToStr(Fecha2));
end;

Te recomiendo que aprendas a utilizar la etiqueta delphi para publicar trozos de código.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 07-03-2008
jangel_ramirezm jangel_ramirezm is offline
Miembro
 
Registrado: ago 2007
Ubicación: León Gto. Mex.
Posts: 39
Poder: 0
jangel_ramirezm Va por buen camino
Gracias a Poliburro por su respuesta
ya agregué los atributos publicos y asi quedó la función
Código Delphi [-]
FF:=TfrmInput2fechas.Create(nil,RootKey,SaveToKey );
    FF.Caption:=Caption;
    FF.lblTexto.Caption:=Msg;
    FF.ShowModal;
    FechaI:=FF.FechaInicio;
    FechaF:=FF.FechaFin;
    result:=FF.Resultado;
    ff.Destroy;
pero cuando mando llamar a la funcion
me muestra:
30/12/1899 creo que no le regresa ningun valor el codigo donde mando llamar a la funcion quedó igual. espero haber entendido bien tu respuesta ya vez no todo puede ser tan fácil como apuntadores(es una broma)
Responder Con Cita
  #7  
Antiguo 07-03-2008
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Yusnerqui vs JachGuate

1-0

Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo


Última edición por yusnerqui fecha: 07-03-2008 a las 19:03:50.
Responder Con Cita
  #8  
Antiguo 07-03-2008
jangel_ramirezm jangel_ramirezm is offline
Miembro
 
Registrado: ago 2007
Ubicación: León Gto. Mex.
Posts: 39
Poder: 0
jangel_ramirezm Va por buen camino
ha muchas gracias a todos ya está Ok

gracias a todos de nuevo por su valiosa ayuda
Responder Con Cita
  #9  
Antiguo 07-03-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por yusnerqui Ver Mensaje
Yusnerqui vs JachGuate

1-0

Saludos
jajajajaja... acepto, por segundos...
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 07-03-2008
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Aunque las dos formas son válidas, para este caso yo usaría el método expuesto por jachguate... ¡¡¡no me odies, poliburro!!!
Responder Con Cita
  #11  
Antiguo 07-03-2008
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Aunque las dos formas son válidas, para este caso yo usaría el método expuesto por jachguate... ¡¡¡no me odies, poliburro!!!

Esteeee, a que te refieres exactamente, no es mi segunda altermativa la misma expuesta por el amigo jachguate o es que me perdi algo,,,, mmmmm estoy por creer que jachguate compro el arbitro.

Un saludo corrupto
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #12  
Antiguo 07-03-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Aunque las dos formas son válidas, para este caso yo usaría el método expuesto por jachguate... ¡¡¡no me odies, poliburro!!!


jajaja, pero por que habría de odiarte amigo, al final como bien lo has dicho, :P las dos son válidas. :P
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Como hacer una funcion DESHACER newbery Gráficos 8 13-01-2009 22:17:26
Cómo puedo hacer para que una variable valga 2 valores al mismo tiempo wlad Internet 15 19-12-2007 18:06:03
Cómo hacer para que muchos checkbox usen la misma función? Shikanda Varios 7 12-09-2007 17:27:48
problema para devolver 2 valores en una funcion tiagor64 OOP 4 06-05-2005 15:38:59
Como hacer un insert de varios registros fredy_boots SQL 2 25-11-2003 14:55:37


La franja horaria es GMT +2. Ahora son las 01:27:40.


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