Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Se cierra mi aplicación cuando lee esto OpenPictureDialog1.execute (https://www.clubdelphi.com/foros/showthread.php?t=90536)

darkbits 05-07-2016 01:15:58

Se cierra mi aplicación cuando lee esto OpenPictureDialog1.execute
 
Hola
mi aplicación funcionaba bien en DX10 con win7 x86

ahora estoy utilizando DX10.1 con windows 10 x64 y mi problema comenzó cuando quiero cargar una imagen, en un botton mi aplicación se CIERRA. completamente

el código que se ejecuta en el cierre es este.
Código Delphi [-]
  if OpenPictureDialog1.Execute then  // LEE ESTO Y SE CIERRA
    begin
      Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
   end;

le hice un seguimiento con F9 paso a paso para ver donde es... y me sale esto ESTE MENSAJE

Cita:

Project sistema.exe raised exception class EInvalidGraphicOperation with message 'Scan index out of range'
le puse en google y no encontré respuesta, agradezco a los expertos que puedan darme una mano.

Reasen 05-07-2016 02:49:21

No se me ocurren grandes ideas para darte una respuesta adecuada, ¿Quizás sea el formato de la imagen?
Puedes instalarte MadExcept para "debuguear" mas fácilmente el problema: http://madshi.net/

AgustinOrtu 05-07-2016 02:55:46

Crea una nueva aplicación con el mínimo código necesario para reproducir el problema. En tu caso el componente y el código que abre el cuadro de diálogo.

Si se puede reproducir, envía un reporte a Embarcadero
Sino, el problema está en tu código. Vas agregando poco a poco las partes que faltan hasta que logres reproducir el problema

Delphius 05-07-2016 05:43:31

Prueba con otras imágenes para comprobar si produce el mismo resultado.
Prueba también con distintos formatos.

El error sugiere que se trata de una violación de ScanLine[] al leer la imagen. Es posible que el formato de imagen no sea reconocido. ¿Es bmp ¿jpg? ¿png? ¿otro, cuál?
Sabiendo que el error tiene que ver con ScanLine[] yo consideraría también la posibilidad de que la imagen no sea profundidad 24bits, como es tradicionalmente el formato que se suele esperar. Aunque bien se hace aclarar que PNG es diferente a los otros mencionados, ya que posee 4 canales, y por tanto cada pixel es de 32bits. 8 pertenecientes al RGB y el último para la transparencia.

Ya que la clase es EInvalidGraphicOperation creería que el problema está al nivel de la clase TGraphic. Sugiriendo que el problema está en formato. Es probable que estés intentando abrir una imagen con formato no soportado por el componente por defecto. O bien, no tienes los codecs apropiados instalados (lo menos probable)

La última posibilidad, y lo que es menos probable (aunque no se debería descartar) es que el archivo esté corrompido. ¿Puedes abrirlo con algún programa de edición sin problemas?

Hay mucho por dudar y tu no pistas das. Hay que ir prendiendo las bolas de cristales.

fredo 07-07-2016 20:21:12

vuelve a seatle
 
la version berlin tiene muchas fallas, es mas estable seatle.. aun no me he podido cambiar por lo mismo son contar que le sacaron itraweb que es abse de un par de componentes que ocupo...., de hecho llevan 4 versiones sin arreglar el uso de frames que agregas un componente de base de datos y luego tratas de agregar un campo y se pega completo....

darkbits 07-07-2016 20:43:32

hice varias pruebas,

el problema que veo es 10.1 berlin es que no es tan compatible con alphacontrol o estos cambiaron todo para la version, por ello me da el error, que se cierra la aplicacion. pero ya solucione, lo quite el skin y funciona de pelo.

ahora solo me da el problema que cada vez q cambio un skin me arroja un error de lectura.

despues todo va bien..

darkbits 07-07-2016 23:14:36

Solucion
 
SOLUCIÓN

estos días eh estado haciendo de todo con DX10.1 Berlin,
y NO me funcionaba AlphaSkin, para comenzar me sale ERROR "unable to write to AlphaCfg.ini"

para que los themes NO de error tengo que borrar TSpinEdit del (ThirdPartyList) de lo contrario te dara ERROR al cambiar los skin

cuando realizo Llego a esta LINEA
Código Delphi [-]
 if OpenPictureDialog1.Execute then
se Cierra la aplicación!, revisando llegue a la conclusión que es problema del AlphaSkin en DX10.1, desabilito el Skin funciona todo OK, también eh probado con otros skins y si funciona todo OK y con otros NO funciona.

creo que volvere nomas a SEATLE 10.0 win7x32 hasta ahi funcionaba todo OK
ahora estoy con win10x64 lo instalare seatle ojala vaya bien!

Reasen 07-07-2016 23:56:10

Has probado el ejecutable en otro ordenador? quizás sea algo de tu PC, se me hace muy raro ese conflicto.

darkbits 08-07-2016 01:40:59

si eh probado en otra PC con windows7 y windows10 y me presenta el error.

pero ya solucione, elimine los componentes que compile en DX10 y en DX10.1 agregue los componentes y parece funcionar hasta momento.

aclaro mi aplicación lo hice en DX10 el año pasado, y estos días necesitaba compilarlo con algunas mejoras pero lo hice en DX10.1 y ahí comenzó el problema

olbeup 08-07-2016 08:34:04

Hola darkbits,

Yo siempre uso esto y ningún problema:
Código Delphi [-]
...
begin
  with TOpenPictureDialog.Create(Application) do
    if execute then
    begin
      Image1.Picture.LoadFromFile(FileName);
      ...
      ...
    end;
end;
El objeto no lo tengo que liberar porque ya lo hace el solito

Un salduo


La franja horaria es GMT +2. Ahora son las 17:04:35.

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