Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Componente no aparece en la paleta (https://www.clubdelphi.com/foros/showthread.php?t=48327)

eduarcol 21-09-2007 18:25:42

Componente no aparece en la paleta
 
Hola a todos, estoy diseñando un nuevo componente que tiene como finalidad recopilar funciones de uso general, lo pongo a heredar de TObject y no aparece en la paletas de componentes, ni siquiera si le cambio la clase a TComponent

De que clase se debe heredar para que aparezca???

maeyanes 21-09-2007 18:34:32

Hola...

Si lo que necesitas es una recopilación de funciones de uso general, lo mejor es una unidad y no un componente...

Esta unidad la puedes meter en un paquete y usarla en tus aplicaciones sin necesidad de agregarla implícitamente en tus proyectos...



Saludos...

Jure 21-09-2007 18:36:22

Acuerdate del procedure Register ;)

Código Delphi [-]
procedure Register;
begin
    RegisterComponents('Standard', [TBsFEdit]);
end;

Jure.

Jure 21-09-2007 18:39:37

Cita:

Empezado por maeyanes (Mensaje 232896)
...Si lo que necesitas es una recopilación de funciones de uso general, lo mejor es una unidad y no un componente...

No lei bien el post, la solución de maeyanes es la mejor elección ;)

eduarcol 21-09-2007 21:00:07

Solo por preguntar, que diferencia puede haber, yo lo decia por la practicidad, de colocar el objeto y utilizar sus metodos para lo que se necesite, digo es mas facil de buscar el nombre del procedimiento...

Ahorita yo creo el objeto de forma manual

Código:

MiObjeto: TMiObjeto;
pero me parece mas facil agregarlo desde la paleta y no estar pendiente de la creacion ni la destruccion

eduarcol 21-09-2007 21:01:00

ya eso lo hice Jure:

Código Delphi [-]
procedure Register;
begin
  RegisterComponents('Samples', [TBDEUtil]);
end;

maeyanes 21-09-2007 21:04:56

Cita:

Empezado por eduarcol (Mensaje 232953)
Solo por preguntar, que diferencia puede haber, yo lo decia por la practicidad, de colocar el objeto y utilizar sus metodos para lo que se necesite, digo es mas facil de buscar el nombre del procedimiento...

Ahorita yo creo el objeto de forma manual

Código:

MiObjeto: TMiObjeto;
pero me parece mas facil agregarlo desde la paleta y no estar pendiente de la creacion ni la destruccion

Precisamente esa es la diferencia...

Con una unidad solo haces:

Código Delphi [-]
implementation

uses MiUnit;

Y ya tienes a tu disposición todos los procedimientos y funciones de esa unidad, y no tienes que preocuparte por crear y destruir objetos...


Saludos...

eduarcol 21-09-2007 21:40:02

si pero hay algo, a mi me gusta mucho la facilidad que da escribir el nombre del objeto y luego del punto aparezcan los procedimientos que aplican, es mejor que estarse acordando del nombre de todos...

maeyanes 21-09-2007 21:45:20

Puedes hacer lo mismo con las unidades...

Si pones el nombre de la unidad y punto, el IDE te mostrará todos los procedimientos y funciones que contiene esta...


Saludos...

eduarcol 21-09-2007 21:59:49

jejjeeje 7 años con delphi y a estas altura me voy dando cuenta de ello :D:D

eduarcol 21-09-2007 22:42:59

Ok ya lo converti en una unidad, pero quedo con la duda, de que objeto debe heredar???

maeyanes 21-09-2007 22:49:05

Hola...

Los objetos no se heredan, solo las clases... :p

Y no tienes que heredar de nada... solo haces:

Código Delphi [-]
unit MiUnidad;

interface

uses
  // lista de unidades que usa tu unidad...

procedure Procedimiento1(Parametro1: TipoParametro);
function Funcion1(Parametro1: TipoParametro): Integer;

implementation

uses // Si necesitas...

procedure Procedimiento1(Parametro1: TipoParametro);
begin
end;

function Funcion1(Parametro1: TipoParametro): Integer;
begin
end;

end.


Saludos...

eduarcol 21-09-2007 22:56:55

jejeje buena acotacion


Pues eso fue lo que hice y ya lo tengo listo tan pronto lo suba aviso, mi duda es que de que CLASE tengo que heredar para que aparezca en la barra de componentes

maeyanes 21-09-2007 22:59:34

Una unidad no aparece en la barra de componentes...

Solo la agregas a la clausula uses de la unidad donde la quieras usar y listo...



Saludos...

eduarcol 21-09-2007 23:22:29

Creo que sigo sin poder explicarme, a ver si hago esta pregunta asi:

¿Como creo un componente no visual que aparezca en la paleta de componentes?

maeyanes 24-09-2007 15:29:30

Hola...

Creas un componente que herede de TComponent...


Saludos...

eduarcol 24-09-2007 15:39:19

Gracias por dedicarme el mensaje numero 1000 pero igual ya lo hice asi y sigue sin aparecer, voy a crearlo desde cero a ver que sucede, solo por no quedarme con la duda

Delphius 24-09-2007 15:52:21

Ya me estaba resultando extraño lo que venía leyendo... y luego vi la trampa.
Maeyanes... ya no puedes huir... ¡te pillaron!:D:)

Saludos,

maeyanes 24-09-2007 16:12:27

Hola...

Cita:

Empezado por eduarcol (Mensaje 233369)
Gracias por dedicarme el mensaje numero 1000 pero igual ya lo hice asi y sigue sin aparecer, voy a crearlo desde cero a ver que sucede, solo por no quedarme con la duda

Es raro, ya que la base de los componentes tanto visuales como no visuales es TComponent...

Con solo crear tu clase heredada de TComponent y registrándolo en Delphi vía el procedimiento Register este debería aparecer en la barra de componentes...

Cita:

Empezado por Delphius (Mensaje 233373)
Ya me estaba resultando extraño lo que venía leyendo... y luego vi la trampa.
Maeyanes... ya no puedes huir... ¡te pillaron!:D:)

Saludos,

:D

eduarcol 24-09-2007 16:48:24

Pues que de cosas desde new component si lo instala, pero a lo que le agrego mi codigo no hace nada, bueno voy a montar las dos versiones solo con la unit y con el componente desde la paleta que cada quien elija cual quiere usar

Por cierto Delphius la duda si es real :D:D:D


La franja horaria es GMT +2. Ahora son las 20:39:34.

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