Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Uso correcto de TFrame (https://www.clubdelphi.com/foros/showthread.php?t=23933)

jars 02-08-2005 22:00:40

Uso correcto de TFrame
 
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.

Código Delphi [-]
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,

Cita:

Empezado por Lepe
Juer ha quedado chulo el ejemplo :D :D

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


La franja horaria es GMT +2. Ahora son las 04:37:02.

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