Cita:
Empezado por jsc
( sin tener que crear un Form Diferente por cada Botón ). Por poner un ejemplo, tipo Microsoft Outlook Express [ Si pulsas pestaña tareas el contenido de la ventana varía sobre la Bandeja de Entrada y así sucesivamente ]
|
Ampliando la propuesta de
delphi.com.ar
Puedes crear un mismo Formulario o Tframe con una propiedad llamada Carpeta (por ejemplo), de tal forma que cuando se modifique esa propiedad, el Tframe o el Form, se encargue de liberar lo que esté mostrando y crear lo que deseas ver. De esta forma, unicamente en cada boton tendrías que poner: Frame1.carpeta := cEntrada; y con esto se libera la bandeja que se estuviese viendo y se cargaria la bandeja de entrada.
Código Delphi
[-]
type TCarpetas = (cNone, cEntrada, cSalida, cBorrador);
...
FCarpeta : Tcarpetas;
procedure SetCarpeta(Value:TCarpetas);
public
property Carpeta : TCarpetas read FCarpeta Write SetCarpeta default cNone;
end;
function Setcarpeta(Value :Tcarpetas);
begin
if Value = Fcarpeta then Exit; if Fcarpeta <> cNone then Liberar el anterior
Fcarpeta := Value;
Cargar nuevo tipo a Mostrar
En este caso que pongo, bandeja de entrada y Salida de Outlook, el tipo de informacion a presentar es identica... no necesitas hacer varios frames o formularios, en otro caso si lo necesitarias.
Saludos y espero te sirva de punto de partida