Written on . Posted in [Delphi] Пользовательский интерфейс. Окна и формы
У меня была проблема с центровкой формы после того, как во время выполнения программы я изменил некоторые ее размеры. poScreenCenter работает только в момент показа формы. Но если вы изменяете размеры во время выполнения, форма автоматически не центрируется.
Вариант 1
Я использую данный код при создании формы (событие FormCreate), но, может быть, стоит попробовать поместить его в обработчик события OnPaint, который вызывается при каждом изменении размера формы?
Form1.Left := (Screen.Width div 2) - (Form.Width div 2);
Form1.Top := (Screen.Height div 2) - (Form.Height div 2);
Вариант 2
Если вы используете SetBounds, форма не будет перерисована дважды (один раз при изменении горизонтального размера, второй - вертикального, если это происходит одновременно). Попробуйте:
procedure CenterForm(AForm:TForm); var ALeft,ATop:Integer; begin