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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Virata
En el caso de declarar Objeto como TObject, se produce el siguiente error de compilación:"Operator not aplicable to this operand type" en la línea "(Objeto as IMyInterface).HacerAlgo();" y es por la sentencia as
Recién me doy cuenta que en efecto el uso de Supports era incorrecto tal como se había puesto originalmente.

Si aún deseas usar TObject en lugar de IInterface como tipo de datos del parámetro lo puedes hacer con Supports que acepta un tercer parámetro en el que se recibe una interfaz en caso de soportarse:

Código Delphi [-]
procedure MiProcedimiento(Obj: TObject);
var
  Intf: IMyInterface;

begin
  if Supports(Obj, IMyInterface, Intf) then
    Intf.HacerAlgo();
end;

// Saludos
Responder Con Cita
  #2  
Antiguo 06-09-2004
Virata Virata is offline
Registrado
 
Registrado: sep 2004
Posts: 7
Poder: 0
Virata Va por buen camino
Ciertamente este último uso de Support me parece más limpio y funciona correctamente en el caso de que un objeto implemente un tipo determinado de interface.

Gracias por todo.

Salu22222
Responder Con Cita
  #3  
Antiguo 06-09-2004
Jan Jan is offline
Miembro
 
Registrado: may 2003
Ubicación: Cádiz
Posts: 90
Poder: 24
Jan Va por buen camino
Ciertamente, es mas elegante. Ya dije que no lo había comprobado, estaba poniéndolo de memoria. Perdonad por el tiempo perdido.
__________________
Guía de Estilo del Foro
Responder Con Cita
  #4  
Antiguo 06-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Jan
Ya dije que no lo había comprobado, estaba poniéndolo de memoria. Perdonad por el tiempo perdido.
Ciertamente lo habías dicho. No tienes que disculparte, realmente tu solución fue la que a fin de cuentas se usó.

Va un 'regaño' amistoso para el amigo Virata: al ver que no funcionaba el Supports tal como se escribió originalmente lo mínimo era consultar la ayuda acerca de la función en donde te hubieras dado cuenta de inmediato del uso correcto.

// Saludos
Responder Con Cita
  #5  
Antiguo 07-09-2004
Virata Virata is offline
Registrado
 
Registrado: sep 2004
Posts: 7
Poder: 0
Virata Va por buen camino
Acepto el regaño de buen grado .Las prisas nunca son buenas consejeras. Gracias de nuevo y perdonad las molestias.

Salu22222
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 17:39:18.


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