Предотвращение изменения вертикальных размеров окна			
	
	
		
		Written on . Posted in [Delphi] Пользовательский интерфейс. Окна и формы	
	
	
	
	
	
		
 Вы должны перехватывать сообщение WM_GETMINMAXINFO:
 Поместите это в декларацию класса формы: 
procedure WMGetMinMaxInfo(var  Msg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;  
и в секции реализации: 
procedure  TMyForm.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
begin
 {  --------------------------------------------------------------------}
 { Поместите ваши величины вместо                                       }
 { MIN_WIDTH, MIN_HEIGHT, MAX_WIDTH, MAX_HEIGHT                         }
 {                                                                      }
 { Для возможности только горизонтального изменение размера,            }
 { поместите значение свойства формы 'Height' в MIN_HEIGHT,  MAX_HEIGHT }
 {  --------------------------------------------------------------------}
 Msg.MinMaxInfo^.ptMinTrackSize := Point(MIN_WIDTH,  MIN_HEIGHT);
 Msg.MinMaxInfo^.ptMaxTrackSize := Point(MAX_WIDTH,  MAX_HEIGHT);
 inherited
end;  
И все заработает как надо.