Всем спасибо, проблему решил, но сомнительным способом.
Как я уже писал выше "если в этот момент прервать уменьшение формы (отпустить левую кнопку мыши), а потом опять начать уменьшать форму, то форма будет без проблем уменьшаться до нужных размеров." Поэтому я генерирую программно отпускание и нажатие левой кнопки мыши:
Код:
procedure TForm3.FormResize(Sender: TObject);
begin
if ScrollBox.Height < pnlAlClientOrAlTop.Constraints.MinHeight + 10 then
begin
if pnlAlClientOrAlTop.Align <> alTop then
begin
pnlAlClientOrAlTop.Align := alTop;
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
end;
end
else
begin
if pnlAlClientOrAlTop.Align <> alClient then
pnlAlClientOrAlTop.Align := alClient;
end;
end;
Буду благодарен за другие решения, а также за комментарий этого.