Hallo und Herzlich Willkommen in den Heiligen Hallen des Wissens und des Wahnsinns
Was willst du an deinem "segment" groß abfragen? Welcher grade gedrückt ist? Oder willst du mitbekommen wenn sich die Auswahl ändert?
Letzteres ist etwas fummelig, man registriert sich für eine "TSpeedButtonGroupMessage":
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
TMessageManager.DefaultManager.SubscribeToMessage(
TSpeedButtonGroupMessage,
procedure(const Sender: TObject; const msg: TMessage)
begin
Caption :=
(Sender as TSpeedButton).Name
+' from '
+ (msg as TSpeedButtonGroupMessage).Value
+' was pressed';
end
);
end;
Alternativ könntest du allen SpeedButtons den gleichen
OnClick
-Handler geben und so etwas in der Art:
Delphi-Quellcode:
procedure TForm1.SpeedButtonClick(Sender: TObject);
begin
if SpeedButton1.IsPressed then
Caption := 'SpeedButton1 is pressed'
else if SpeedButton2.IsPressed then
Caption := 'SpeedButton2 is pressed'
else
Caption := 'SpeedButton3 is pressed';
end;
Ansonsten ist da noch die Tag-Eigenschaft von allen Controls. Du gibst deinen drei SpeedButtons die Tags 1, 2 und 3. Dann könnte man den hier machen:
Delphi-Quellcode:
procedure TForm1.SpeedButtonClick(Sender: TObject);
begin
case (Sender as TSpeedButton).Tag of
1: Caption := 'SpeedButton1 was pressed';
2: Caption := 'SpeedButton2 was pressed';
3: Caption := 'SpeedButton3 was pressed';
else
Caption := 'Somewhere, something went terribly wrong';
end;
end;
Kurzum: Entweder liege ich falsch, oder die GruppenNamen-Eigenschaft sorgt nicht dafür es irgendwo ein Gruppenobjekt gibt, an das man herankommt. Beispielsweise um es nach dem "Index" zu fragen, welcher Button gedrückt ist.