Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
inhabilitar pestaña TtabbedNotebook

es posible inhabilitar una pestaña o ponerla no visible.
como hago para recorrerlas??
se recorrer un groupbox pero con las pestañas no lo consigo.

Soy novata y lo use en mi aplicacion y ya tengo todas las pestañas con funcionalidad y quisiera al iniciar la aplicaion deshabilitar alguna, he leido q es mejor el pagecontrol pero ya lo tengo todo hecho si pudo evitar el modificarlo todo mejor.


Saludos
Responder Con Cita
  #2  
Antiguo 03-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Piensa que el componente que mencionas está en la pestaña "Win 3.1" de la paleta de componentes de Delphi. Desde hace tiempo se viene utilizando el componente "TPageControl", o "TTabControl", de la pestaña "Win32" de la paleta de componentes. Lo digo porque alguna vez algún compañero no sabía esto y quedó encantado con "TPageControl" y ya no quiso saber nada del componente que mencionas.

Tal vez quisieras tú echar un vistazo a estos componentes que menciono.

Pueden deshabilitarse pestañas, pueden ocultarse, pueden "recorrerse" (?), etc., etc.

Edito: No leí completamente tu mensaje y eso me ha equivocado, mea culpa. Necesitas, parece ser, utilizar el componente que mencionas... ¿De veras te sería tan costoso cambiar?

Echando un vistazo por encima al componente de marras no lo veo nada práctico, en comparación, claro está, con su "hermano mayor".

No sé a qué te refieres con "recorrer" las pestañas, pero, piensa que están en una propiedad de tipo "TStrings" y que esta propiedad cuenta con elementos "indizados", esto es, sus elementos tienen un índice determinado. Por otro lado, puedes hacer lo siguiente para que una pestaña en concreto se muestre:

Código Delphi [-]
TabbedNotebook1.PageIndex := 1;

Mostraríamos la segunda pestaña: puesto que el índice comienza en cero. Por otro lado, no ví forma de deshabilitar pestañas o hacerlas invisibles, sí de hacer todo el componente invisible o deshabilitarlo por completo. Es posible que pudiera hacerse algo a base de mensajes de Windows o algo así... quiero decir, a más bajo nivel que usando la propia VCL, los propios métodos y propiedades del componente.

Yo me plantearía seriamente el cambio del componente... puede que te costara algo de trabajo, pero, también que te mereciera la pena.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 03-10-2006 a las 01:59:35.
Responder Con Cita
  #3  
Antiguo 03-10-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
sino lo tuviera ya todo no me importaria usar el otro, pues lei hilos d eotra gente y se dicen maravillas!!
no me rindo tan pronto pero si le echo muchas horas y no doy con ello...
tocará modificar supongo q copy paste valdria para la modificacion sustituyendo el nombre de ttabbednotebook por el nombre del pagecontrol
próximamente informaré

gracias por ayudar

Saludos
Responder Con Cita
  #4  
Antiguo 03-10-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
por ahora consegui obtener el nombre de las pestañas, es decir q ya lo recorro el ttabbednotebox, por si le interesara a alguien:

Código Delphi [-]
for I:=0 to Pestanas.ControlCount-1 do
         begin
         if Pestanas.Controls[i] is TTabPage then
         begin
         nombre:=Pestanas.pages.Strings[i];
         showmessage('nombre: '+nombre);
         end;
Responder Con Cita
  #5  
Antiguo 03-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Acaso no te parezca mal esta otra forma de hacer lo que dices:

Código Delphi [-]
var
  i: integer;
begin
  for i := 0 to TabbedNotebook1.Pages.Count-1 do
    ShowMessage(TabbedNotebook1.Pages[i]);
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 03-10-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
pues si mejor, gracias, de todas formas..
vale he de modificar
yo tambien se deshabilitarlo por completo pero por fin di con algo en la ayuda ( aunq mi ingles no e smuy bueno.. lo entendi) que me abrió los ojos dice asi:
Disabling a TTabControl object disables all tabs because it is one control. To disable individual tabs, use TPageControl and disable the individual TTabSheet controls that represent the pages.

Important: When creating new applications, do not use these controls.
The following table indicates which control should be used instead:
Win 3.1 control Replace with Palette page of new control
DBLookupList DBLookupListBox Data Controls
DBLookupCombo DBLookupComboBox Data Controls
TabSet TabControl Win32
Outline TreeView Win32
TabbedNoteBook PageControl Win32
NoteBook PageControl Win32
Header HeaderControl Win32

por si alguien en un futuro fuera = o mas cabezon/a q yo
Responder Con Cita
  #7  
Antiguo 03-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno, hombre, no hay caso. ¡Si todo lo que pasaran fueran estas cosas! ¿No te parece?

Cita:
vale he de modificar
Sustituye modificar por rectificar y aún podrá llamársete sabia/o.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 03-10-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
jeje
gracias por tu ayuda,
viste el hilo de seleccionar fila dbgrid stack overflow ??
tal vez me abras los ojos y ahorre tiempo

Saludos
Responder Con Cita
  #9  
Antiguo 03-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. Lo cierto es que no he utilizado nunca los componentes de que hablas en el Hilo al que te refieres, por cierto, que no lo había visto y lo localizé a través de esta búsqueda en los Foros, que tal vez sirva, así que, digo, me temo que no soy el más indicado para ayudarte...

Espero que algún otro compañero pueda echarte una mano... creo que todavía es hora, esto es, que acaso haya que tener un poco de paciencia.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 03-10-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
gracias por tu paciencia y tu tiempo
busque ya, pero a nadie le sucede el desbordamiento de pila, eso hare, esperar.

Hasta la proxima
Responder Con Cita
  #11  
Antiguo 04-10-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
Problema solucionado, no se inhabilitar una sola pestaña, pero lo que he logrado es deshabilitar todas las pestañas excepto una (dejar sólo una con sus botones y demás), me explico:

tengo 4 pestañas:
1. Insertar,
2. Modificar/Eliminar,
3. Listado,
4. Salir.

yo queria controlar que cuando la tabla estuviera vacía se inhabilitaran las pestañas 2 y 3, pues al no haber registros solo puedes insertar o salir.

la pestaña salir no contiene nada, solo en el evento click de las pestañas tengo:
Código Delphi [-]
if Pestanas.ActivePage='Salir' then Cerrar(Proveedores);

en el evento crete del form puse:
Código Delphi [-]
procedure TProveedores.FormCreate(Sender: TObject);
begin 
{si la tabla esta vacia, deshabilito las pestañas}
     if ZTable1.IsEmpty then
         Pestanas.DisableAlign;//oculta el contenido de las pestañas
end;
lo cual me deja activa la pestaña 1 de insertar. y una vez insertado el 1º registro..
Código Delphi [-]
if not ZTable1.IsEmpty then Pestanas.EnableAlign;
espero haberme explicado bien, aqui lo dejo por si a alguien le sirviera
Saludos y 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
Pestaña de ADO Alexander Varios 1 24-05-2006 00:21:46
Como inhabilitar Ctrl+Supr en Rejilla de datos pinoxito OOP 2 30-07-2004 03:24:51
Inhabilitar Internet nefy Internet 0 13-07-2004 21:04:51
inhabilitar tab en un dbgrid en la última columna davidgaldo Conexión con bases de datos 2 16-04-2004 17:30:24
inhabilitar mouse Barriccel API de Windows 2 04-12-2003 15:07:35


La franja horaria es GMT +2. Ahora son las 22:16:21.


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