![]() |
TPageControl en tiempo de ejecución
Estoy experimentando con un editor de textos con un TPageControl con la idea de poder tener disponibles varios archivos simultáneamente cada uno con su respectiva solapa. Cada TTabSheet contiene un Memo.
No consigo crear un nuevo TTabSheet en el TPageControl en tiempo de ejecución [para crear un nuevo archivo]. En el evento click [Archivo nuevo... ] intento con este código sin respuesta alguna. Código:
TTabSheet.Create(PageControl1); Muchas gracias y hasta pronto |
Debes asignar PageControl1 a la propiedad PageControl del TabSheet recién creado.
// Saludos |
Cita:
Efectivamente con esta indicación he conseguido crear un nuevo TabSheet. Pero no sé cómo crearlo con un Memo en su interior como lo he hecho en tiempo de diseño con el primer TabSheet. Para ser más claro esta es la copia del código con el que ensayo la solución de este problema. Código:
unit PageControl; |
Cita:
// Saludos |
Código:
begin Cita:
¿Cómo sería el código para esta asignación? Muchas gracias |
¿De qué manera estás intentando la última asignación que te indiqué?
No lo puedes hacer con un simple Código:
with TTabSheet.Create(Self) // Saludos |
Cita:
Código:
begin Un saludo y disculpa la insistencia; estoy en los comienzos. |
Es que TabSheet1 no apunta a ninguno de los dos tabshets recien creados...
tenes que hacer que el parent sea el tabshet que queres que sea su contenedor... Hasta luego. ;) |
Cita:
Me doy cuenta que mi error es de concepto. Eso es lo que más me preocupa. No tengo urgencia. Lo que quiero es aprender. Un saludo y gracias por ayudarme. |
Código:
var |
Cita:
Para que el Memo aparezca dentro del TabSheet debes asignarle dicho TabSheet a su propiedad Parent: Memo.Parent := tab sheet Lo que tienes que contestarte es: ¿Quién es dicho tab sheet? Una vez que lo sepas sabrás también qué valor debe tener TabSheet1 antes de asignárselo a Memo1.Parent. // Saludos |
Upsss, perdon como que eche a perder la clase :rolleyes:
|
Bueno, mi respuesta llegó un poco después de la de eduarcol así que será ya tu decisión tratar de entender el concepto y no sólo copiar el código.
// Saludos |
Cita:
Utilizar código hecho por los que más saben es una menera de empezar en esto, así creo. Mi intención siempre ha sido entender el concepto. Creo que es el espíritu de este Foro y la gran ayuda que brinda. Hoy Uds. me han dado mucho para empezar a entender un poco todo esto. Un saludo y hasta pronto |
Está bien. Ahora como ha apuntado roman... es decisión del "alumno" que hacer con la información obtenida.
Has escuchado alguna vez esto: Cita:
La sintaxis... eso es cosa simple. Las ideas, esas si que son complejas.... Hasta luego. ;) |
Cita:
De hecho yo pienso que todos los programadores deberian estar a nivel en conocimientos que los desarrolladores y los diseñadores de sistemas, asi los programas mejorarian su calidad, porq recuerden q: Cita:
|
Cita:
Quizas en algunos casos, pero no cualquiera... no me parece que sea correcto. Hasta luego. ;) |
Hola Eduarcol:
Estoy estudiando tu código que me ha sido muy útil: Código:
var Ahora Bien: El Memo creado no toma las dimensiones del TabSheet. La referencia que da Delphi dice que la propiedad Width no funciona para los Controles contenidos en los TabSheet creados en tiempo de ejecución. Te agradeceré me orientes para conseguir que el Memo creado tome las dimensiones del TabSheet. Un saludo y hasta pronto |
Dale valor a la propiedad Align a alClient del TMemo
Código:
.... |
Ubica la propiedad Align del Memo y colocala ALClient
Align := AlClient; Esta propiedad tiene los valores Código:
AlClient := Se alinea en toda el area del contenedor |
La franja horaria es GMT +2. Ahora son las 03:01:52. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi