Ir al contenido



Foto

error con Estilo dsSplash en TForm

splash tform dssplash

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

#1 cram

cram

    Advanced Member

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

Escrito 28 octubre 2016 - 01:19

Hace poco estuve experimentando con CodeTyphon la creación de una ventana del tipo "splash screen", ya saben, es que aparece hasta terminar la iniciación del programa para luego dar entrada al formulario principal. Hallé un estilo que desconocía: dsSplash, que se encuentra junto con MDIChild, MDIForm, Normal, etc. en la propiedad FormStyle, pero cuando uso este estilo, CodeTyphon encuentra un error que deja en estado inconsistente al IDE, inclusive, al reiniciar e intentar cargar el proyecto el error persiste y es algo así como: perder el proyecto y tener que comenzar todo de nuevo.

 

Adjunto un recorte que muestra el error.

Archivo adjunto  error.png   53,97KB   0 descargas

 

¿Alguien sabe a qué se debe?

 

Saludos

 


  • 0

#2 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 709 mensajes
  • LocationArgentina

Escrito 28 octubre 2016 - 03:54

Interesante, y que pasa si le pones ese valor en tiempo de ejecucion?


  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.858 mensajes
  • LocationArgentina

Escrito 28 octubre 2016 - 06:05

Con CodeTyphon 5.6 en Windows 8.1 obtengo ese mismo error, pero una vez que acepto puedo continuar trabajando.

Hice una prueba:

1. Añado un 2do form.

2. Al form2 le establezco esa propiedad para que sea del tipo Splash

3. Da el error, aceptar.

4. Diseñar el splash a gusto

5. Poner Visible en false al form1

6. Poner visible en true al form2

7.Ir al .lpr

8. Poner en uses la unidad crt para poder usar Delay()

9. Programar para que splash se muestre por 2 segundos y luego se oculte:


delphi
  1. begin
  2. RequireDerivedFormResource:=True;
  3. Application.Initialize;
  4. Application.CreateForm(TForm1, Form1);
  5. Form1.Visible := false;
  6. Application.CreateForm(TForm2, Form2);
  7. Form2.Visible := true;
  8. Delay(2000);
  9. form2.Visible:= false;
  10. form1.Visible:= true;
  11. Application.Run;
  12. end.

10. Compilar y ejecutar.

 

 

Subo una imagen para que vean como lo diseñé. Y también adjunto los fuentes.

Lamentablemente el sistema de splash no me ha sido posible capturarlo. El print screen no lo detecta. Desconozco el motivo.

 

Saludos,

 

Archivos adjuntos


  • 2

#4 cram

cram

    Advanced Member

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

Escrito 31 octubre 2016 - 01:00

Que bueno, gracias por investigar Delphius.

Te comento que las ventanas "splash" son simples de programar sin esa opción de modo, pero lo que me extraña es que ese error me impidió abrir el proyecto nuevamente. Luego de varios intenntos lo dejé, porque considero que de no ser sencillo, prefiero seguir con el modo en que siempre programé una de esas ventanas.

Aún así, apenas pueda lo comprobaré. Lo interesante es que al oculatar el primer form, se muestre el segundo, como si se cambiara el form principal del proyecto en forma dinámica.

 

Otra cosa que noté es que se debe llamar al procedimiento Initialize de Application antes de crear cualquier ventana, cosa que en Delphi, no es necesario. Puesto que en Delphi puedo crear la ventana "splash" y luego iniciar Application, para terminar con la creación del resto de los forms.

 

Saludos.


  • 0

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.858 mensajes
  • LocationArgentina

Escrito 31 octubre 2016 - 02:55

Que bueno, gracias por investigar Delphius.

Te comento que las ventanas "splash" son simples de programar sin esa opción de modo, pero lo que me extraña es que ese error me impidió abrir el proyecto nuevamente. Luego de varios intenntos lo dejé, porque considero que de no ser sencillo, prefiero seguir con el modo en que siempre programé una de esas ventanas.

