Ver Mensaje Individual
  #3  
Antiguo 06-06-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 24
maeyanes Va por buen camino
Hola...

El uso de "setters" y "getters" para definir las propiedades depende mucho de como quieres que se comporten estas. Si solo necesitas que la propiedad guarde un valor, puedes indicarle que use una variable privada:

Código Delphi [-]
TMyClass = class
private
  FName: string;
public  // o published
  property Name: string
    read FName
    write FName;
end;

Pero si quieres que al asignar una propiedad se produzca un efecto secundario (repintar el control) o se calcule el valor de la propiedad, entonces usas los métodos:

Código Delphi [-]
TMyClass = class(TGraphicObject)
private
  FColor: TColor;

  procedure SetColor(Value: TColor);
published
  property Color: TColor
    read FColor
    write SetColor;
end;

implementation

procedure TMyClass.SetColor(Value: TColor);
begin
  if FColor <> Value then
  begin
    FColor := Value;
    Invalidate
  end
end;

Espero que esta pequeña explicación disipe tu duda.


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita