Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2007
Avatar de walito
walito walito is offline
Miembro
 
Registrado: jun 2005
Posts: 121
Poder: 19
walito Va por buen camino
Limites de Delphi

Les cuento que ya me estoy cansando de esto.

Como el titulo dice, quiero saber si lo que estoy haciendo tiene algun limite o no, ya que no me anda o yo soy un verdadero inutil.
Resulta que cuando cargo una libreria BPL necesito pasarle algun parametro al Create. Como es un TForm yo me hice mi clase:

Código Delphi [-]
type
  TFormConPermisos = class(TForm)
  public
    constructor Create(AOwner: TComponent; datoExtra: string); reintroduce;
  end;


implementation

constructor TFormConPermisos.Create(AOwner: TComponent; datoExtra: string);
begin
   inherited Create(AOwner);
end;

Entonces cuando instancio mi BPL el codigo de la funcion es asi:

Código Delphi [-]
function TModules.loadModule(moduleName: string): Integer;
var
  AClass: TPersistentClass;
  Formulario: TFormConPermisos;
begin
    {* verifico que el modulo existe, junto con el archivo *}
    if
      FileExists(ExtractFilePath(ParamStr(0))+moduleName)
      and
      (moduleName <> '')
    then
    begin
        {* Cargo el modulo a memoria *}
        handle := LoadPackage(ExtractFilePath(ParamStr(0))+moduleName);

        {* si es un modulo válido *}
        if handle <> 0 then
        begin
            try
                AClass := GetClass(CLASSBPL);

                try
                    if AClass <> nil then
                    begin
                        LockWindowUpdate(Handle);
                        EnableAnimation(false);

                        Formulario := TFormConPermisos(AClass).Create(Application, 'MI DATO EXTRA') as TFormConPermisos;

                        EnableAnimation(true);
                        LockWindowUpdate(0);

                        Formulario.Show;

                        Result := 0;
                    end;
                except
                    on E:Exception do
                       Result := -1;
                end;
            except
                on E:Exception do
                   Result := -2;
            end;
        end
        else
            Result := -3;
    end
    else
        Result := -4;
end;

Esta funciona asi: loadModule('miLibreria.bpl');

Cuando esto se ejecuta, y hace el Create dentro de este nuevo Create en el inherited Create(AOwner); da error de access violation, en realidad ya no se que probar, en google nunca parece que alguien halla realizado esto.

Esta bien la herencia que estoy haciendo?
De que otra forma puedo pasarle parametros?

Gracias y ya no jodo mas.
Si algun dia averiguo como es, va un tutorial para todos ustedes.

Última edición por walito fecha: 15-11-2007 a las 21:35:19.
Responder Con Cita
 



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
Bill Gates ve la revolución tecnológica sin límites gluglu Noticias 6 20-04-2007 10:07:46
El Ser Humano no tiene LIMITES vtdeleon La Taberna 5 26-09-2006 17:18:36
Hay limites en el tamaño de la sintaxis de un SQL ? tulio Firebird e Interbase 2 14-09-2004 12:15:09
Limites Internos - Pradox chona Tablas planas 3 15-04-2004 21:34:03
Limites de datos muli Firebird e Interbase 1 22-10-2003 17:52:04


La franja horaria es GMT +2. Ahora son las 19:42:22.


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