Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

declarar propiedades TADOQuery

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: declarar propiedades TADOQuery Responder citando

Tengo un una classe donde creo en tiempo de ejecución un TADOQuery
para introducir datos en una tabla.

la classe no tiene FORM por eso lo creo en tiempo de ejecución.
El tema está en que cuando tengo que declarar y crear el TADOQuery


TADOQuery *ADOQuery1 = new TADOQuery(Application);
ADOQuery1->Connection=DataModule1->ADOConnection1;

no se exactamente que estoy haciendo al poner (Application)

Alguien me puede sacar de la duda?
De echo funciona pero no se que estoy haciendo.
Volver arriba
Mensaje    Asunto: Responder citando

¡Hola!

Al crear un objeto tienes que decirle aquien pertenece (Owner). Eso es lo que se pone donde tu has puesto "Application". Por ejemplo, si tenemos un formulario con un panel y pongo el siguiente código:

TButton *btn;

for (int i = 0; i < 10; i++){

btn = new TButton(this);

}

Los diez botones que se crean pertenecen al formulario y serán ubicados en él. El formulario ahora posee 11 controles (propiedad ComponentCount), los diez botones y el panel. Si el código hubiese sido éste:

TButton *btn;

for (int i = 0; i < 10; i++){

btn = new TButton(Panel1);

}

Los botones pertenecerían al panel y serían ubicados en él. El formulario tendría un control (Panel1) y el panel tendría 10 controles (los 10 botones).

Bueno, espero haberte ayudado.
Salu2.
Volver arriba
Mensaje    Asunto: Gracias Responder citando

Ei muchas gracias Tecno, pero para ser más concretos , como es que una classe como en la que yo declaro un TADOQUEry no puede ser la owner de este?

Y porque si la aplicación y que problemas puede acarrear esto de declarar un objeto dentro de una classe que resulta que el padre es ´la aplicación?

Mil gracias.
Volver arriba
Mensaje    Asunto: Responder citando

¡Hola!

Lo siento, pero no tengo conocimientos para responder a tu último mensaje. Quizá si lo lee _Leo sepa contestarte. Yo desde luego no.
Lo siento Embarassed

Salu2
Volver arriba
Mensaje    Asunto: Ei!! Responder citando

Muchas gracias !!! vamos aprendiendo , yo seguramente soy el tio con más kilometros por recorrer. Gracias por interesarte por mis preguntas.

Very Happy
Volver arriba
Mensaje    Asunto: Responder citando

Hola, por lo que he leido creo que te estás liando con lo que es un objeto y lo que es una clase de objeto. El objeto es una instancia de la clase objeto y por lo tanto ocupa un espacio físico en memoria. Tu puedes crear un componente dentro de una clase y pasarle como padre un puntero del objeto que quieras, claro que para ello el objeto debe de existir como tal y no ser una definición. Es posible que no me esté explicando con claridad así que pondré un ejemplo:

TForm1 //es una clase derivada de la clase TForm.
TForm1 *Form1; //es un puntero a u objeto de la clase TForm1.
Form1 = new TForm1(....) //es un objeto de la clase TForm1.

Un objeto creado dentro de la clase TForm1, como puede ser un botón, puede tener como padre al objeto Form1, pero nunca a una clase TForm1 (que no es un objeto).

Sin ánimo de ser pesado escribo lo siguiente:

TForm1 *Form1; //esto es un puntero a un objeto
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
TADOQuery *Consulta1 = new TADOQuery(Form1); //esto sí.
TADOQuery *Consulta2 = new TADOQuery(TForm1); //esto no.
}

En cuanto a problemas que pueden surgir, pues... si haces esto ten cuidado de que el objeto padre existe y ten en cuenta que cuando el objeto padre se destruya, tu objeto también lo hará. El utilizar Application es correcto ya que es el objeto base de cualquier aplicación en la que utilices tu clase y para que tu clase pueda convertirse en un objeto con montones de subobjetos, es necesario que exista un objeto base application y existirá.

Confío en haberme explicado y haberte ayudado.
Un saludo.
_________________
Iré a cualquier sitio siempre y cuando sea hacia delante.
Livingstone
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.