TWebSpeedButtons ... how should they work?

All of the radio buttons and check boxes in my app have all mysteriously stopped showing up since I updated the FNC libs, except for those in a TCheckListBox. So I changed a display from a TWebRadioGroup to a line of TWebSpeedButtons, thinking that would probably look better anyway.

I put down a TWebPanel and then six TWebSpeedButtons on it that are left-aligned and made them square. It looks like this:

at design-time:


at run-time:


They all have (among other settings):

AllowAllUp = True
GroupIndex = 12
ElementFont = efProperty

(Their Tags contain the same value as the Caption, but I'm not using them yet.)

Clicking the Down property in the IDE does nothing, and I can SET Down=True for any or all of them.

But at Runtime, NONE of them are Down.

With all six selected in the IDE, these are what their common properties are set to:

I set up a common OnClick handler with this code:

procedure Tmy_form.DefaultSpeedSetting_all_btnClick(Sender: TObject);
  btn, btn2 : TWebSpeedButton;
  ctrl : TControl;
  i : integer;

  if not ReadyToRun then Exit;
  if not (Sender is TWebSpeedButton) then Exit;
  btn := TWebSpeedButton(Sender);

  for i := 0 to DefaultSpeedSettings_panel.ControlCount-1 do
    ctrl := DefaultSpeedSettings_panel. Controls[i];
    if not (ctrl is TWebSpeedButton) then
    btn2 := TWebSpeedButton( ctrl );
    btn.Down := (btn = btn2);
    if btn2.Down then begin
      btn2.Color := clSkyBlue;
      btn2.Font.Color := clRed;
      btn2.Font.Style := [fsBold];
    end else begin
      btn2.Color := clWhite;
      btn2.Font.Color := clWindowText;
      btn2.Font.Style := [];

It does not work. Nothing makes any of these buttons light-up, change color, or give any indication that one of them is DOWN -- but at run-time in the browser debugger, I can see that ONE BUTTON IS DOWN.

What am I doing wrong???

I get that this is NOT the VCL and that "things don't always work the same" in WEB Core, but this is a very specific application of TSpeedButtons in the VCL, and there's nothing else that lets you get this kind of behavior in the VCL. If they behave the same as regular buttons in WEB Core, then there's simply no need for them to even exist. And if it's not even possible to get them to change VISUALLY at run-time to show when one or more are selected (ie, "down"), then what's the point?

I cannot see the described problems in my test project. (5.3 KB)

If there is a problem, then please isolate this and send a test project with which we can reproduce this and do not expect that we scan property by property in a screenshot of settings in an object inspector while you could have sent a test project or could have at least dumped the DFM content here.

I'm simply reporting a problem I'm seeing and documenting it the best I can.

I'm writing a real application. Things need to work when in the presence of other things, not just in isolation.

I fully expect it to work in isolation. That does app devs no good at all. We need things that work in a larger application environment. This happens from time to time, and we devise workarounds. This was a workaround for another problem that suddenly cropped-up. Ok, this one didn't work either, so I need to try another one. A simple combo-box will do. It's not as aesthetically pleasing in this case, but it'll work.

These components are using HTML, CSS, and/or javascript to implement their underlying mechanisms. I'm guessing there are some interactions at that level that are completely transparent at the Delphi level. I have some experience debugging components, but not this sort of stuff.

Again, I'm simply reporting a problem I'm seeing and documenting it the best I can.