Ver Mensaje Individual
  #15  
Antiguo 28-02-2004
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
¡ClassNameIs es sensible al tamaño!

¡Buen día a todos!

En vista de lo intrigante de este caso, decidí escudriñar un poco en la mejor referencia que hay de Delphi: el código fuente de su biblioteca.

GetClass llama indirectamente al método clase ClassNameIs heredado de TObject. Me di cuenta que éste es sensible al tamaño. De hecho si hago esta prueba:
Código:
RegisterClasses ([TForm1]);
C := GetClass ('TForM1');
C obtiene un valor Nil, porque se llama a GetClass con un parámetro que no es exactamente el mismo nombre que se le dio a la clase registrada.

No estoy seguro si en Delphi 5 era insensible al tamaño (habría que ver el código de TObject.ClassNameIs en la unidad System.pas de Delphi 5). Pero esa pudiera ser la causa del problema aquí planteado.

Si este no fuera el caso, todavía cabe la posiblidad de que GetClass devuelva Nil por algo que encontré en el método TRegGroups.GetClass de la unidad Classes.pas:
Código:
function TRegGroups.GetClass(const AClassName: string): TPersistentClass;
var
  I: Integer;
begin
  Result := nil;
  for I := 0 to FGroups.Count - 1 do
    with TRegGroup(FGroups [ I ]) do
    begin
      if Active then Result := GetClass(AClassName);
      if Result <> nil then Exit;
    end;
end;
Tal vez ese If Active evalúa a False.

Seguiremos investigando .

Al González .

Última edición por Al González fecha: 28-02-2004 a las 03:49:58.
Responder Con Cita