![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
El problema era otro
Muchas gracias a todos por responderme, pero la verdad es que el problema era otro...
Todo eso que me dijeron yo lo había probado (eso de jugar con los parents) pero me lo seguia sin mostrar como mínimo, pues hasta en algunos casos hasta me tiraba error ![]() El tema es que cuando le asigno las propiedades de Self.Top, Self.Left, etc. estas propiedades todavía no tienen un valor (ya que el componente se esta creando), solamente por eso es que no se mostraba, ya lo corregí y ahora funciona perfectamente... ![]() Igualmente muchisimas gracias a todos, nuevamente. |
#2
|
||||
|
||||
Me parece que estas cometiendo un error al hacer:
Código:
pnlFondo.Top := Self.Top; pnlFondo.Left := Self.Left; pnlFondo.Height := Self.Height; pnlFondo.Width := Self.Width; Código:
pnlFondo.Top := 0; pnlFondo.Left := 0; pnlFondo.Height := Self.Height; pnlFondo.Width := Self.Width; Otra opción puede ser trabajar con BoundsRect y ClientRect o con la propiedad Align := alClient! Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#3
|
||||
|
||||
Cita:
// Saludos |
#4
|
||||
|
||||
Cita:
![]() Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#5
|
||||
|
||||
Cita:
![]() De cualquier manera ya haré la prueba pues realmente me intriga ver qué aspecto tiene una cosa así. Para Diegoval que dijo: Cita:
// Saludos |
#6
|
|||
|
|||
Ahora entiendo menos...
El tema es el siguiente:
El ejemplo que yo puse (un TLabel con un TPanel) es medio tonto y la verdad es que por si no funciona para nada... pero me sierve para probar como hacer para crear un componente visual dentro de otro tambien visual... por ejemplo... Yo quiero hacer un componente que represente un cuadrado dentro de otro y luego unir los vertices superior izuierdo del mas grande con un superior izquierdo del mas chico y asi...(lo que simularía un diente en la planilla odontológica) para despues capturar el mensaje click y hacer lo que corresponda segun en que area del diente clickee... ahora viene el problema de cómo hacerlo. A mi se me ocurrio heredar de un TShape y luego crear otro TShape para ponerlo dentro y luego hacer las lineas que unan los vértices. Bueno, el tema es que se cómo hacer para crear un componente desde otro componente, o sea, la pregunta sería como hacer para hacer eso? Lo anterior (del componente TLabel y el TPanel) lo solucioné asignando las propiedades Left, Top, etc. del panel en el evento Paint del Label y no en el Create. (Igualmente no me funcionó del todo bien, seguramente no se debe hacer asi...) La verdad me parece tan sencillo que no se por qué no me sale, pero tampoco se me ocurren soluciones alternativas para crear un diente...!!! |
#7
|
||||
|
||||
Permíteme hacerte unos comentarios:
De verdad me parece estupendo que desees aprender y siempre es útil trabajar a prueba y error- a veces no queda más remedio. Pero también es muy recomendable que se tome uno un tiempo alejado del ordenador para leer la documentación. En tu caso, ya que deseas escribir componentes te recomiendo que leas el apartado Component Writer's Guide. No se trata de que lo entiendas todo de una sóla vez pero sí de que te des una idea del tipo de cosas que se involucran. Por ejemplo, encontrarás ahí la información acerca del método Loaded, que sirve precisamente para inicializar valores que dependen de que las propiedades de la componente ya estén cargadas. Asímismo te darás una idea general de que son los controles contenedores y porque entonces no es una buena idea tratar de meter una componente en un TLabel. // Saludos |
#8
|
||||
|
||||
Cita:
![]() Código:
Constructor TLabelTimer.Create(AOwner : TComponent); Begin inherited Create(AOwner); Código:
constructor TCustomLabel.Create(AOwner: TComponent); begin inherited Create(AOwner); ControlStyle := ControlStyle + [csReplicatable]; Width := 65; Height := 17; ... Código:
pnlFondo.Parent := Self.Parent; Cita:
¡Hasta pronto! Al González ![]() Los negocios se deben ajustar a las capacidades humanas, no las capacidades humanas a los negocios. Por una vida laboral sana ![]() |
#9
|
||||
|
||||
Cita:
De hecho sí es lo que pretendía y de ahí las recomendaciones de cadetill y mia. // Saludos |
#10
|
||||
|
||||
![]() ¡Hola a todos!
Román: Me refiero a que no pretendía meterlo visual y formalmente hablando. Es decir, en ningún momento parece haber intentado que el objeto etiqueta fuera el contendor del objeto panel (como tu lo señalas). Si revisas de nuevo su código y comentarios, notarás que Diegoval intentaba crear un objeto TPanel dentro de (junto con) la creación del objeto etiqueta, para que la etiqueta estuviese acompañada de un panel con la misma posición, tamaño y contenedor padre. Un reloj con realse por sobreposición visual de controles. De cualquier manera, reconozco que el tema presentó algunos nudos de confusión, y que tratándose de creación de controles, palabras como dentro se prestan a diversas interpretaciones. Un abrazo. Al González ![]() |
#11
|
||||
|
||||
Je, je, tienes toda la razón Al. Creo que este hilo fue demasiado largo y terminé confundiéndome con mis propias indicaciones
![]() // Saludos |
![]() |
|
|
![]() |
|