Упреждающее замечание (даже два): во-первых, я не эксперт в GUI, поэтому к моим утверждениям этой части стоит относиться с опаской. Желательно их проверять самостоятельно. Во-вторых, всё обсуждение и все примеры ниже рассчитаны на Delphi 2009+. Это касаемо момента с
Application.Handle
<> Application.MainFormHandle
(MainFormOnTaskbar
). У меня нет никакого желания писать весь код в нескольких вариантах. Адаптировать приведённые решения для динозаврических версий Delphi я оставляю вам в качестве домашнего задания.