Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > OOP
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 08/05/2008
white_zombie's Avatar
[white_zombie] white_zombie is offline
Miembro Premium
 
Join Date: Nov 2005
Location: Zaragoza - España
Posts: 187
Poder: 21
white_zombie Va por buen camino
Uses de un subcomponente

Hola, tengo un problema al crear un subcomponente con setsubcomponent y es el siguiente:

En la unidad del componente creo el subcomponente y no hay ningun problema.
Código Delphi [-]
Type   TTCP= class(TIdTCPClient)
private 
    FThreadcomponent:TIdThreadComponent;  
.............   

constructor TTCP.Create(AOwner: TComponent);
begin   inherited Create(AOwner);

  FThreadcomponent := TidThreadcomponent.Create (Self) ;
  FThreadcomponent.Name:='ThreadComponent';
  FThreadcomponent.SetSubComponent (True);


end;

Bueno para crear este subcomponente tengo que añadir a la seccion uses IdThreadComponent como es logico.
A la hora de usar el componente en el formulario cuando arrasto el componente y ejectuto la aplicacion delphi añade automaticamente las librerias necesarias para ese componente a la seccion uses del formulario pero no asi la unidad IdThreadComponent necesaria para el subcomponente.
La pregunta es ¿hay alguna forma a la hora de crear el componente de hacer que delphi añada la unidad correspondiente al subcomponente cuando se utiliza en una aplicacion?

Gracias por el tiempo que dediquen a mi pregunta.

Un Saludo.

Last edited by white_zombie : 08/05/2008 at 17:20.
Reply With Quote
  #2  
Old 08/05/2008
[coso] coso is offline
Miembro Premium
 
Join Date: May 2008
Location: Girona
Posts: 1,678
Poder: 0
coso Va por buen camino
Lo correcto es crear un paquete del componente y de todas las units q necesita y instalar este paquete en la paleta, asi como en el search path (a veces, otras veces es innecesario) de opciones de proyecto. Al menos en delphi 5 funciona mas o menos asi.
Reply With Quote
  #3  
Old 08/05/2008
white_zombie's Avatar
[white_zombie] white_zombie is offline
Miembro Premium
 
Join Date: Nov 2005
Location: Zaragoza - España
Posts: 187
Poder: 21
white_zombie Va por buen camino
Gracias por tu respuesta, ya creo un paquete con el componente y las units que necesita se introducen en la seccion uses de la unidad del componente no?
Haciéndolo así me ocurre lo que explico en el primer mensaje.
Reply With Quote
  #4  
Old 08/05/2008
[coso] coso is offline
Miembro Premium
 
Join Date: May 2008
Location: Girona
Posts: 1,678
Poder: 0
coso Va por buen camino
Te hablo desde delphi 5, no se si en versiones siguientes ha cambiado el procedimiento. Creas un nuevo proyecto de package (.dpk) que no es mas que un proyecto de componente. Encontraras dos nodos en un arbol, el uno es contains y el otro requires. Añade las units q necesita para compilar en el 'contains' (incluida la implementacion de tu componente, el cual debe tener en sus uses referencias a las units q necesita) y quedaran insertadas dentro del .dpk. Ahora mismo, ya tendrias todo el componente encapsulado. Si lo compilas, te resultara en un .bpl, que es un paquete/libreria ya compilado. Este lo puedes luego añadir a la paleta con (Delphi 5) Component->Install Packages, y en teoria las units q usa el componente no las deberas colocar en ningun sitio mas.
Venga, espero que te sirva.

edito : en las opciones del .dpk, tendra q estar en el search path las rutas, claro esta...

Last edited by coso : 08/05/2008 at 19:09.
Reply With Quote
  #5  
Old 08/05/2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Join Date: May 2003
Location: Campeche, México
Posts: 2,732
Poder: 26
maeyanes Va por buen camino
Hola...

Si el componente u objeto que usas dentro de tu componente no es visible fuera de este, no es necesario hacer referencia a este en el uses de la unidad que lo va a usar. A menos claro que tengas que usar algún tipo de datos definido en esa unidad, en dado caso, tienes que ponerla de forma manual en el uses.


Saludos...
Reply With Quote
  #6  
Old 08/05/2008
white_zombie's Avatar
[white_zombie] white_zombie is offline
Miembro Premium
 
Join Date: Nov 2005
Location: Zaragoza - España
Posts: 187
Poder: 21
white_zombie Va por buen camino
Gracias a los dos, mi caso es la segunda opción que dice Maeyanes, por lo que me queda claro que hay que poner manualmente la unidad del subcomponente en el uses del formulario.

Un saludo.
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Error de herencia en diseño con subcomponente rastafarey OOP 5 12/05/2013 11:48


All times are GMT +2. The time now is 02:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi