![]() |
Crash en programa, o Bucle Infinito?
Salud amigos donde quiera que se encuentren ;)
Hoy les traigo un pequeño inconveniente que presenta mi codigo aun no lo he podido descubrir aunque continuo buscando a ver donde estara ese nudo... el problema es que cuando lo ejecuto y le doy al boton REPARTIR, se queda colgado. Ademas no cambia la imagen en los procedimientos:
lo que es completamente extraño, ya que este Form2 es llamado desde un Form1, en el cual el boton efectivamente funciona con el mismo procedimiento. ese es un problemita que me paso en un programa anterior, ahora el problema del bucle o crash creo que esta en el procedimiento:
o en su defecto:
Agradeceria mucho de su parte si lograran conseguir el error continuare buscando, en caso de encontrarlo, como siempre colocare la respuesta aqui. Anexo el codigo Saludos Best, Martin
|
No sé qué problema tendrá, pero sí que veo algo poco práctico: vas cargando unas imágenes del disco, constantemente.
¿Por qué no las cargas en el programa y te ahorras de estar cargando una y otra vez, otra vez, y otra vez...? |
Cita:
Si compartieras tu sabiduria conmigo :D |
Sin son pequeñas puedes cargalas en un TImageList, por ejemplo.
O usa un Timage para cada una, y lo pones visible o invisible, según te haga falta. |
Nota:
Cuando corro el programa y le doy click al boton Repartir, el programa se cuelga por un par de segundos, y luego me pide continuar o interrumpir el proceso le doy a continuar y me aparece un mensaje con lo siguiente: Uknown picture file extension (.) a lo que asumo que el problema es con alguna de las imagenes... ya realmente que no se que hacer con esto, buscare sobre como almacenar las imagenes como en una base de datos y usarla desde alli como dice Casimiro |
Cita:
las dos imagenes del boton repartir, son del mismo tamaño 140x40, y la del mensaje Barajando es de 339x115 y todavia faltan las 40 cartas que son de 55x82 hay un problema en el boton repartir, no hace el cambio de imagen cuando paso el mouse por el. pero en el Form1 funciona correctamente con otro boton buscare sobre TImageList |
Cita:
Si piensas que alguna imagen está mal, prueba el programa sin imágenes, a ver qué hace. Pon en comentario las líneas donde cargas imágenes... y prueba.
|
Este es el mensaje de error que me muestra la consola
Edito: No habia visto tu comentario en el codigo. "// por cierto, aquí no cargas nada, puede ser ese el error" Excelente ese es el problema, no lo reconoce, lo que yo queria hacer alli era que la imagen fuera removida, y que quedara en vacio el Timage, ahora el problema es hacer que funcione el boton cuando le paso el mouse no cambia la imagen, esto ya me paso en otro programita, cual sera la forma de solucionarlo? Problema del crash Resuelto :D |
Disculpen por el doble post,
pero no pude editar el anterior ya resolvi lo de la imagen, fue sencillo pero si alguien con mas experiencia lo puede explicar seria muy conveniente, lo que hice fue lo siguiente, El Form2 es llamado desde un boton en el Form1 Las imagenes del Form2 no se cargaban correctamente porque el modo de llamado desde el Form1 era el siguiente:
En mi ignorancia nunca supe realmente que esto influyera hasta que se me ocurrio; esa forma la encontre en alguna web donde explicaban como mostrar un Form llamado desde otro, y realmente asi es como he aprendido lo poco que se, simplemente buscando lo que necesito, bien ahora la forma en que pude solucionarlo:
Saludos, gracias Casimiro por tu ayuda :) |
Hola Martín!
El siguiente código está malo:
Estás liberando el formulario inmediatamente después que lo creas. Intenta con este código:
En el evento "OnQueryClose" del Form2, agrega el siguiente código: procedure TForm2.OnQueryClose(...); begin action := caFree; end; A cómo te ha dicho Casimiro, las imágenes estaban muy mal administradas. Pero no te preocupes, así es cómo uno aprende :) Si ahora vas a utilizar imágenes almacenas en objetos TImage, puedes adaptar tu viejo código de la siguiente manera: Fíjate que en código no utilizo la variable "Form2". En su lugar utilizo una variable especial llamada Self. Utilizar esta variable es la forma más segura para manipular el formulario/clase con código dentro de la misma clase. Saludos! |
Hola Chris.
Hermano la cuestion es que no se utilizar los objetos TImage, estuve buscando info pero no encontre algo que me explicara bien por el momento las he seguido usando como hasta ahora habia hecho llamandolas de un arhivo externo; en un par de horas avance bastante en este proyecto, ya reparte las cartas aleatoriamente con las imagenes y todo los botones funcionan perfectamente; el siguiente codigo quedo asi:
Lo que hace que funcionen los botones y las imagenes ahora lo que no entiendo es lo siguiente:
Nunca he sabido que quiere decir Query, para que funciona este codigo? y supongo que el siguiente es para llamar las imagenes de la lista de imagenes en el objeto TImage?
La cuestion es que no se trabajar con TImage aun! Excelente intervencion gracias Chris |
Yo que tu a los fors de Repartir() e InicializarVectores() les coloco su begin-end porque dudo que se ejecute más allá de la primera instrucción dentro del ciclo :rolleyes:
Adivino... ¿vienes desde Visual Boshit :D ? Por cierto, que es eso de sumar +2 a una variable par e impar. ¡Que ganas de complicarse! Y en inicialiarvectores para que 2 fors si con uno puedes hacer todo el trabajo. Saludos, |
La franja horaria es GMT +2. Ahora son las 06:16:41. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi