Ver Mensaje Individual
  #1  
Antiguo 27-05-2022
erikrocha erikrocha is offline
Registrado
 
Registrado: jun 2005
Posts: 6
Reputación: 0
erikrocha Va por buen camino
MDIChild (Access Violation), enviar valores entre formularios hijos.

Hola a todos, luego de estar por algún tiempo navegando entre post y post dentro del foro decidí abrir uno nuevo. Agradezco su tiempo.

Tengo 3 formularios:

Código Delphi [-]
1.main   (MDIForm)
2.pos    (MDIChild)
3.search (MDIChild)

Necesito enviar un valor del 3.frm_search -> 2.frm_pos.

Código Delphi [-]
...
{ desde este formulario frm_search intentando enviar al frm_pos }
uses
  pos;
...
procedure Tfrm_search.button1(Sender: TObject);
begin
  frm_pos.label1.caption := 'abc';
end;

Hice pruebas, si los formularios hijos los tengo autocreados, no hay problemas puedo enviar variables entre ellos. He leído en unos posts del foro que algunos solucionaron así su problema, los ocultaron y luego de acuerdo a sus necesidades los fueron mostrando.

Código Delphi [-]
Auto-create forms
frm_main
frm_pos
frm_search

El problema es cuando creo dinamicamente los formularios hijos, recibo un error: Access Violation

Código Delphi [-]
Auto-create forms:
frm_main

Available forms:
frm_pos
frm_search

...
{ creo mi formulario en tiempo de ejecución }
var
  search: Tfrm_search;
begin
  search := Tfrm_search.create(self);
end;

Un post en el foro explica sobre los formularios modales y su función. Un formulario no debe de escribir directamente a ningun otro formulario. debe de pedir el valor y al cerrarse debe devolver ese valor al formulario que lo solicito. No se como implementarlo. Estaría agradecido si puedieran compartirme un link y/o documentación para poder estudiar más sobre este tema.

Se me ocurre muchos motivos que llevan a mi error; cuando creo un formulario en tiempo de ejecución estoy creando una instancia y cuando quiero enviar el valor al formulario no estoy apuntando correctamente por lo que recibo el error <<Access Violation>>

Gracias.
Responder Con Cita