Показать сообщение отдельно
  #7  
Старый 19.11.2009, 12:43
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Если же у вас на форме много различных компонентов, то вам следует сначала расписать, как должен быть расположен и какого размера должен быть каждый компонет в зависимости от размеров формы. Ширина формы равна Width.
Например, у вас есть N кнопок, и они расположены друг за другом в нижней части формы на одном уровне. Расстояние между кнопками пусть равно S, как и расстояние от кнопки до края формы. Итого, по ширине формы кнопки должны занимать Width - (N + 1) * S. Следовательно, ширина каждой кнопкй должна быть (Width - (N + 1) * S) / N, вернее, целая часть (Round) от этой величины, а свойство Left этой кнопки должно быть равно Left(предыдущей кнопки) + Width + S.

И все то нужно запихнуть в метод OnResize формы. Пример:
Код:
procedure TForm1.FormResize(Sender: TObject);
var
  ButtonWidth: Integer;
begin
  ButtonWidth := Round(Width - (N + 1) * S);
  Button1.Left := S;
  Button1.Width := ButtonWidth;
  Button2.Left := Button1.Left + ButtonWidth + S;
  Button2.Width := ButtonWidth;
  ...
  ButtonN.Left := Button(N-1).Left + ButtonWidth + S;
  ButtonN.Width := ButtonWidth;
end;
Ответить с цитированием