Tema: dbgrid
Ver Mensaje Individual
  #3  
Antiguo 16-11-2010
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
A bote pronto y usando la valiosa opción Find In Files del IDE, he podido ver que el mensaje de error (por eso es bueno poner los mensajes de error exactos) corresponde a la constante sClassNotApplicable de la unidad DesignEditors.pas:

Código Delphi [-]
resourcestring
  sClassNotApplicable = 'Class %s is not applicable to this module';

En esa misma unidad, la constante es utilizada para elevar una excepción en el método TCustomModule.ValidateComponent, dependiendo de lo que resulte una llamada al método TCustomModule.ValidateComponentClass:

Código Delphi [-]
procedure TCustomModule.ValidateComponent(Component: TComponent);
begin
  if not ValidateComponentClass(TComponentClass(Component.ClassType)) then
    raise Exception.CreateResFmt(@sClassNotApplicable, [Component.ClassName]);
end;

function TCustomModule.ValidateComponentClass(ComponentClass: TComponentClass): Boolean;
var
  Base: TComponent;
begin
  if FFinder = nil then
  begin
    Base := Root;
    if Base.Owner <> nil then
      // If the root has an owner then we want to find classes in the owners
      // class group not just the root's. This represents what will be active
      // when the class is loaded at runtime.
      Base := Base.Owner;
    FFinder := TClassFinder.Create(TPersistentClass(Base.ClassType));
  end;
  while IsProxyClass(ComponentClass) do
    ComponentClass := TComponentClass(ComponentClass.ClassParent);
  // We should only accept classes that are the same as the streaming system
  // will see.
  Result := FFinder.GetClass(ComponentClass.ClassName) = ComponentClass;
end;

Habría que investigar un poco más, pero de entrada, armando, estás intentando agregar un componente rejilla a un tipo de contenedor que por algún motivo no lo admite.

Puede ser que estés usando un formulario no estándar, un módulo de datos, o algún otro tipo de contenedor especial, o bien que tu proyecto no sea de tipo aplicación Windows nativa. Pero también puede tratarse de algún paquete de componentes (incluso nativo) o accesorio que no esté bien registrado en el IDE.

¿Podrías darnos algo más de información que ayude a esclarecer el problema?

Saludos.

Al González.
Responder Con Cita