Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Realizar una presentación en Delphi (https://www.clubdelphi.com/foros/showthread.php?t=56937)

Peri 31-05-2008 20:32:54

Realizar una presentación en Delphi
 
Me gustaría saber si alguién ha realizado alguna presentación en Delphi, y en caso afirmativo cómo la ha realizado.

No sé si el mejor camino para ello es utilizar varios controles Panel superponiéndolos uno encima de otros y mostrando éstos mediante un botón.

roman 31-05-2008 21:00:26

Usar paneles puede resultar tremendamente complicado para el diseño pues tendrías todos amontonados sobre un mismo formulario. Se me ocurre que en su lugar uses frames. Un Frame es similar a un panel en tanto que funciona como contenedor de otros controles, pero lo diseñas en su propia ventana y ya después puedes insertarlo por código en el formulario principal.

Para hacer un Frame ve al menú File|New|Frame. Te aparecerá una ventana muy similar a la de un formulario en donde podrás colocar controles a gusto.

Para insertar un Frame en el formulario, seleccionas el botón Frames de la pestaña Standard y lo colocas sobre el formulario. Te aparecerá una lista con los frames que tengas creados para que seleciones cuál quieres insertar.

Sin embargo, como mencioné antes, conviene más que insertes los frames por código:

Código Delphi [-]
var
  Frame: TFrame;

begin
  Frame := TMiFrame.Create(Self);
  Frame.Parent := Self;
end;

// Saludos

Neeruu 01-06-2008 01:17:21

Realizar una presentacion en delphi
 
Hola no se bien a que tipo de presentacion te refieres pero podrias usar un PageControl he ir poniendo las diferentes vistas de la presentacion en las Tabs, luego escondes las Tab y listo

Saluda Atte Neeruu:)

Peri 01-06-2008 13:15:02

Muchas gracias roman y Neeruu. Intentaré hacer ambas cosas y veré cual de ellas es la mejor. Ya os comento como me ha ido.

Peri 01-06-2008 20:19:34

He estado probando ambas opciones, y me quedo con los Frames, entre otras cosas porque podemos cambiar la propiedad color de los mismos.

Por otra parte, hay que decir que el código de roman no funciona si no hacemos referencia al módulo del frame en uses.

Me surge dos problemas:

1. ¿Cómo puedo acceder a las propiedades de los controles que ponga en el primer frame desde el segundo frame?
2. Si coloco botones de navegación para ver los frames, no puedo volver hacia atrás para volver a visualizar el frame anterior, puesto que el frame se ha creado y no se puede volver a crear. Por lo tanto es necesario destruir el frame anterior y no sé cómo hacerlo.

Gracias.

Neeruu 02-06-2008 14:57:29

Realizar una presentación en Delphi
 
Hola Peri, sigo sin saber que tipo de presentacion quieres hacer, creo que a lo que te refieres puede ser algo asi como un wizard, donde vas a eligiendo opciones y avanzando!!!!


Bueno mira con los frame no me doy mucha idea como puedes llegar a hacerlo pero manteniendo mi idea te la detallo un poco para ver si esto te sirve!!!

En un Form pones un panel con la propiedad align = bottom, pones un pagecontrol con la propiedad align = client (o como te guste mas el diseño)

en la Pagecontrol creas tantas tab como hojas(por llamarlo asi) tiene tu presentacion; En cada hoja(1 hoja de presentacion = 1 Tab del pagecontrol) agregas lo que quieras pones en ella, pero te recomiendo que siempre pongas un panel como base, osea dentro de cada de Tab pones un panel y sobre ese panel trabajas (ahi si podras cambiar el color)

y asi continuas hasta que todas las tab tienen terminadas las hojas de la presentacion....


Bueno ahora para desplzarme sobre las Tab la idea seria algo asi

En el panel que pusiste primero, junto con la page control,, en ese pones dos botones( anterior, siguiente), cuando inicias la presentacion el boton 'Anterior' debe estar oculto o enabled := False (estetica de diseño)

