Ver Mensaje Individual
  #1  
Antiguo 24-05-2011
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Reputación: 25
José Luis Garcí Va camino a la fama
Que estoy haciendo mal

Hola compañeros, como siempre rrecurro a vosotros ya que llevo un día perdido por culpa de la siguiente funcion

Código Delphi [-]
function TFMenuPrincipal.AbrirForms(Unidad:TClass;NivelAcceso:TAction;ModoAbrir:Integer;NomModulo:string):Boo  lean;
//------------------------------------------------------------------------------
//****************************************[ Funcion para Abrir Los Form ]*******
// -----------------------------------------------------------------------------
//Unidad:         Nombre del Form a abrir   
//NivelAcceso:    Segun La Propiedad TAG de la action nos permite pasar o no
//ModoAbrir:      Abre el Form 1 En Showmodal 0 en Show
//NomModulo:      Nombre del modulo para mensajes de error
//------------------------------------------------------------------------------
var Modulo:TForm;
    Modf:string;
begin
   if CompruebaNivel(NivelAcceso.Tag,VarNivelUsusario)=true then
   begin
        try
          Modf:= Copy(Unidad.ClassName,2,Length(Unidad.ClassName));
          Modulo:=tform(Modf);
          if not Assigned(&Modulo) then
          begin
           Modulo:=TForm(Unidad).Create(nil);
            if ModoAbrir=1 then Modulo.ShowModal
                           else Modulo.show;
          end
          else
          begin
            if ModoAbrir=1 then Modulo.ShowModal
                           else Modulo.show;
          end;
          Result:=True;
        except
           ShowMessage('Se ha producido un error al intentar abrir el modulo [  '+NomModulo +'  ]'+#13
                       +#13+#13+#13+
                       'Si persiste el Error, por favor pongase en contacto con el servicio Técnico');
           Result:=False;
        end;
    end
    else
    begin
       ShowMessage('Debe se un usuario con nivel '+IntToStr(NivelAcceso.Tag)+' para entrar en esta opción');
       Result:=False;
    end;
end;

La llmada la hago de la siguiente manera

Código Delphi [-]
AbrirForms(TFFamilias,A_AFamilias,1,'Familias');

La funcion Compruebanivel es

Código Delphi [-]
//------------------------------------------------------------------------------
//******************************************************[ CompruebaNivel ]******
//  16/02/2011  JLGT compara un nivel con otro si es igual o mayo devuelve true
//------------------------------------------------------------------------------
//  En pricipio para comprobar niveles de ususario segun el tag y un nivel dado
//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
function CompruebaNivel(tag, nivel:Integer):Boolean;
begin
  if tag<=nivel then Result:=True
                else Result:=False;
end;

y el prollecto ya he probado con
Código Delphi [-]
  Application.CreateForm(TFFamilias, FFamilias);
y con

Código Delphi [-]
//  Application.CreateForm(TFFamilias, FFamilias);

El problema que detecto es que cunado pasa por la unidad de asignación no entra pasa por lo tanto al else y aún asi me da el error de las lineas

Código Delphi [-]
      ShowMessage('Se ha producido un error al intentar abrir el modulo [  '+NomModulo +'  ]'+#13
                       +#13+#13+#13+
                       'Si persiste el Error, por favor pongase en contacto con el servicio Tecnico');


Se supone que al leer la variable modulo, deberia desirme si esta asignada o no, pero ni idea.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por José Luis Garcí fecha: 24-05-2011 a las 13:09:32.
Responder Con Cita