Растягивание формы на весь экран. Программирование Delphi.Источник: rgblog Руслан Гайсин
Сегодня я расскажу как растягивал форму в Delphi во весь экран без искажения из-за разных соотношений высоты и ширины экрана. И изменение масштаба компонент установленных на форме. Создаем новый проект в Делфи. И кидаем на форму панель - Panel1, установив для нее свойство Align = alClient (растягивать по форме). Самой форме необходимо поменять свойства BorderStyle = bsNone и WindowState = wsMaximized Создаем процедуру procedure FullScreen(oForm: TForm; oPanel: TPanel); Со следующим кодом: procedure TForm1.FullScreen(oForm: TForm; oPanel: TPanel); var percentw,percenth: integer; begin oPanel.Align := alNone; oForm.Color := clBlack; //Цвет участков за панелью if Screen.Width > 800 then begin percentw := Round(((Screen.Width - 800) / 800) * 100) + 100; percenth := Round(((Screen.Height - 600) / 600) * 100) + 100; if (percentw < percenth) then oForm.ScaleBy(percentw, 100) else oForm.ScaleBy(percenth, 100); end; oForm.Height := Screen.Height; oForm.Width := Screen.Width; oPanel.Top := Round((oForm.Height - oPanel.Height) / 2); oPanel.Left := Round((oForm.Width - oPanel.Width) / 2); end; В данном коде вместо 800, подставляем ширину формы при разработке приложения. А вместо 600 высоту. Я выносил эту процедуру в отдельный файл (unit), поэтому сделал передачу формы в процедуру. Создаем процедуру FormCreate, которая выполняется при создании формы procedure TForm1.FormCreate(Sender: TObject); begin FullScreen(Form1,Panel1); end; Для проверки работоспособности кода поместим на форму две кнопки, в разные углы формы. В результате работы данного приложения, мы получим следующую картину при запуске: |