Skip to content
Delphi

Propriétés et Événements

Définir des propriétés et des gestionnaires d'événements en Delphi.

#property#event#observer

Code

delphi
type
  TValueChanged = procedure(Sender: TObject; NewValue: Integer) of object;

  TCounter = class
  private
    FValue: Integer;
    FOnChange: TValueChanged;
    procedure SetValue(const Value: Integer);
  public
    constructor Create;
    property Value: Integer read FValue write SetValue;
    property OnChange: TValueChanged read FOnChange write FOnChange;
  end;

implementation

procedure TCounter.SetValue(const Value: Integer);
begin
  if FValue <> Value then
  begin
    FValue := Value;
    if Assigned(FOnChange) then
      FOnChange(Self, FValue);
  end;
end;

// Usage
procedure TForm1.CounterChanged(Sender: TObject; NewValue: Integer);
begin
  Caption := 'Count: ' + IntToStr(NewValue);
end;

var C: TCounter;
C := TCounter.Create;
C.OnChange := CounterChanged;
C.Value := 10;  // triggers event