Aún así, apenas pueda lo comprobaré. Lo interesante es que al oculatar el primer form, se muestre el segundo, como si se cambiara el form principal del proyecto en forma dinámica.

 

Otra cosa que noté es que se debe llamar al procedimiento Initialize de Application antes de crear cualquier ventana, cosa que en Delphi, no es necesario. Puesto que en Delphi puedo crear la ventana "splash" y luego iniciar Application, para terminar con la creación del resto de los forms.

 

Saludos.

 

Tengo que confesar que no investigué demasiado. Directamente asumí que no debiera de ser posible establecer el form1, el que por defecto es el principal, como el splash. Y por eso que que en mi demo he creado el form2.

No me he fijado que posibles cambios produce el de hacer al form1 (y sin que existan otros forms. Es decir, comenzando un proyecto nuevo desde cero) el splash. Y si es que hace ese trabajo de forma automática y dinámica como dices. En el .lpr en cuanto vi el orden en que se definió la creación del form directamente asumí mis ideas de como se usa y así es que establecí el código para eso.

 

Yo desconocía la posibilidad de hacer un splash de esa forma. Y es algo nuevo para mi. Tendré que darle una mejor revisión al tema.

A ese tipo de error lo he visto en la anterior versión de CT que usaba al momento de hacer uso de un TDataModule y estirarlo para ponerle más datasets. El error solo afectaba en tiempo de diseño y no daba efectos en el resto de la aplicación. Una vez aceptado podía trabajar sin problemas.

 

Saludos,


  • 0

#6 cram

cram

    Advanced Member

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

Escrito 01 noviembre 2016 - 09:22

Es un buen razonamiento el de los forms y la imposibilidad de crear como principal al splash. No se me ocurrió.

Solo estaba probando los estilos, cuando ví en la lista a fsSplash... nunca había escuchado sobre su existencia.

 

Te cuento que por mi parte seguiré utilizando la manera antigua (y l a de Delphi) para crear splash, ya que suelo darle mucho más funciones que la de bienvenida. Es en esta pantalla que suelo iniciar constantes globales, probar la base de datos, revisar el estado de la aplicación, hacer la configuración inicial, y en uno de mis programas cambiar la personalidad de la aplicación.

 

Saludos


  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.858 mensajes
  • LocationArgentina

Escrito 01 noviembre 2016 - 10:46

Es un buen razonamiento el de los forms y la imposibilidad de crear como principal al splash. No se me ocurrió.

Solo estaba probando los estilos, cuando ví en la lista a fsSplash... nunca había escuchado sobre su existencia.

 

Te cuento que por mi parte seguiré utilizando la manera antigua (y l a de Delphi) para crear splash, ya que suelo darle mucho más funciones que la de bienvenida. Es en esta pantalla que suelo iniciar constantes globales, probar la base de datos, revisar el estado de la aplicación, hacer la configuración inicial, y en uno de mis programas cambiar la personalidad de la aplicación.

 

Saludos

 

Yo creo que también optaré por la "vieja escuela" al momento de hacer mis Splash. Al menos hasta que estudie el tema.

Si tu no comentabas de esta funcionalidad que tiene Lazarus, yo ni me enteraba. Es algo nuevo para mi.

 

Saludos,


  • 0

#8 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 709 mensajes
  • LocationArgentina

Escrito 01 noviembre 2016 - 11:06

No se puede ver el código fuente del splash de lazarus o code typhon? Me refiero al splash cuando inicia el IDE
  • 0

#9 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.858 mensajes
  • LocationArgentina

Escrito 01 noviembre 2016 - 11:41

No se puede ver el código fuente del splash de lazarus o code typhon? Me refiero al splash cuando inicia el IDE

 

Pues Lazarus es OpenSource asi que técnicamente debiera ser posible. Ahora encontrar las líneas de código exactas que lo hacen ya es otra cosa.

El código fuente se lo puede descargar desde acá.

 

CT no es OpenSource, es Freeware.

 

Saludos,

PD: Se te solicita en el Bar-Tolo ;)


  • 0