Ich dachte doch TButton funktioniert.
Tja, zu früh gefreut.
Mehrere Buttons mit StaysPressed=True und
Delphi-Quellcode:
procedure TTestMainForm.btMenuShowClick(Sender: TObject);
begin
tcPages.ActiveTab := tcPages.Tabs[TComponent(Sender).Tag];
TButton(Sender).IsPressed := True;
end;
Wenn man nochmal auf den aktiven Button drückt, würde er sich ja loslassen, also
TButton(Sender).IsPressed := True;
mit reingemacht und ging,
aber dann hab ich mal "ausversehn" einen Doppelklick gemacht.
Sollte man nun auf die Idee kommen und sowohl OnClick, als auch OnDblClick dieses Event zuzuweisen, dann wird man enttäuscht ... läuft also auch wieder auf diesen bösen Thread+Synchronize hinaus.
Schade, daß es kein abschaltbares AutoCheck gibt, so wie bei den TMenuItems.
[edit]
Maustaste Drücken und Maus vom Button ziehen, bevor losgelassen wird = kein Klick.
So weit funktioniert es, aber IsPressed wird dennoch umgeschaltet, wenn es vorher True war. (hier geb ich wol einfach auf)