Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-10-2006
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Form MDIchild controlados por un TabControl

Hola foristas.

Uso D7 y FB2.0 La idea básicamente es esta: http://www.codeproject.com/csharp/MDITabBrowsing.asp
Tengo una aplicación MDI, y mis clientes piden que las ventanas 'hijas' se abran maximizadas, pero que puedan facilmente cambiar de una ventana a otra. Así que se me ocurrió poner un tabcontrol alineado al Top y uso los eventos OnCreate, OnDestroy, OnActivate, etc. para controlar los Forms que se abren y la pestaña a las que lo asocio.

La duda:
- Me gustaría que cada pestaña del tabcontrol tuvieran un pequeño icono en forma de aspa para que el usuario pueda cerrar las pestañas (y su form asociado). ¿se puede hacer o hay que buscar un componente apropiado?
- ¿Lo estoy haciendo de la mejor manera posible? Me lo he currado, pero si alguien viene con un truquito de la API no me importará rectificar el código.

Gracias a todos.
Responder Con Cita
  #2  
Antiguo 27-10-2006
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Me respondo yo: Teneis razón... era demasiado obvio.

Asignar un TImageList, era tan simple la respuesta al cómo poner un gráfico en los tabs que no merecía la pena ni que contestarais.... Para controlar el OnClick sobre el Bitmap que se dibuje he programado el evento onMouseUp de la siguiente forma:

Código:
procedure TFrmMain.tcVentanasMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  i : Integer;
begin
  i := tcVentanas.TabRect(tcVentanas.TabIndex).Left;
  if PtInRect(Rect(7,2,20,16), Point(X-i, Y)) then
    SendMessage((tcVentanas.Tabs.Objects[tcVentanas.TabIndex] as TForm).Handle, WM_CLOSE, 0, 0);
end;
Y funciona perfectamente (ni que decir tiene que los forms que se abren los he asociado a la lista Objects de los Tabs del TabControl).

En cuanto a la pregunta de si es la mejor forma de hacerlo, queda en el aire por si alguien da alguna idea...
Responder Con Cita
  #3  
Antiguo 11-05-2010
barencibia barencibia is offline
Miembro
 
Registrado: nov 2003
Posts: 11
Poder: 0
barencibia Va por buen camino
ayuda

Hola, he leído tu mensaje y me ha interesado mucho. He estado intentado hacer lo que comentas con el TabControl pero no lo consigo. Me podrías decir como abres varios formularios en un tabcontrol en diferentes pestañas. Yo lo hago pero cuando abro un nuevo form, el otro me desaparece.
Te pongo lo que he hecho a ver que me dices: Tengo un tabcontrol que se llama TabControl1:

frmPersonal := TfrmPersonal.Create(TabControl1);
TabControl1.Tabs.Add('Personal');
TabControl1.TabIndex := 0;
frmPersonal.Parent := TabControl1;
frmPersonal.Align := alClient;
frmPersonal.BorderStyle := bsNone;
frmPersonal.Left := 0;
frmPersonal.Top := 0;

Pero cuando abro el formulario de Clientes de la misma manera, la ventana de personal me desaparece. ¿Como asignas un form a una pestaña?

Muchas 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
PageControl,TabControl,TabSheet ¿ninguno actualiza en tiempo de diseño? gambitero Varios 2 05-07-2006 11:53:32
help MDIChild !! kye_z Varios 6 18-11-2004 20:10:56
Problema estúpido al crear un form MDIChild Jan_polero Varios 1 26-10-2004 21:55:38
Pososion form MDIChild silviodp OOP 1 25-10-2004 15:21:27
Menu en una MDIChild D.M Varios 1 13-09-2003 18:49:41


La franja horaria es GMT +2. Ahora son las 14:20:32.


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