• Lunes 18 de Noviembre de 2024, 04:41

Autor Tema:  Declaracion De Variable  (Leído 3002 veces)

Goselito_0

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Declaracion De Variable
« en: Sábado 10 de Mayo de 2008, 20:32 »
0
Hola, la duda es la siguiente:

¿Como tengo o donde tengo que declarar una variable o un objeto de una clase para poderlo utilizar en todos los posibles "Form" de mi proyecto?

Gracias de antemano.

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Declaracion De Variable
« Respuesta #1 en: Domingo 11 de Mayo de 2008, 03:09 »
0
para poder utilizarlo en todos los forms tenes que declaralo en la parte privada del ".H"

salute
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

Goselito_0

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Declaracion De Variable
« Respuesta #2 en: Lunes 12 de Mayo de 2008, 20:56 »
0
He declarado la variable en el ".H" de un Form y me deja utlizarla en ese Form pero no en los demas,
¿hay alguna forma de declararla para que se me permita utilizarla en todos los Form? ¿o forzosamente debo declararla en el ".H" de cada Form?

Gracias de antemano por la utilísima ayuda.

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Declaracion De Variable
« Respuesta #3 en: Lunes 12 de Mayo de 2008, 21:02 »
0
No amigo pensá que ahora esa variable es un objeto de ese form, entonces como haces para llamar desde el form2 a algún objeto del form1???

Form1->variable_que_inventaste


Salute!
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

Elforious

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Declaracion De Variable
« Respuesta #4 en: Martes 13 de Mayo de 2008, 02:52 »
0
Tal vez lo que buscas es "extern".

Si tienes una variable global en una unidad, y la quieres utilizar en otra, declarás esta variable en el ".h" de la unidad origen, y en el ".cpp" de la unidad destino la declarás con "extern" (obviamente incluyendo la unidad origen en la destino):

Código: Text
  1. // Unidad_Origen.h
  2.  
  3. int Variable_Global;
  4.  
  5.  

Código: Text
  1. // Unidad_Destino.cpp
  2.  
  3. extern int Variable_Global;
  4.  
  5.  

Al menos así yo lo hago...

Espero haber ayudado.

Goselito_0

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Declaracion De Variable
« Respuesta #5 en: Martes 13 de Mayo de 2008, 16:29 »
0
He probado a utilizar "extern" pero me da un linker error, he probado a declarar la variable en la parte privada y en la parte publica del .H origen, y en el .cpp destino, ¿me podrías decir con exactitud donde tengo que daclararla?

Os explico sin extenderme el problema concreto a ver si tuviera otra solucion:
En un Form cargo una imagen sobre la que hago click de raton, tras este click se realiza un procesado y se abre una ventana con opciones (otro Form), pero en este segundo Form necesito las coordenadas donde el raton hizo click en el Form anterior. ¿Existe alguna forma de abrir una pequeña ventana donde poder elegir entre varias opciones sin que tenga que ser otro Form?, si esto no fuera posible me temo que necesito las variables de mi Form anterior.  :(

Muchiiiisimas gracias por vuestra paciencia.

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Declaracion De Variable
« Respuesta #6 en: Martes 13 de Mayo de 2008, 18:59 »
0
a ver si te ayudamos...

Vas al .H (header) del Unit1, ahí no mas el parte PUBLIC abajo o al lado de donde te dice "// User declarations" declaras tu variable (en mi caso bool flag)

Código: Text
  1.  
  2.  
  3. //---------------------------------------------------------------------------
  4.  
  5. #ifndef Unit1H
  6. #define Unit1H
  7. //---------------------------------------------------------------------------
  8. #include <Classes.hpp>
  9. #include <Controls.hpp>
  10. #include <StdCtrls.hpp>
  11. #include <Forms.hpp>
  12. //---------------------------------------------------------------------------
  13. class TForm1 : public TForm
  14. {
  15. __published:  // IDE-managed Components
  16. private:  // User declarations
  17. public:    // User declarations
  18.         bool flag; //mi variable
  19.  
  20.         __fastcall TForm1(TComponent* Owner);
  21. };
  22. //---------------------------------------------------------------------------
  23. extern PACKAGE TForm1 *Form1;
  24. //---------------------------------------------------------------------------
  25. #endif
  26.  
  27.  
  28.  


Luego solo resta usarla en donde mas te guste!!!!

yo la uso en el unit 2 en el evento onShow

Código: Text
  1.  
  2.  
  3. //---------------------------------------------------------------------------
  4.  
  5. #include <vcl.h>
  6. #pragma hdrstop
  7.  
  8. #include "Unit2.h"
  9. #include "Unit1.h" //incluyo si o si el header de la unit donde se encuentra mi variable que quiero usar!!! FUNDAMENTAL
  10. //---------------------------------------------------------------------------
  11. #pragma package(smart_init)
  12. #pragma resource "*.dfm"
  13. TForm2 *Form2;
  14. //---------------------------------------------------------------------------
  15. __fastcall TForm2::TForm2(TComponent* Owner)
  16.         : TForm(Owner)
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20.  
  21. void __fastcall TForm2::FormShow(TObject *Sender)
  22. {
  23. Form1->flag=true;//uso de mi variable flag del Form1
  24. }
  25. //---------------------------------------------------------------------------
  26.  
  27.  
  28.  
  29.  


YA STA!!! con sto te tiene que haber quedado mas que claro!!! jajaaj cualquier cosa avisá... salute!
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

Goselito_0

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Declaracion De Variable
« Respuesta #7 en: Miércoles 14 de Mayo de 2008, 13:26 »
0
Que haria yo sin vosotros... jejeje

Mil gracias, nos leeremos en las proximas dudas.

Un saludo.

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Declaracion De Variable
« Respuesta #8 en: Miércoles 14 de Mayo de 2008, 18:52 »
0
Que bueno que te hayamos podido ayudar!

Spero que te haya quedado claro este método ya que es el más limpio y el que tenes que seguir para cualquier tipo de objeto que quieras crear vos, ya sea variables o funciones.

Exitos!
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: Declaracion De Variable
« Respuesta #9 en: Sábado 17 de Mayo de 2008, 20:21 »
0
apuesto lo que sea a que no estaba incluyendo (#include) el .H donde la queria usar
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA