Voy a tratar de explicar mi problema de la mejor forma posible.
Tengo una aplicación desarrollada en Delphi 2010, ésta utiliza varias librerías (bpl) creadas por mi. Esta librerias contienen formularios entre otras cosas.
La carga de estos formularios (contenidas en librerias bpl) lo hago con el siguiente codigo:
Código Delphi
[-]
private
AClass: TPersistentClass;
DynForm: TForm;
.
.
.
procedure...
var
PackageModule: HModule;
noc: integer;
begin
PackageModule := LoadPackage('compras.bpl');
if PackageModule <> 0 then
begin
AClass := GetClass('Tnueva_ocform');
if AClass <> nil then
DynForm := TComponentClass(AClass).Create(self) as TForm;
dybForm.Caption := 'Nueva Orden Propia '+inttostr(noc);
DynForm.Show;
Con esto logro crear tantos formularios distintos como quiera.
Ahora bien para mandar agunos parametros al nuevo formulario creado utilizo lo siguiente:
Código Delphi
[-]
type
TExecuteProcWrite = procedure(noc:integer; empresa: string) of object;
.
.
.
public procedure datos_generales(noc:integer; empresa: string);
.
.
.
procedure Tmainform.datos_generales(noc:integer; empresa: string); var
Routine: TMethod;
begin
Routine.Data := Pointer((DynForm as AClass));
Routine.Code := (DynForm as AClass).MethodAddress('datos_generales');
if (Routine.Code <> nil) then begin
TExecuteProcWrite(Routine)(noc, empresa);
end;
Procedure.button.click begin
datos_generales(1, 'empresa');
end;
Todo lo anterior en el formulario principal de la aplicación.
En el formulario creado tengo las rutinas de recepción como sigue:
Código Delphi
[-]
published
procedure datos_generales(noc:integer; EMPRESA: STRING);
.
.
.
procedure Tnueva_ocform.datos_generales(noc: integer; EMPRESA: STRING); begin
edit1.text := inttostr(noc);
EDIT9.Text := EMPRESA;
end;
Bueno amigos, hasta aquí todo esto funciona perfecto. Además espero se haya entendido.
Ahora expongo mi problema, como bien explique en principio del mensaje, puedo crear tanto formularios como quiera, el problema es que la ejecutar el procedimiento para mandar datos desde el formulario principal al creado, solamente se ven reflejados estos datos en el último formulario creado.
Espero se haya entendido, y ojala me pueda ayudar a resolver esto.
Muchas gracias