Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 06-09-2004
Virata Virata is offline
Registrado
 
Registrado: sep 2004
Posts: 7
Poder: 0
Virata Va por buen camino
Hola de nuevo.

Os voy a poner el codigo de prueba que estoy realizando.

Esta es la interface:

Código:
unit MyInterface;
 
interface
 
type
  IMyInterface = interface ['{6E93F07C-AD0C-494B-85BC-A960AF01EF0A}']
	procedure HacerAlgo();
  end;
 
implementation
 
end.
Esta es la clase, hereda de TTimer por heredar de algo. En la realidad heredará de TGraphicControl.

Código:
unit MyClass;
 
interface
 
uses QExtCtrls,Dialogs,MyInterface;
 
type
  TMyClass=Class(TTimer,IMyInterface)
  procedure HacerAlgo();
  end;
 
implementation
 
procedure TMyClass.HacerAlgo();
begin
  showmessage('Estoy haciendo algo');
end;
 
end.
y este es el código del form con el boton.

Código:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ExtCtrls,MyClass,MyInterface ;
 
type
  TForm1 = class(TForm)
	Button1: TButton;
	Timer1: TTimer;
	procedure Button1Click(Sender: TObject);
	procedure Miprocedimiento(Objeto:TObject);
 
  private
	{ Private declarations }

  public
	{ Public declarations }

  end;
 
var
  Form1: TForm1;
 
implementation
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
  MiClase:TMyClass;
begin
  MiClase:=TMyClass.create(self);
  MiProcedimiento(MiClase);
  MiClase.Free;
end;
 
procedure TForm1.Miprocedimiento(Objeto:TObject);
begin
  if Supports(Objeto,IMyInterface) then
	  (Objeto as IMyInterface).HacerAlgo();
end;

end.
Si en MiProcedimiento recibo el parámetro Objeto como TMyClass, funciona bien, pero no tiene gracia ya que este procedimiento debe aceptar cualquier tipo de objeto.

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

Puedo hacer typecast a Objeto para que sea TMyClass, pero el problema es que no todos los objetos que recibirá será TMyClass.

No se como puedo arreglarlo.

Gracias de nuevo.

Salu22222
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 19:33:26.


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