¡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
.