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. |
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 |
No se si es a lo que te refieres
void __fastcall TForm1::Button1Click(TObject *Sender) { if (Sender ->ClassNameIs("TButton")) ShowMessage("Boton"); } |
Cita:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender) Hasta luego. ;) |
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. |
Gueno, blanco y migao
TClass ClassRef; ClassRef = Sender ->ClassType(); ClassRef = ClassRef->ClassParent(); while (ClassRef != NULL) { ShowMessage(String(ClassRef->ClassName())); ClassRef = ClassRef->ClassParent(); } |
me gusta mas el dynamic_cast... :D
Hasta luego. ;) |
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. |
Cita:
Cita:
Cita:
siendo miGrid un TDBGrid: Código:
miGrid is TDBGrid (true) miGrid si es un TdbGrid ;) |
La franja horaria es GMT +2. Ahora son las 16:20:07. |
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