Mein Vorschlag wäre:
Alle RadioButtons in eine Liste (TList) packen
Delphi-Quellcode:
TForm1 = class( TFrom )
...
procedure MyRadioButtonsClick( Sender : TObject );
private
fRadioList : TList;
...
end;
procedure TForm1.FormCreate( Sender : TObject );
begin
fRadioList := TList.Create;
// Alle RadioButtons in die Liste aufnehmen, dabei auf die gewünschte Reihenfolge achten
fRadioList.Add( MyRadioButton1 );
MyRadioButton1.OnClick := MyRadioButtonsClick;
fRadioList.Add( MyRadioButton2 );
MyRadioButton2.OnClick := MyRadioButtonsClick;
...
end;
procedure TForm1.FormDestroy( Sender : TObject );
begin
// Die RadioButtons werden über den Owner freigegeben, wir müssen also nur die Instanz der Liste befreien
fRadioList.Free;
end;
procedure TForm1.MyRadioButtonsClick( Sender : TObject );
var
RadioButtonIndex : Integer;
begin
// Als Sender wird die Instanz mitgegeben, die dieses Event aufruft - also einer von den RadioButtons
// Und da die in der Liste stehen sollten, bekommen wir nun so den Index heraus
RadioButtonIndex := fRadioList.IndeOf( Sender );
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)