Ahora si apretamos siguiente en el event onclick podriamos poner algo asi:


Código Delphi [-]
Case PageControl.ActivePageIndex of
   0: begin {Se Apreto por primera ves el Siguiente}
            PageControl.ActivePageIndex = PageControl.ActivePageIndex  + 1; 
            Tbutton(Sender).Caption := 'Siguiente';
            {Estas en la la Tab Inicial y Saltas a la Tab 1}
       end; 
   1: begin {Se Apreto por Segunda ves el Siguiente}
            PageControl.ActivePageIndex = PageControl.ActivePageIndex + 1; 
            Tbutton(Sender).Caption := 'Siguiente';
            {Estas en la la Tab 1 y Saltas a la Tab 2}
       end;
   2: ....
   3: ....
   4: .... 
       {Suponiendo que la tab 6 es la ultima}
   5: begin {Se Apreto por primera ves el Siguiente}
            PageControl.ActivePageIndex = PageControl.ActivePageIndex + 1;
            {Paso a la Tab 6}
            Tbutton(Sender).Caption := 'Finalizar';
       end;
      {y si queremos que se ejecute algo cuando termian la   presentacion ,  suponiendo que va recolectando 
datos ponemos}
   else ShowMessage('Ejecutando');  
end;
btnAnterior.Enabled :=  PageControl.ActivePageIndex <> 0; {Boton Anterior}
btnAnterior.Visible :=  PageControl.ActivePageIndex <> 0;

Para el evento Click del Botton Anterior puedes poner algo asi:
Código Delphi [-]
Case PageControl.ActivePageIndex of
   {0:....; }
    {en la primiera tab nunca esta activo el anterior}
   1: begin {Se Apreto por el boton Anterior}
            PageControl.ActivePageIndex = PageControl.ActivePageIndex - 1;
            {Esto es por si estoy en la ultima tab}
            btnSiguiente.Caption := 'Siguiente';
            {Estas en la la Tab 1 y Saltas a la Tab Inicial}
       end;
   2: .... {Estas en la la Tab 2 y Saltas a la Tab 1}
   3: .... {Estas en la la Tab 3 y Saltas a la Tab 2}
   4: .... {Estas en la la Tab 4 y Saltas a la Tab 3}
end;
btnAnterior.Enabled :=  PageControl.ActivePageIndex <> 0; {Boton Anterior}
btnAnterior.Visible :=  PageControl.ActivePageIndex <> 0;


No se si se entiende mucho lo escribi de memoria
Cualquier duda preguntamey veo en que te puedo ayudar!!!


Saluda Atte Neeruu!!!:)

Peri 04-06-2008 12:40:01

Hola Neeruu

Intentaré hacer lo que dices a ver cómo me queda. Sí, en realidad la presentación es tal como has explicado, con dos botones de navegación siguiente y anterior para navergar por las páginas, que serían como los Tab.

Muchas gracias, ya te diré cómo me ha ido.

Peri 07-06-2008 12:54:28

Bueno Neeruu, no queda del todo mal, es otra forma de hacer lo mismo.

Creo que el primer panel que tú decías que hay que poner, creo que no hace falta. Los otros sí, en caso de tener que cambiar el color de fondo.

Lo que no sé es cómo se puede quitar los tab para que no aparezcan.

Con los frames parece que es más fácil tal como decía roman. Pero a ver si roman me puede ayudar cómo se puede llamar u obtener el valor de una propiedad de algún control colocado en otro frame. He probado todas las combinaciones posibles, pero no lo consigo...

Gracias

Neeruu 07-06-2008 17:00:07

Realizar una presentación en Delphi
 
Hola para quitar los Tab tienes que irte a las tabsheets y (por cada una) poner la propiedad Tabvisible en False!!!!!


Prueba con eso



Saluda Atte Neeruu!!!:)


La franja horaria es GMT +2. Ahora son las 14:11:33.

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