Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-02-2004
Aztaroth Aztaroth is offline
Miembro
 
Registrado: dic 2003
Ubicación: Matamoros
Posts: 52
Poder: 21
Aztaroth Va por buen camino
Operador IS

Hay algun sustituto en Builder para el operador "is" de delphi

ej :

if IdMsgSend.MessageParts.Items[idx] is TIdAttachment then

como seria la implementacion en BCpp 6

Gracias.
Responder Con Cita
  #2  
Antiguo 31-07-2004
xeroq xeroq is offline
Registrado
 
Registrado: jul 2004
Posts: 8
Poder: 0
xeroq Va por buen camino
Primero,todos las clases de la VCL en C++ Builder deben crearse exclusivamente como punteros,por compatibilidad con Object Pascal.

Para poder hacer lo mismo sería:

if (dynamic_cast<TButton *>(Sender)!=NULL)
hacer_algo;

Te diria si Sender es un TButton
Responder Con Cita
  #3  
Antiguo 02-08-2004
Avatar de barman
barman barman is offline
Miembro
 
Registrado: may 2003
Posts: 139
Poder: 22
barman Va por buen camino
No se si es a lo que te refieres

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Sender ->ClassNameIs("TButton"))
ShowMessage("Boton");
}
Responder Con Cita
  #4  
Antiguo 02-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por barman
No se si es a lo que te refieres

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Sender ->ClassNameIs("TButton"))
ShowMessage("Boton");
}
Pero un TButton es un TControl... y:

Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Sender ->ClassNameIs("TControl"))
        ShowMessage("Control");
nos diría que no lo es... cuando el operador IS en delphi, nos diría (correctamente) que si lo es.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 03-08-2004
Avatar de barman
barman barman is offline
Miembro
 
Registrado: may 2003
Posts: 139
Poder: 22
barman Va por buen camino
Lo que quieres saber es la clase padre,

TClass ClassRef;
ClassRef = Sender ->ClassType();
ClassRef = ClassRef->ClassParent();
ShowMessage(String(ClassRef->ClassName()));

Tendrias que hacerte un bucle hasta que ClassRef == NULL y te iria diciendo todos los atecesores, No se me ocurre otra cosa.
Responder Con Cita
  #6  
Antiguo 03-08-2004
Avatar de barman
barman barman is offline
Miembro
 
Registrado: may 2003
Posts: 139
Poder: 22
barman Va por buen camino
Gueno, blanco y migao

TClass ClassRef;
ClassRef = Sender ->ClassType();
ClassRef = ClassRef->ClassParent();
while (ClassRef != NULL)
{
ShowMessage(String(ClassRef->ClassName()));
ClassRef = ClassRef->ClassParent();
}
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 16:26:00.


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