Ir al contenido


Foto

Crear una ventana de presentación o iniciación (splash screen)


  • Por favor identifícate para responder
5 respuestas en este tema

#1 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 832 mensajes
  • LocationMisiones, Argentina

Escrito 16 junio 2014 - 10:04

Quiero compartir esta técnica que hace ver muy bien a los programas de aplicación.
Se trata de las splash screen o pantallas de iniciación o pantallas de presentación, que son ventanas que aparecen al inicio al ejecutar una aplicación antes de aparecer la ventana principal de la misma.
En esta ventana o mejor dicho en algún método de su objeto se puede implementar controles iniciales e incluso la apertura de archivos como INIs., leer configuraciones, etc.
Este trozo de código se escribe en lo que corresponde al programa.
También es conveniente deshabilitar la creación automática de muchas ventanas desde la configuración del proyecto. Esto depende de cada aplicación.



delphi
  1. // Muestra la ventana de presentación de la aplicación
  2.   frmSplash:= TFrmSplash.Create(Application);
  3.   frmSplash.Show;
  4.   frmSplash.Update;
  5.  
  6. // Crea el resto de las ventanas
  7.   Application.CreateForm(TDM, DM); // Módulo de datos
  8.   Application.CreateForm(TfrmPrincipal, frmPrincipal); // La ventana principal de la aplicación
  9. // ... otras ventanas que se quieran crear al inicio
  10. // Aquí también se puede hacer otros procesos iniciales de la aplicación
  11.  
  12. // Cierra y destruye la ventana de presentación
  13.   frmSplash.Close;
  14.   frmSplash.Free;
  15. // Aunque Free y Destroy se encuentran al mismo nivel como constructor y destructor de un objeto
  16. // Este último no debe usarse directamente, en su lugar se usa Free.
  17.  
  18. // Continúa con la ejecución normal de la aplicación
  19.   Application.Initialize;
  20.   Application.Run;
  21. // Run inicia la captura de eventos en un ciclo permanente hasta que se cierre la aplicación
  22.  
  23. // La ventana (TForm) correspondiente a la presentación, en este caso frmSplash, puede mostrar
  24. // una imagen en el fondo previamente creada en una aplicación gráfica, o información sobre la aplicación
  25. // fabricante, contacto, etc.
  26. // Además es conveniente utilizar el control de ubicación con la propiedad Position con el valor poDesktopCenter
  27. // La propiedad BorderStyle también conviene modificarse: con bsNone



Hay algunos comentarios que son para novatos (que nadie se ofenda), pero la idea es que sirva a todos.
Espero que les sirva
  • 0

#2 FerCastro

FerCastro

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 637 mensajes
  • LocationCiudad de México

Escrito 16 junio 2014 - 11:12

Hay algunos comentarios que son para novatos (que nadie se ofenda), pero la idea es que sirva a todos.
Espero que les sirva


CRAM

Muchas gracias!! yo lo manejo parecido, pero algunas cosas que pones aqui son para tomarse. Y lo de los comentarios, la verdad muchas gracias, para los que no queremos batallar  :)



  • 0

#3 santiago14

santiago14

    Advanced Member

  • Miembros
  • PipPipPip
  • 334 mensajes
  • LocationCerrillos - Salta - Argentina

Escrito 17 junio 2014 - 08:19

Bueno, esto es lo que yo hago... es muy parecido a lo que está arriba.
En este caso se llama TPresentacion.



delphi
  1. {$R *.res}
  2. var
  3.   respuesta:integer; //para recuperar el valor de la clave
  4.   pass:TPasswordDlg;
  5.   dUsu:dUsuario;
  6.   Presentacion:TPresentacion;
  7.   estadoSeparadores:string;
  8.   grupos:TStringList;
  9. begin
  10.   randomize;
  11.   try
  12.   //separador decimal y de miles
  13.     separadorDecimal('.', LOCALE_SDECIMAL);
  14.     separadorMiles(',', LOCALE_STHOUSAND);
  15.   //SEPARADORES EN MONEDA
  16.     separadorDecimal('.', LOCALE_SMONDECIMALSEP);
  17.     separadorMiles(',', LOCALE_SMONTHOUSANDSEP);
  18.     estadoSeparadores:=' [permanentes]';
  19.   except
  20.   {A veces puede haber problemas con las variables de asignación de
  21.   los simbolos decimal y de miles}
  22.     decimalSeparator:='.';
  23.     ThousandSeparator:=',';
  24.     estadoSeparadores:=' [temporales]';
  25.   end; //del try
  26. //le pongo un título a la aplicación
  27.   Application.Title := 'Troka comunicadores';
  28.   Application.HintHidePause := 2500000;
  29. //Cargo el DataModule
  30.   Application.Initialize;
  31.   Application.CreateForm(TDataModule1, DataModule1);
  32.   archivoINI:='troka.ini';
  33. //La presentación
  34.   Presentacion:=TPresentacion.Create(nil);
  35.   Presentacion.aINI:=ArchivoINI;
  36.   presentacion.Show;
  37.   presentacion.Update;
  38.  
  39.   sleep(1000 + random(2500)); //para que la presentacion esté visible un poco mas
  40.   Presentacion.Free;
  41.  
  42. //.......


  • 0

#4 santiago14

santiago14

    Advanced Member

  • Miembros
  • PipPipPip
  • 334 mensajes
  • LocationCerrillos - Salta - Argentina

Escrito 17 junio 2014 - 08:22

Apareció el bloque Delphi, eso está muy bueno. Pero la letra está medio chiquita ¿no? Podría ser un puntito mas grande...

Gracias.

  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 17 junio 2014 - 01:22

Apareció el bloque Delphi, eso está muy bueno. Pero la letra está medio chiquita ¿no? Podría ser un puntito mas grande...

Gracias.


Arreglado, había un pequeño bug en el CSS de la etiqueta.

Saludos.
  • 0

#6 santiago14

santiago14

    Advanced Member

  • Miembros
  • PipPipPip
  • 334 mensajes
  • LocationCerrillos - Salta - Argentina

Escrito 17 junio 2014 - 02:27

Arreglado, había un pequeño bug en el CSS de la etiqueta.

Saludos.


A ver...


delphi
  1. program Delphi


  • 0




IP.Board spam blocked by CleanTalk.