Pasar datos de un form a otro.
Buenos días y Feliz 2013 a todo el mundo. Este es un tema recurrente, y aunque he probado la solución que se ha dado en otras consultas (crear una variable pública) hay algo que no he debido entender, por lo que os pido perdón.
Para visualizar mi problema me he creado dos formas: Triangulo_MainForm
que, al pulsar el botón Input, llama a otra forma llamada Triangulo_InputData
En esta form se introducen tres datos, en principio es texto, La idea es que al pulsar el botón Send Data estos tres datos combinen en un registro (record) llamado myData que pueda ser accesible desde la primera unidad (Triangulo_MainForm). En esta unidad al pulsar el botón Output, los datos contenidos en myData aparecían en una ventana tipo Memo. Por lo que he entendido de otras consultas similares, si no iguales, la solución pasaría por 1. Declarar en la cláusula uses de la unit Triangulo_MainUnit, la segunda unidad (Triangulo_InputData). (hecho) 2, Declarar en la segunda unidad (Triangulo_InputData) myData como variable pública. (hecho) La cosa es que haciéndolo así no me funciona, por lo que deduzco que se me he perdido algo en el camino. También he probado a declarar myData como variable pública en la primera unidad y la cosa tampoco funciona. Gracias por vuestra ayuda y que los Reyes Magos sean generosos con todos. |
En el segundo form:
Antes del close:
Y opcionalmente:
En el uses del segundo form tendrás que añadir:
Y en el primer form descomentar el MyData. Diría que con eso te va a funcionar. Si necesitas alguna aclaración, ya dirás. Básicamente lo único que te falta es asignar lo que has hecho en el segundo form, al primero. |
Así es como me quedan las dos forms (Por si sirviese de ejemplo para otros)
Form Principal
Form Secundaria
Lo mejor de todo es que ¡¡¡¡¡¡¡¡¡FUNCIONA!!!!!!!!!! Me ha surgido una duda. La instrucción: Triangulo_MainForm.btnOutputClick(nil); ¿qué hace exactamente? Muchas gracias. |
Cita:
Cita:
Es el procedimiento que tienes asignado al botón Output al hacer un Click. En realidad es un procedimiento como cualquier otro que se asigna a ese evento del botón. A este procedimiento también puedes llamarlo de forma "manual", además de que esté asignado al evento. Al llamarlo lo que consigues es el mismo efecto que si pulsaras el botón, ya que el resultado es el mismo: 1) O lo llama el botón de forma automática al ser pulsado. 2) O lo llamas de forma manual como he hecho yo. Un saludo. |
Re: Pasar datos de un form a otro.
Muchas gracias por tu ayuda y a menos que alguien aporte una solución más elegante, creo que podemos dar el tema por cerrado.
|
La franja horaria es GMT +2. Ahora son las 14:40:22. |
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