FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
Debes asignar PageControl1 a la propiedad PageControl del TabSheet recién creado.
// Saludos |
#3
|
|||
|
|||
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; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin TTabSheet.Create(Self); TMemo.Create(Self); with TTabSheet.Create(Self) do begin PageControl := PageControl1; end; end; end. |
#4
|
||||
|
||||
Cita:
// Saludos |
#5
|
|||
|
|||
Código:
begin TTabSheet.Create(Self); TMemo.Create(Self); with TTabSheet.Create(Self) do begin PageControl := PageControl1; end; Cita:
¿Cómo sería el código para esta asignación? Muchas gracias |
#6
|
||||
|
||||
¿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 |
#7
|
|||
|
|||
Cita:
Código:
begin TTabSheet.Create(Self); TMemo.Create(Self); with TTabSheet.Create(Self) do begin PageControl := PageControl1; end; Memo1.Parent := TabSheet1; end; Un saludo y disculpa la insistencia; estoy en los comienzos. |
#8
|
||||
|
||||
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.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#9
|
|||
|
|||
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. |
#10
|
||||
|
||||
Código:
var MiHoja: TTabSheet; begin MiHoja := TTabSheet.Create(Self) MiHoja.PageControl := PageControl1; with TMemo.Create(Self) do Parent := MiHoja; end;
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#11
|
||||
|
||||
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 |
#12
|
||||
|
||||
Upsss, perdon como que eche a perder la clase
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#13
|
||||
|
||||
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 |
#14
|
|||
|
|||
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 Última edición por esocrates fecha: 27-02-2004 a las 21:40:31. |
#15
|
||||
|
||||
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.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#16
|
||||
|
||||
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:
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#17
|
||||
|
||||
Cita:
Quizas en algunos casos, pero no cualquiera... no me parece que sea correcto. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#18
|
|||
|
|||
Hola Eduarcol:
Estoy estudiando tu código que me ha sido muy útil: Código:
var MiHoja: TTabSheet; begin MiHoja := TTabSheet.Create(Self); MiHoja.PageControl := PageControl1; with TMemo.Create(Self) do Parent := MiHoja; end; 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 |
#19
|
|||
|
|||
Dale valor a la propiedad Align a alClient del TMemo
Código:
.... with TMemo.Create(Self) do Parent := MiHoja; Align := alClient; |
#20
|
||||
|
||||
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 AlRigth := Se alinea a la derecha del area del contenedor AlLeft := Se alinea a la izquierda del area del contenedor AlTop := Se alinea en la parte superior del area del contenedor AlBottom := Se alinea en la parte inferior del area del contenedor
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|