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-03-2005
Luli Luli is offline
Miembro
 
Registrado: oct 2004
Posts: 76
Poder: 20
Luli Va por buen camino
Lightbulb Manejo de vaiables

Hola, nuevamente tengo problemas y acudo a solicitar su ayuda, lo que pasa es que en el programa en el que estoy trabajando, tengo mi formulario principal y al oprimir un botón, se llama a otro formulario, hasta ahi trabajé bien pero ahora al oprimir otro botón distinto del formulario principal, debe llamarse otro formulario y ya hay un problema porque ya no funciona correctamente el programa, supongo que son las variables porque las declaro en cada unit, por ejemplo uso una tabla, variables y una lista, esas las declaro en cadda unit porque de lo contrario el programa no compila, supongo que las debo declarar en el formulario principal y con eso debe ser suficiente pero no lo hago bien porque el programa no corre, ¿me podrian ayudar con algun ejemplo? muchas gracias
Responder Con Cita
  #2  
Antiguo 01-03-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No queda muy claro cual es el problema, es decir que tipo de error es el que te da, si vas a utilizar variables de un formulario en otro que va a ser llamado por éste, es suficiente con que sean declaradas en la parte pública y se haga un "Use" del formulario en donde se encuentran, si por el contrario quieres utilizarlas en toda la aplicación, a modo de variables globales, es mejor crear una Unidad exclusivamente para guardar dichas variables y hacer "Use" de ella en toda la aplicación para poder acceder a estas variables.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 02-03-2005
Luli Luli is offline
Miembro
 
Registrado: oct 2004
Posts: 76
Poder: 20
Luli Va por buen camino
Lightbulb Declaracion global

hola, gracias por responder, cuando declaro las variables, la lista y el arreglo en la unit del formulario principal y no en las unit de los formularios secundarios, que es donde se utilizan, al compilar me manda un error porque dice que las variables no estan declaradas en las unit donde se usan...

Y se me ocurrio eliminarlas de las unit de los formularios secundarios porque aunque es ahi donde se usan principalmente, creo que el programa no funciona correctamente porque tal vez las variables se inicializan más de una vez o no sé, algo pasa, por eso decidi declararlas una sola vez, de manera global, pero no me funcionó, seguramente no lo hice bien.

Intentaré lo de la unit donde solo se declaren variables, de cualquier manera si me pudiera enviar algun ejemplo de codigo que me sea de utilidad se lo agradecería mucho...
Responder Con Cita
  #4  
Antiguo 02-03-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código Delphi [-]
 unit Global;
 
 interface
 uses
 SysUtils,DmAnievas,Registry,Windows,Printers,Dialogs;
 Var
 AskBor:Boolean;
 nIntentos:Integer;
 nClave:Integer;
 Estado:Integer;
 nOpcion:Integer;
 
 
 Anno,Mes,Dia:Word;
 Pueblo:String;
 cFiltro:String;
 listado:Integer;
 cUsuario:String;
 nSuma:Integer;
 
 nReparaouble; //Número de reparación actual
 Function Codifica(s:String):String;
 function RoundEuros(Const X: Double): Double;
 function GrupoTrabajo : string;
 Function NombreUsuario():String;
 Function GetImpresora(Impre:String):Integer;
 
 Procedure BorraLck();
 
 Const
 clinDown = Chr(10)+Chr(13);
 
 implementation
 
 {Aqui iran todos los procedimientos y
 funciones declarados}
 
 
 
 function RoundEuros(Const X: Double): Double;
 var
 r:Int64;  //resto
 X2:Int64; //número
 x1:double;  //resultado
 begin
 x2:=trunc((abs(x)*1000)+0.5); //Tomo los 3 primeros decimales.
 
 r:=(x2 mod 10);//Compruebo si el 3 decimal es >=5
 x2:=trunc(x2/10);//desprecio el tercer decimal
 
         if r >= 5  then  //Si el 3 decimal era >= 5 sumo 1 al número
                 x2:=x2+1;
 
 x1:=x2/100; //Construyo el número con los 2 decimales
 
         if x < 0 then
                 result:=0 - x1
         else
                 result:=x1;
 
 end;
 
 
 
 end.

En todos los forms en que vayas a utilizar estas variables y funciones tienes que hacer un "Use" de esta unidad.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 02-03-2005
Avatar de Yaco
Yaco Yaco is offline
Miembro
 
Registrado: oct 2004
Ubicación: Canarias
Posts: 42
Poder: 0
Yaco Va por buen camino
Si necesitas que los valores de esas variables sean "visibles" desde varios forms o/y units, la mejor opcion es crear una unidad donde declares dichas variables, en la zona interface y luego añadir esta unidad en la "uses" de cada form en el que vaya a usarlas.

Si por el contrario, los valoes solo van a ser usados dentro de cada form y no necesitas que pasen a otros, basta con declararlas en la zona private de cada uno.

La tersera posibilidad es que deses acceder puntualmente al valor de una variable que esta en otro form abierto. Para ello, dicha variable debe estar declarada en la zona public del form y añadir este este al "uses" del form desde quieras acceder. Luego, el modo de hacer referencia a esta variable debera ser form1.variable.

Espero haberme explicado.
Un saludo
Yaco
__________________
Un programa 100% libre de errores, es una expresión 50% falsa.

Última edición por Yaco fecha: 02-03-2005 a las 10:15:30.
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


La franja horaria es GMT +2. Ahora son las 23:39:23.


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