PDA

Ver la Versión Completa : Uso correcto de TFrame


jars
02-08-2005, 22:00:40
Hola a todos:

Mi pregunta es la siguiente:

En el formulario principal tengo un TListView y al costado un TFrame en el que se van refrescando los datos según sea el item seleccionado del TListView. Entr el ListView y el Frame hay un TSplitter con boton que si se presiona, desaparece el Frame.

Lo que yo quiero es que cuando el frame esta escondido, con un doble-click en el item del ListView se cree un formulario que contiene el mismo frame.

La primer parte funciona bien pero no logro mostrar el nuevo formulario.

Es decir, como hago para mostrar (sin duplicar el codigo) un TLabel que esta en el Frame del formulario principal o el TLabel del frame del nuevo formulario???

Ojala me haya explicado bien.

Gracias.

Jorge.

Lepe
03-08-2005, 12:56:53
A ver que te parece este invento:

Te creas una nueva ventana, llamemosla form3, dentro colocas el frame que quieres, y en tiempo de ejecución, lo que haces es camuflar el form3, bien poniendolo entre el Splitter o bien sacandolo fuera.

Lo que estoy haciendo en este código es cambiando el padre de la ventana Form3 y ocultando la barra de titulo. Le he puesto color rojo al Form3 para que se vea cuando pulsas el boton 1.

Adicionalmente, tendrás que modificar el Form3.Align := AlRight; para que al meterlo dentro del Form1, se quede en la posición correcta, es decir entre el Listview, el Splitter, y despues el Form3.


procedure TForm1.Button1Click(Sender: TObject);
begin
Form3.Color := clRed;
form3.Parent := Self;
Form3.Top := 0;
Form3.Left:= 0;
Form3.Width := 100;
Form3.Height:= 100;
Form3.BorderStyle := bsNone;
Form3.Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form3.Color := clRed;
Form3.Parent := nil;
Form3.Top := 0;
Form3.Left:= 0;
Form3.Width := 100;
Form3.Height:= 100;
Form3.BorderStyle := bsSizeable;
Form3.Show;
end;


Obviamente, ya no necesitas el frame que tienes puesto, con este del Form3 te vale para todo.
Un saludo

Lepe
03-08-2005, 13:08:42
Juer ha quedado chulo el ejemplo :D :D

Al pulsar el boton 2 quizás quieras poner el form3.FormStyle a fsOnTop, para que no se oculte detrás del Form1.

Al pulsar el boton 1 ponle el estilo fsNormal

Un saludo

jars
03-08-2005, 15:52:12
Gracias Lepe, lo voy a probar.

dec
03-08-2005, 16:18:00
Hola,


Juer ha quedado chulo el ejemplo :D :D

¡Admiro a la gente que no tiene abuela, como suele decirse! ;)