Ver Mensaje Individual
  #21  
Antiguo 22-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Pues me alegro que lo hayas solucionado, así que ahora toca un detalle que puede darte dolores de cabeza, realmente no se ha comentado en el hilo.

Es el Owner de cada MenuItem. Si necesitas destruir los menús que acabas de crear, porque entra un usuario diferente en el sistema, Delphi podría intentar liberarlos otra vez al finalizar la aplicación, y entonces, podrías recibir errores extraños (access violation, index out of bound, etc).
La sentencia clave es esta:
Código Delphi [-]
mnu := TMenuItem.Create(ppPredef);

Con eso se le dice a Delphi que al destruir el ppPredef (TmainMenú o TpopupMenu), éste se encargue de liberar el "mnu" creado.

Si haces alguna rutina para destruir los menús, es cuando puede venir el fallo, en este caso y sólo en este caso, usa:
Código Delphi [-]
mnu := TMenuItem.Create(nil);
Para decirle a Delphi que nadie (nil) se encargará de destruirlos porque lo haces tú en esa rutina que hablo.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 22-06-2006 a las 09:44:32.
Responder Con Cita