Ver Mensaje Individual
  #1  
Antiguo 17-09-2018
vicens22 vicens22 is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 61
Reputación: 14
vicens22 Va por buen camino
Acceso a objetos de un form desde otro

Estoy desarrollando con Delphi Tokyo y Firemonkey una aplicación para Android e IOS, y me encuentro con el siguiente problema, que imagino que también sucederá programando en VCL, pero por si acaso lo publico aquí.

Ya me encontré con el mismo problema hace unos meses, pero en ese momento lo pude solventar simplemente poniendo los formularios que contienen los objetos a los que hago referencia como "autocreates" en el project, pero ahora me gustaría poder quitarlos de ahí, ya que ralentizan el arranque de la aplicación en el dispositivo móvil.

Se trata simplemente de poder acceder a objetos (tedit y similares, cambiando por ejemplo su propiedad text), que están en un formulario desde otro, sin que el formulario que contiene esos objetos tenga que ser autocreate. Lo que me ocurre al intentar acceder a sus propiedades es que obtengo un error "Access violation".

He creado un ejemplo simplificando el problema (adjunto los ficheros del mismo).
Son tres unidades/formularios: Main, Form1 y Form2.
Sólo Main está como "autocreate" en el project.
En Main, hay un botón que crea Form1, el cual contiene un objeto tLlabel, un tEdit y un botón que crea Form2.
El error (Access violation) ocurre cuando en este último formulario (Form2), intento modificar las etiquetas .text del label y el edit que se encuentran en Form1 (hay un botón que hace simplemente eso).

Este error no ocurre (y se modifican correctamente los objetos label y tedit), si en el project hago que Form1 sea "autocreate", pero ya he comentado que necesito evitar esto para mejorar el arranque de la aplicación, ya que hay varios formularios en los que me ocurre lo mismo.

Gracias por cualquier ayuda.
Saludos,

Vicens
Archivos Adjuntos
Tipo de Archivo: zip Acceso_a_forms.zip (56,3 KB, 2 visitas)
Responder Con Cita