FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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 |
#3
|
||||
|
||||
No se si es a lo que te refieres
void __fastcall TForm1::Button1Click(TObject *Sender) { if (Sender ->ClassNameIs("TButton")) ShowMessage("Boton"); } |
#4
|
||||
|
||||
Cita:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender) { if (Sender ->ClassNameIs("TControl")) ShowMessage("Control"); Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
||||
|
||||
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. |
#6
|
||||
|
||||
Gueno, blanco y migao
TClass ClassRef; ClassRef = Sender ->ClassType(); ClassRef = ClassRef->ClassParent(); while (ClassRef != NULL) { ShowMessage(String(ClassRef->ClassName())); ClassRef = ClassRef->ClassParent(); } |
#7
|
||||
|
||||
me gusta mas el dynamic_cast...
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#8
|
||||
|
||||
A, si , bueno, vale, pero, tal vez, quiza, no se, ¿Cual era la pregunta?,
el codigo es para saber todos los antecesores de un componente, no tengo ni idea de los que hace el is de delphy. Y ya ta. |
#9
|
||||
|
||||
Cita:
Cita:
Cita:
siendo miGrid un TDBGrid: Código:
miGrid is TDBGrid (true) miGrid si es un TdbGrid miGrid is TCustomControl (true) miGrid si es un TdbGrid miGrid is TComponent (true) miGrid si es un TdbGrid miGrid is TObject (true) miGrid si es un TdbGrid miGrid is TStringGrid (falso) miGrid no es un TStringGrid
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|