Ver Mensaje Individual
  #6  
Antiguo 25-06-2003
Bacterion Bacterion is offline
Miembro
 
Registrado: may 2003
Posts: 91
Reputación: 22
Bacterion Va por buen camino
Recuerda, lo que indica el ejemplo de Cadetill es que una referencia a objeto siempre puedes "castearla" a otro tipo de objeto.
Lo que debes es, siempre, de estar seguro de que el "casteo" que haces es valido...
...por eso Cadetill hace la comprobación anterior usando el operador IS. Se asegura así de que esun TTable.
(aunque ha metido la pata en
TTable(DBgrid.DataSource.DataSet.indexname, que debería ser
TTable(DBgrid.DataSource.DataSet).IndexName)

Vamos, el TDatasource apunta a un TDataset cualquiera por medio de su propiedad Dataset.
Pero un TDataset puede ser el TTable, el TQuery, y otros... (echale un vistazo a la ayuda).
Luego, por ejemplo, si usas una TQuery y haces el casteo a TTable, al compilar no dará error, pero al ejecutarse te dará un access violation con casi toda seguridad (al intentar usar algún método o propiedad del TTable)

Te recomendaría que le echases un vistazo a algún libro o manual de Delphi, a la orientación de objetos.
Responder Con Cita