Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 16-02-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Para algunos casos en particular, el uso del operador is puede dar resultados no esperados, ya que este devuelve verdadero
tanto si el objeto pertenece a la clase, como si es desciende de ella.

Por ejemplo:
Código Delphi [-]
var
  Clase: TPersona;
begin
  Clase:= TAlumno.Create;
  if Clase is TPersona then
    ShowMessage('TPersona')
  else if Clase is TDocente then
    ShowMessage('TDocente')
  else
    ShowMessage('TAlumno');
end;
Que muestra el mensaje 'TPersona' cuando el objeto creado es un TAlumno.

O también:
Código Delphi [-]
var
  Clase: TPersona;
begin
  Clase:= TAlumno.Create;
  if Clase is TAlumno then
     ShowMessage('TAlumno');
  if Clase is TDocente then
     ShowMessage('TDocente');
  If Clase is TPersona then
     ShowMessage('TPersona')
end;
Donde la salida es 'TAlumno' y 'TPersona'.

En casos que pueden prestarse a confusiones, una buena alternativa es usar la función ClassType que nos da dinámicamente
la referencia de clase del objeto:
Código Delphi [-]
var
  Clase: TPersona;
begin
  Clase:= TAlumno.Create;
  if Clase.ClassType = TPersona then
     ShowMessage('TPersona');
  if Clase.ClassType = TDocente then
     ShowMessage('TDocente');
  if Clase.ClassType = TAlumno then
     ShowMessage('TAlumno');
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-02-2011 a las 08:25:12.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problema con casting/tipo money en postgreSQL viaraSOFT.com SQL 4 16-02-2011 17:41:54
Cómo prescindir del "casting" de tipos Luis_264 Varios 8 03-01-2009 22:01:03
casting Composite Report: error al imprimir MsYo Impresión 2 24-07-2006 12:29:09
Def. de constantes - Casting Mariana OOP 3 21-10-2005 19:24:23
Casting de TComponent en TEdit jamonete2 Varios 2 12-06-2005 15:56:19


La franja horaria es GMT +2. Ahora son las 08:14:51.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi