Ver Mensaje Individual
  #4  
Antiguo 05-11-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.297
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Thumbs up

Luego con tranquilidad pensé que podía ser eso...
En mi caso lo hago así (te orto un trozo de programa para que veas el funcionamiento):

Código Delphi [-]
...
const
  RUNBROWSE_METHOD     = 'RunBrowse';
var
  _FormBrowse:TForm;
  _FormBrowseClass:TFormClass;
  Routine: TMethod;
begin

    // recuperar el proceso y asi el formulario de browse
    _FormBrowseClass := YTrazProc.FormBrowseClass;
    // Creamos el form para acceder a los métodos
    _FormBrowse := _FormBrowseClass.Create(Self);
    // Bloque de proteccion para liberar
    try
      // Acceso a la rutina
      Routine.Data := Pointer((_FormBrowse as _FormBrowseClass));
      // Devuelve la dirección de un método published
      Routine.Code := (_FormBrowse as _FormBrowseClass).MethodAddress(RUNBROWSE_METHOD);

    finally
      // Liberamos el form
      FreeAndNil(_FormBrowse);
    end;

    // No ha encontrado el código de la rutina...
    if (Routine.Code = nil) then begin
      Exit;
    end;

    // hacer la llamada al RunBrowse
    i := TExecuteRunBrowse(Routine)(_FormBrowseClass,
                                    [ATTR_TYTRAZA],
                                    [Traza],
                                    [tsEqual],
                                    [False],
                                    ['FechaHora']);

    FFormBrowseTraz := YTrazProc.FormBrowse;
  end;
end;

He quitado algun trozo que sobra, pero las operaciones básicas están.
El tipo del procedimietno está definido con todos los parámetros:

Código Delphi [-]
  //: Tipo para ejecutar un método de clase RunBrowse
  TExecuteRunBrowse = function (FormBrowseClass: TFormClass;
                                AttrName : Array of string;
                                AttrValue : Array of Variant;
                                Operator : Array of TSQLOperator;
                                IsNot : Array of Boolean;
                                ...): Integer of object;
__________________
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.
Responder Con Cita