Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-09-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
TLabeledEdit y TPageControl

Estoy trabajando con BCB 6.

Tengo un formulario con un TPageControl que tiene tres TabSheet. Si pongo un TLabeledEdit (o un TLabel, me da lo mismo) en el fomulario y luego lo traslado sobre el TPageControl, el Caption de la etiqueta se oculta debajo del TPageControl.



¿Cómo puedo hacer para que se vea el Caption? Me ocurre lo mismo con un TLabel que con un TLabeledEdit.
Responder Con Cita
  #2  
Antiguo 27-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.078
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola Angel, por favor, no olvides poner títulos descriptivos, gracias
Responder Con Cita
  #3  
Antiguo 27-09-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Angel, esa es una incomodidad propia de delphi y Builder, al menos hasta las versiones que yo he usado. Para poder pasar un control de un contenedor a otro debes editar a mano el archivo dfm trasladando el código del control de un contenedor al otro.

En tu caso quedaría algo así:
Código:
  object PageControl1: TPageControl
    Left = 64
    Top = 40
    Width = 273
    Height = 185
    ActivePage = TabSheet3
    TabIndex = 2
    TabOrder = 0
    OnChange = PageControl1Change
    object TabSheet1: TTabSheet
      Caption = 'TabSheet1'
      object Label1: TLabel
        Left = 80
        Top = 80
        Width = 32
        Height = 13
        Caption = 'Label1'
      end
    end
    object TabSheet2: TTabSheet
      Caption = 'TabSheet2'
      ImageIndex = 1
    end
    object TabSheet3: TTabSheet
      Caption = 'TabSheet3'
      ImageIndex = 2
    end
  end
Saludos.
Responder Con Cita
  #4  
Antiguo 29-09-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias por la respuesta escafandra. El problema no es ese, y veo que me he explicado mal. Si yo pongo un TLabel o un TLabeledEdit directamente en el TabSheet se ve sin ningún problema.

En esta imagen Label1 está dentro del TabSheet:
Código:
  object PageControl1: TPageControl
    Left = 5
    Top = 5
    Width = 289
    Height = 193
    ActivePage = TabSheet1
    TabIndex = 0
    TabOrder = 0
    object TabSheet1: TTabSheet
      Caption = 'TabSheet1'
      object Label1: TLabel
        Left = 5
        Top = 15
        Width = 32
        Height = 13
        Caption = 'Label1'
      end
    end
    object TabSheet2: TTabSheet
      Caption = 'TabSheet2'
      ImageIndex = 1
    end
  end
pero Label2 está directamente en el Form1. Si a este Label2 le modifico la porpiedad Top y le pongo, por ejemplo, 35 para que esté encima del TabSheet se queda como en la imagen de mi otro mensaje, por debajo del TPageControl; los controles SendToBack y BringToFront no producen ningún efecto.
Responder Con Cita
  #5  
Antiguo 29-09-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hola Angel, por favor, no olvides poner títulos descriptivos, gracias
Tienes razón. Disculpa.
Responder Con Cita
  #6  
Antiguo 29-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Angel.Matilla

Estando superpuestos en un mismo contenedor, un TGraphicControl siempre se ocultará detrás de un TWinControl.

Si el que se encuentra detrás del TPageControl se trata de un TWinControl, un TEdit por ejemplo , bastaría con hacer:
Código Delphi [-]
  Edit1->BringToFront();
Pero eso no funcionará con un descendiente de TGraphicControl y ese es el caso de TLabel.

Lo que podrías hacer es lo siguiente:
Código PHP:
...
TLabel *LB;

