Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-02-2012
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Formulario creado desde libreria y traspaso de informacion

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 // sentencias publicas
    procedure datos_generales(noc:integer; empresa: string);
.
.
.
 
procedure Tmainform.datos_generales(noc:integer; empresa: string); // detalle del procedimiento
var
  Routine: TMethod;
begin
  // Acceder al método
  Routine.Data := Pointer((DynForm as AClass));
  // Ejecutar al código
  Routine.Code := (DynForm as AClass).MethodAddress('datos_generales');
  // No ha encontrado el código de la rutina...
  if (Routine.Code <> nil) then begin
    // Ejecutarlo
    TExecuteProcWrite(Routine)(noc, empresa);
  end;
 
Procedure.button.click // llamada del procedimiento
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); // procesamiento de datos
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como saber si un Formulario ha sido creado Durbed OOP 7 13-10-2005 13:06:28
Volver a mostrar un formulario creado dinámicamente. jplj Varios 2 10-02-2005 13:19:27
Saber si un formulario ya está creado o no. Tecnic2 OOP 2 27-09-2004 13:27:01
Como puedo saber si esta creado un formulario??? Roger OOP 1 13-04-2004 15:57:49
problema al crear un formulario de otro ya creado soyhugo Varios 2 01-02-2004 13:11:54


La franja horaria es GMT +2. Ahora son las 03:36:25.


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
Copyright 1996-2007 Club Delphi