FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
retornar de un Form
buno gente estoy arrancando con delphi y tengo esta duda, como puedo hacer para retornar un dato (ya sea un objeto o una lista o un entero o lo q sea) desde un Form??? ejemplo. supongamos q tengo un form (probablemente modal) para hacer una búsqueda de una lista elementos, como retorno el elemento seleccionado???
Gracias |
#2
|
||||
|
||||
Puedes hacer dos cosas, la primera y mas básica es leer desde donde has creado el form las propiedades de los componentes. Todos los componentes que adhieras al form desde el editor siempre quedan como públicos.
Lo que yo suelo hacer, cuando un form tiene una funcionalidad particular, es lo siguiente:
Y en lugar de llamar al ShowModal, utilizo la función Execute definida por mi que me soluciona toda la lógica propia del formulario. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
O lo añades como propiedad del form.
Después de visualizarlo y antes de destruirlo la consultas. Algo así:
En el OnClose del Form1 recuerda asignar:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
ok, gracias amigos, me despejaron una duda antes de q meta la pata en el diseño gracias
|
#5
|
|||
|
|||
oto problema, el form termino siendo mdi y no consigo salir de el sin eliminarlo, se minimiza como default, les paso algo de codigo, en el main lo creo asi:
procedure TMainForm.EliminarDepartamento1Click(Sender: TObject); var vElimDep: TfmSeleccionarDepartamento; begin vElimDep := TfmSeleccionarDepartamento.Create(self); ShowWindow(vElimDep.Handle, SW_SW_SHOWNORMAL ); end; |
#7
|
||||
|
||||
Hola ericgs, según tu ejemplo debes colocar el codigo que te indica ecfisa en el OnClose de tu formulario TfmSeleccionarDepartamento que debe ser tu MDIChild. En las aplicaciones MDI por defecto todas las ventanas hijas se minimizan al cerrarlas.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#8
|
||||
|
||||
Tál como dice Caro, Action:= caFree, va en los MDIChilds.
Realmente equivoqué al escribir el nombre del Form, mis disculpas Saludos. Última edición por ecfisa fecha: 09-09-2010 a las 19:17:03. |
#9
|
|||
|
|||
el problema va en que si pongo:
la 3º linea se ejecuta justo después del ShowWindow, antes de que pueda hacer algo, al diferencia del modal |
#10
|
||||
|
||||
Cita:
Quieres recuperar un valor justo después de cerrar el formulario. Si lo muestras modal, tendrás que destruirlo después de obtener el valor, sino tendrás problemas.
En este caso no puedes usar el Action := caFree, porque puede ser que cuando llegues a la línea (1) es formulario ya esté destruído o destruyendose. Si no lo muestras modal, debes utilizar otro sistema, ya que necesitas que la línea se ejecute al cerrar el form (me imagino). Utilizar algunos de los eventos de salida para devolver el valor.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#11
|
|||
|
|||
perdón no me exprese bien, en el codigo anterior estoy creando una ventana mdi (child), por lo q no puede ser modal
|
#12
|
||||
|
||||
La otra opción, como ya te he dicho puede ser utilizando un evento. En mi caso más de una vez he utilizado algo similar a esto.
En el formulario MDI que vas a destruir defines un evento tal que así:
Cuando creas ese formulario "enganchas" el evento a un procedimiento tuyo para recibirlo:
Al cerrar el form2 (el MDIChild) antes de destruirlo "aviso" utilizando el evento:
Y en el momento de destruir el Form2 (MDIChild) al leventar el evento, llegará el control a mi procedimiento:
Parece más complejo de lo que es, pero en realidad es bastante sencillo. Te adjunto el código para que veas cómo funciona.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#13
|
||||
|
||||
Yo lo hago utilizando una funcion de clase, mas o menos el codigo es asi...
// la llamada desde otro modulo seria asi unit OtraUnidad ..... AselLote := TfrmSelLote.getLote(ACliente, ADoc); espero que sirva sl2
__________________
nuestro carácter está reflejado en cada línea de código que escribimos. |
#14
|
||||
|
||||
ericgs has comentado más arriba que no debe ser modal, de ahí el problema que se plantea.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#15
|
|||
|
|||
Muchas gracias, la verdad no se me hubiera ocurrido, gracias a todos.
Un saludo |
#16
|
||||
|
||||
Para mi gusto, la opción de Neftalí es la más adecuada. No obstante, sería bueno que te cuestionaras si lo que estás haciendo es lo más correcto. Un formulario como TfmSeleccionarDepartamento tiene toda la pinta de ser un formulario modal, no hay porqué hacerlo MDIChild. En una aplicación MDI puede haber formularios MDI y no MDI, y todo lo que sea o se asemeje a un cuadro de diálogo en donde el usuario va a escoger algo, debería se un formulario modal.
// Saludos |
#17
|
|||
|
|||
es exactamente lo q le dije yo, pero como el programa sera introducido dentro de otro en el cual es todo mdi (o eso me dijeron) tiene q ser mdi.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Intraweb Retornar Pagina Anterior | ggram2 | Internet | 0 | 24-03-2009 01:50:31 |
Cómo hacer para retornar valores de una Unit a otra | karo | Varios | 6 | 14-03-2009 20:57:28 |
Retornar o no retornar desde un script principal | dec | PHP | 6 | 24-03-2008 23:41:12 |
retornar un valor Proc.Almacenado | cacu | OOP | 1 | 05-03-2008 22:39:16 |
Como retornar un valor en Delphi | Stanley | Varios | 8 | 29-10-2007 04:04:03 |
|