решение как я и предполагал простое. У ListBox есть свойство GroupingKind. Так вот по дефолту оно стоит Plaint (без зазоров) а когда меняешь на Grouped появляются полосочки как я и хотел.
странно что никто на форуме этого не знал...
procedure RttiClick(const Obj: TObject);
// uses System.TypInfo;
var
M: TMethod;
begin
if Obj = nil then
exit;
M := GetMethodProp(Obj, 'OnClick');
if Assigned(M.Code) then
TNotifyEvent(M)(Obj);
end;
использовать
RttiClick(Button2);
Прошу прощения, но вопрос вызывает улыбку - если все будут говорить что делфи - зло, пересядете на шарп?))) Меньше слушайте всех. Прислушаться да, а вот как поступать - решать вам. Напоминает возню с Goto, тем не менее, чертовски удобная штука, пусть и в редких случаях, но все же. Все зависит от мастера, и потом уже от инструмента.
Описание
Назначение: Компонент предназначен для отображения группы TRadioButton и осуществления выбор. Поддерживает стилизацию.
Поддерживаемые платформы: Windows, OSX, iOS, Android
Демо проект: Samples\RadioGroupDemo\RadioGroupDemo.dproj
Возможности
Стилизация через указание двух картинок отображающих голос и пустой голос
Настройки отображения заголовка группы TfgRadiouGroup.TextOptions.TitleTextSettings
Возможность выбрать настройки отображения заголовка группы из стиля TfgRadioGroup.TextOptions.StyledTitleTextSettings
Настройки отображения текста TRadioGroup TfgRadiouGroup.TextOptions.ButtonTextSettings
Возможность выбрать настройки отображения текста TRadioGroup из стиля TfgRadioGroup.TextOptions.StyledButtonTextSettings
Текущий выбранный вариант TfgRadioGroup.ItemIndex
Возможность разбить варианты на колонки TfgRadioGroup.AlignOptions.Columns
Возможность указать отступы для вариантов по вертикале и горизонател TfgRadioGroup.AlignOptions.HorzSpace, TfgRadioGroup.AlignOptions.VertSpace
Возможность узнать, когда пользователь делает выбор TfgRadioGroup.OnChanged