Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.015 Beiträge
 
Delphi 12 Athens
 
#6

AW: on[XYZ]-Methoden: Nicht aufrufen wenn Programmcode die Komponente ändert

  Alt 22. Jul 2013, 13:31
Ich umgehen das Problem meistens mit einem Integer-Property, bei dem ich im Setter nur dann etwas mache, wenn es sich ändert.

Nehmen wir z.B. ein einfaches Form mit einer RadioGroup und einem Label. Die Pas-Datei sieht dann so aus:

Delphi-Quellcode:
type
  TForm238 = class(TForm)
    RadioGroup1: TRadioGroup;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    FSelectedIndex: Integer;
    procedure SetSelectedIndex(const Value: Integer);
  public
    property SelectedIndex: Integer read FSelectedIndex write SetSelectedIndex;
  end;

...

procedure TForm238.FormCreate(Sender: TObject);
begin
  FSelectedIndex := RadioGroup1.ItemIndex;
end;

procedure TForm238.RadioGroup1Click(Sender: TObject);
begin
  SelectedIndex := RadioGroup1.ItemIndex;
end;

procedure TForm238.SetSelectedIndex(const Value: Integer);
begin
  if FSelectedIndex <> Value then
  begin
    FSelectedIndex := Value;
    Label1.Caption := RadioGroup1.Items[FSelectedIndex];
    RadioGroup1.ItemIndex := FSelectedIndex;
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat