Programación General > C++ Builder

 Declaracion De Variable

<< < (2/2)

Goselito_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:
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 ---  //--------------------------------------------------------------------------- #ifndef Unit1H#define Unit1H//---------------------------------------------------------------------------#include &#60;Classes.hpp&#62;#include &#60;Controls.hpp&#62;#include &#60;StdCtrls.hpp&#62;#include &#60;Forms.hpp&#62;//---------------------------------------------------------------------------class TForm1 : public TForm{__published:  // IDE-managed Componentsprivate:  // User declarationspublic:    // User declarations        bool flag; //mi variable         __fastcall TForm1(TComponent* Owner);};//---------------------------------------------------------------------------extern PACKAGE TForm1 *Form1;//---------------------------------------------------------------------------#endif   

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

yo la uso en el unit 2 en el evento onShow


--- Código: Text ---  //--------------------------------------------------------------------------- #include &#60;vcl.h&#62;#pragma hdrstop #include &#34;Unit2.h&#34;#include &#34;Unit1.h&#34; //incluyo si o si el header de la unit donde se encuentra mi variable que quiero usar!!! FUNDAMENTAL//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource &#34;*.dfm&#34;TForm2 *Form2;//---------------------------------------------------------------------------__fastcall TForm2::TForm2(TComponent* Owner)        : TForm(Owner){}//--------------------------------------------------------------------------- void __fastcall TForm2::FormShow(TObject *Sender){Form1-&#62;flag=true;//uso de mi variable flag del Form1}//---------------------------------------------------------------------------    

YA STA!!! con sto te tiene que haber quedado mas que claro!!! jajaaj cualquier cosa avisá... salute!

Goselito_0:
Que haria yo sin vosotros... jejeje

Mil gracias, nos leeremos en las proximas dudas.

Un saludo.

el_shanky:
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!

fachamix:
apuesto lo que sea a que no estaba incluyendo (#include) el .H donde la queria usar

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa