![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
ya encontre el detalle el codigo queda asi
saludos |
|
#2
|
|||
|
|||
|
Hola...
No se exactamente que deseas hacer, lo que si te puedo decir es que tu código está propenso a que tengas pérdidas de memoria (memory leak) al momento de cerrar la aplicación. Si no vas a guardar referencias a los botones fuera del método DoOnClick, te recomiendo que uses TBitBtn.Create(Self), para que al cerrar el formulario este destruya todos esos botones al momento de destruirse. Otro error que encuentro es que estás usando algunas variables con el mismo nombre de propiedades (Top, Left) y esto puede producirte varios errores lógicos. Saludos... |
|
#3
|
||||
|
||||
|
Cita:
ok usare TBitBtn.Create(Self) no entiendo muy bien el por que, es la primera ves que me veo en la necesidad de crear componentes en tiempo de ejecucion, y sobre lo del nombre de las variables segun yo, si las declaro dentro de un procedure el valor solo se afecta dentro del mismo procedure no??, corrigeme por favor si dije alguna incoherencia saludos y mil gracias por tus consejos perdon ya entendi lo de las variables es mejor ponerles otro nombre, que no se parezca a propiedades de los objetos, otra pregunta crees que este codigo me genere algun problema lo uso cada que presiono un boton para limpiar el panel e incluir los nuevos botones
|
|
#4
|
|||
|
|||
|
Hola...
Por lo poco que puedo ver de tu código, y sin saber que haces fuera de lo que nos enseñado, te puedo decir que tu aplicación corre peligro de consumir mucha memoria y luego de un buen tiempo de uso puede fallar con errores del tipo Out of Memory. Aparte, si no te consumes toda la memoria, al finalizar la aplicación esta no va a liberar toda la memoria que consumió. Ahora, el por que de esto que te comento: Veo que creas varios TBitBtn, todos sin un owner (TBitBtn.Create(nil)), y estos los asignas a variables declaradas dentro del método donde se crean, esto es, esas variables dejarán de existir una vez salgas de ese método, haciendo que no haya forma que puedas referenciar esos TBitBtn más adelante y como estos no tienen dueño, al finalizar la aplicación tampoco se destruirán. Aunado a esto, cada que presionas un botón ya creado, creas una serie de botones usando la misma técnica y en ningún momento veo que elimines los botones creados anteriormente. Una forma de resolver esto es asignándole un dueño a cada TBitBtn que se cree, es por eso que te comenté el uso de Self, que en el ámbito donde lo vas a usar, sería el formulario donde estás creando esos botones. Al ser el formulario el dueño de esos botones, al destruirse este, primero destruye todos los componentes que le pertenecen. La recomendación que yo te doy, es usar algún tipo de lista para guardar las referencias a los botones que vayas creando y así los puedas eliminar apenas los dejes de usar. Aquí algo de código para aclarar la idea:
Ya con este código te debes de dar una idea de como hacer mejor las cosas... Saludos... Última edición por maeyanes fecha: 09-08-2011 a las 18:13:04. |
|
#5
|
||||
|
||||
|
mil gracias maeyanes por la explicacion,
si estaba un poco perdido y no estaba viendo todos los errores de memoria que estaba generando , y como este programa correra en un touch screen con poca memoria seria todo un lio y en pocas horas de usarlo seguro me llamarian para ver el por que del errorsaludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| borrar o liberar componente TBITBTN en tiempo de ejecucion | Lupita | Varios | 4 | 19-07-2008 00:11:44 |
| Asignar Evento OnClick en forma dinamica en tiempo de ejecucion | delphi50jmb | OOP | 7 | 06-07-2008 03:46:02 |
| Asignar evento OnDrawColumnCell en tiempo de ejecución | gluglu | OOP | 6 | 01-06-2007 13:14:58 |
| Asignar evento Oncalcfield en tiempo de ejecucion | el_barto | Conexión con bases de datos | 5 | 06-09-2005 00:08:46 |
| Asignar la ruta de tablas en tiempo de ejecucion | tortelini | Varios | 2 | 19-03-2005 12:13:53 |
|