Ver Mensaje Individual
  #9  
Antiguo 11-01-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo creo que podrías repasar algún que otro texto al respecto, y fijarte en cuantos componentes consideres oporturno. En todo caso hay va un ejemplo muy sencillo de un componente con un par de propiedades... qué sé yo... me he puesto a escribir algo y me ha salido lo siguiente. No tiene utilidad ninguna más allá de lo que se deje entrever. Insisto en lo primero que he dicho.

Código Delphi [-]
unit UAmigo;

interface

uses
  Classes;

type
  // Sexo de nuestro amigo
  TSexo = (hombre, mujer);

  // Una clase a modo de ejemplo
  TAmigo = class(TComponent)
  //
  private
    FSexo: TSexo;         // Sexo de nuestro amigo
    FNombre: string;      // Nombre de nuestro amigo
    FApellidos: string;   // Apellidos de nuestro amigo
    FTratamiento: string; // Tratamiento para nuestro amigo

    // Variable puñetera
    FNivelAmistad: integer;

    { Establecerá el sexo y algo más...
    }
    procedure SetSexo(value: TSexo);

  public
    constructor Create(AOwner: TComponent); override; // Constructor del componente

  public
    // Nombre es una propiedad pública
    property Nombre: string read FNombre write FNombre;
    // Apellidos es una propiedad pública
    property Apellidos: string read FApellidos write FApellidos;
    // Sexo es una propiedad pública
    property Sexo: TSexo read FSexo write SetSexo default hombre;
    // NivelAmistad es una propiedad pública de solo lectura
    property NivelAmistad: integer read FNivelAmistad default 5;
  end;

implementation

{ TAmigo }

{ Utilizamos este procedimiento en lugar de
  asignar el valor directamente a FSexo, porque
  de este modo aprovechamos para dar un valor
  en consonancia a la variable privada
  FTratamiento.
}
constructor TAmigo.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  // Inicializamos
  FSexo := hombre;
  FNivelAmistad := 5;
end;

procedure TAmigo.SetSexo(value: TSexo);
begin
  if value <> FSexo then FSexo := value;
  case FSexo of
    mujer: Self.FTratamiento := 'Doña';
    hombre: Self.FTratamiento := 'Don ';
  end;
end;

end.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita