When calling TWincontrol's Broadcast procedure, some controls DO cause it to hit the exit in design mode(one is a TLabel) and thus prevent the messages from being sent to all the controls.
The fix is to make the calls to WindowProc yourself and leave out the
if statement.
procedure TWinControl.Broadcast(var Message);
var
I: Integer;
begin
for I := 0 to ControlCount - 1 do
begin
Controls[I].WindowProc(TMessage(Message));
if TMessage(Message).Result <> 0 then Exit;
end;
end;