| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
iluso Invitado
|
Publicado: Jue 06 Mar, 2003 10:47 am Asunto: declarar propiedades TADOQuery |
|
|
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 |
|
 |
tecno Invitado
|
Publicado: Jue 06 Mar, 2003 12:21 pm Asunto: |
|
|
¡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 |
|
 |
iluso Invitado
|
Publicado: Jue 06 Mar, 2003 12:52 pm Asunto: Gracias |
|
|
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 |
|
 |
tecno Invitado
|
Publicado: Vie 07 Mar, 2003 11:24 am Asunto: |
|
|
¡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
Salu2 |
|
| Volver arriba |
|
 |
iluso Invitado
|
Publicado: Vie 07 Mar, 2003 1:57 pm Asunto: Ei!! |
|
|
Muchas gracias !!! vamos aprendiendo , yo seguramente soy el tio con más kilometros por recorrer. Gracias por interesarte por mis preguntas.
 |
|
| Volver arriba |
|
 |
Scooby Ens


Registrado: 25 Sep 2002Mensajes: 49Ubicación: Nunca Máis
|
Publicado: Vie 07 Mar, 2003 2:06 pm Asunto: |
|
|
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 |
|
 |
|