Ver Mensaje Individual
  #6  
Antiguo 30-09-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hey! No me había dado cuenta de algo, en tu código pones

Código:
Field := TmyField.Create(Nil);
TField(Field) := TStringField.Create(Nil);
Field.FieldKind := (fkData);
Field.FieldName := 'NOMBRE';
Esto no está bien. En la primera línea creas un objeto TMyField y en la segunda vuelves a asignar a Field otro objeto (ahora un TStringField).

No sé qué intentabas hacer pero la primera referencia (a TMyField) se pierde de manera que Field, aunque esté declarado como TMyField es un TStringField, que no tiene la propiedad Grid, de ahí que al tratar de usar Field.Grid se intente referenciar una propiedad inexistente y por tanto se genera el "Access Violation"

Si necesitas un StringField quizá te convenga más derivar tu clase de TStringField:

Código:
TMyField = class(TStringField)
  ...
end;
// Saludos
Responder Con Cita