Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 30-03-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por edelphi
holas, lo ke dijo lepe me parece interesante pero como puedo implemnetar eso de herencia no entiendo muy bien eso de override, podrias explicarlo mejor porfa muchas gracias
Bueno, no soy Lepe pero al concepto lo domino.
Mira, la herencia (en su concepto más simple) es una característica o propiedade que posee una clase de heredar el comportamiento y estructura de una clase padre. Por ejemplo si tu tienes una clase llamada Animal que cuenta con las propiedades Nombre y Tamaño (por poner un ejemplo) y un procedimiento que Mover, y tienes una clase basada en Animal (por poner un ejemplo... Gato), está segunda clase hereda todo lo común a la clase Animal y se le añade lo PROPIO o lo que le corresponde a Gato, por poner ejemplo: propiedad Color de Cola, y el procedimiento Arañar.
Un poco de código:
Código Delphi [-]
//esto es la clase Animal
Animal = class
  private
    FTamanno: integer;
    FNombre: string;
  public
    property Tamanno: string read FTamanno write SetTamanno;
    property Nombre: string read FNombre write SetNombre;
    procedure Mover(Pos: Pointer);
 end;

// esto es la clase Gato
Gato = class(Animal) // Un Gato es un animal. Por tanto Gato hereda de Animal
  private
     FColorCola: TColor;
  public
     property ColorCola: TColor read FColorCola write SetColorCola;
     procedure Arañar;
end;

¿Que se consigue con esto? que gato tenga el mismo comportamiento de un animal pero ESPECIALIZADO para algo más particular. La clase gato también tiene las propiedades tamaño y nombre y el procedimiento mover... y esto lo hereda de su padre (Animal).

Ahora... hay ocasiones en que es necesario redefinir el comportamiento de la clase padre... Por poner un ejemplo (siguiendo el anterior): Todos los animales pueden moverse, pero no todos los hacen de igual manera. Por tanto, si el procedimiento Mover de la clase Animal es único... todos los animales van a moverse igual... como se consigue esto.... con las cláusulas protected, y override (también no hay que olvidar los casos de asbtract y virtual) que señalaron Lepe y otros.

Cuando se desea que un procedimiento o función tenga una "sobrecarga", o redefinición... en la clase padre se lo introduce bajo la clausura protected (protegida).

Código Delphi [-]
Animal = class
//.... lo que venía
protected
  procedure Mover;
// ... lo que sigue
end;

Y en la clase hija (Gato) la clausura override, que indica que se va a sobreescribir el comportamiento. Esto hace que el compilador implemente el procedimiento adecuado a la clase.

Código Delphi [-]
Gato = class(Animal)
// --- lo que venía
protected
  procedure Mover; override;
// lo que sigue
end;

Este tema puede continuar... y no basta un hilo para explicar todo lo que es POO. Como dije antes... Puedes leer la Cara Oculta de Delphi 4, allí hay un capítulo entero dedicado a POO. Es muy sencillo de entender...

espero haberte ayudado en algo,
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #22  
Antiguo 30-03-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Si quieres una solución rápida:

Crea una nueva clase diagamos "TFormTool" del tipo TObject

Crea un método "EnableControl(aComponent:TComponent);

En el metodo EnableControl pones lo que quieras hacer con el componente que le pases.
Guarda la unidad.

Ahora puedes usar este control para manipular cualquiera de las forms que mencionas, solo tendrias que instanciar el objeto antes de abrir cualquiera de las dos forms o bien instanciarlo dentro de cada form. Da lo mismo.

Es decir nuestra clase FormTool podrá manipular forms según necesites sin necesidad de saber que contienen ni de que son.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como usar los formularios MDI, constructores de componentes Narlohe OOP 3 11-12-2006 10:54:10
¿Cómo crear una DLL con varios formularios? Javi2 Varios 3 25-05-2006 10:35:06
usar botones y etiquetas de flash en los formularios?? nidia Gráficos 1 25-11-2005 01:51:09
Obtener varios registros de Stored Procedure Phacko Firebird e Interbase 6 19-08-2005 17:56:43
CTRL-P en varios formularios magm2000 Varios 2 20-10-2004 09:38:09


La franja horaria es GMT +2. Ahora son las 20:55:13.


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