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
|
|||
|
|||
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. |
#2
|
|||
|
|||
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; En cuanto a la pregunta de si es la mejor forma de hacerlo, queda en el aire por si alguien da alguna idea... |
#3
|
|||
|
|||
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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
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 |
|