...
void __fastcall TForm1::btnLabelTabSheetClick(TObject *Sender)
{
  if(
LB == NULL){
    
LB Label1;
    
RemoveComponent(LB);
    
TabSheet1->InsertComponent(LB);
    
LB->Parent TabSheet1;
    
LB->Left 10;
    
LB->Top  10;
    
LB->Caption "Soy Label1 y ahora\nestoy visible en TabSheet1";
    ...
  }

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 29-09-2014 a las 12:58:34.
Responder Con Cita
  #7  
Antiguo 29-09-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Comprendido. Ahora entiendo por qué con un TLabeledEdit sí veo el cuadro (parte TEdit) y no el rótulo (parte TLabel). Sólo una pregunta: Esa función btnLabelOnTabSheetClick, ¿está definida port el usuario o es un evento del TabSheet?
Responder Con Cita
  #8  
Antiguo 29-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Es el evento OnClick de un TButton llamado "btnLabelTabSheet" (o el evento que prefieras)

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 29-09-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Perfecto. Muchas gracias.
Responder Con Cita
  #10  
Antiguo 29-09-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No entiendo para qué hacer por código lo que se puede hacer desde el diseño. Se selecciona la componente, se abre el menú contextual, se escoge Cortar y luego se pega dentro del contenedor deseado.

// Saludos
Responder Con Cita
  #11  
Antiguo 29-09-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por roman Ver Mensaje
No entiendo para qué hacer por código lo que se puede hacer desde el diseño. Se selecciona la componente, se abre el menú contextual, se escoge Cortar y luego se pega dentro del contenedor deseado.
Se ha ido todo un poco de madre. El problema es este: Tengo tres tablas distintas sin ninguna relación entre sí pero que las tres tienen un campo llamado título. Para ahorrar no sólo diseño sino también para simplificar el código quería poner un TEdit, con su TLabel, o un TLabeledEdit (estoy usando BCB6) único común a tres pestañas de un TPageControl. Usando un TLabeledEdit; si lo pongo dentro del TForm, pero no dentro del TPageControl, como en el Label2 de la imagen:

y luego modifico la propiedad Top de dicho elemento, poniendo por ejemplo 35, en lugar de ver ese Caption Label2 simplemente el TLabel desparece y, en diseño, se ve como en la imagen del primer mensaje

Las sugerencias que me habéis hecho se basan todas en hacer que el TLabel o el TLabeledEdit dependa del TPageControl (Label1->Parent = PageControl1) y no es eso.

Yendo a modificar directamente el dfm a pedal se me ocurrió esta forma:
Código:
  object PageControl1: TPageControl
    Left = 125
    Top = 55
    Width = 516
    Height = 291
    ActivePage = TabSheet1
    TabIndex = 0
    TabOrder = 0
    object Label2: TLabel
      Left = 270
      Top = 60
      Width = 32
      Height = 13
      Caption = 'Label2'
    end
    object TabSheet1: TTabSheet
      Caption = 'TabSheet1'
      object Label1: TLabel
        Left = 20
        Top = 15
        Width = 32
        Height = 13
        Caption = 'Label1'
      end
    end
  end
poniendo el TLabel ANTES de los TabSheet, pero el resultado es el mismo. Gracias por las respuestas, pero ecfisa me dio la clave y he deducido que lo que pretendo no es posible.
Responder Con Cita
  #12  
Antiguo 29-09-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Usa un TStaticText. Es como un TLabel, pero es un TWinControl en lugar de un TGraphicControl.

// Saludos
Responder Con Cita
  #13  
Antiguo 29-09-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Incluso puedes usar un TFrame con un TLabel y un TEdit dentro. El TFrame lo colocas arriba del PageControl y tienes el efecto deseado.

// Saludos
Responder Con Cita
  #14  
Antiguo 29-09-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Usa un TStaticText. Es como un TLabel, pero es un TWinControl en lugar de un TGraphicControl.
¿Ves? Esto no se me había ocurrido y me viene de perlas. Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ver tpagecontrol vicentnew Varios 1 07-02-2013 15:06:50
evento de tpagecontrol gonza_619 Varios 1 20-11-2010 21:09:25
Problema con TlabeledEdit Besto Varios 5 01-09-2008 13:39:47
TPageControl Neiro SQL 4 06-10-2006 22:25:57
TpageControl agora18 Varios 6 17-10-2003 01:04:43


La franja horaria es GMT +2. Ahora son las 01:39:29.


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
Copyright 1996-2007 Club Delphi