Как в delphi сделать форму на весь экран

Как в delphi сделать форму на весь экран
Как в delphi сделать форму на весь экран
Как в delphi сделать форму на весь экран

На основе MSN
https://msdn.microsoft.com/en-us/library/windows/desktop/ms632669(v=vs.85).aspx
есть много проблем, связанных с использованием этой функции. Поэтому я рекомендую вам пойти и реализовать анимацию самостоятельно.

Поскольку вас интересует только скользящая информация, сделайте следующее:

Fist измените размер формы, чтобы она соответствовала размеру монитора.

MyForm.Width := Screen.Width; MyForm.Height := Screen.Height;

Затем переместите форму на край экрана, с которого вы хотите начать анимацию. При этом держите по крайней мере один пиксель формы внутри видимой области монитора.

//Strating animation from left border MyForm.Left := 1 - MyForm.Width; MyForm.Top := 0; //Starting from right border MyForm.Left := MyForm.Width - 1; MyForm.Top := 0; //Starting from top border MyForm.Left := 0; MyForm.Top := 1 - MyForm.Height; //Starting from bottom border MyForm.Left := 0; MyForm.Top := MyForm.Height - 1;

После того, как вы разместили свою форму в стартовой позиции, сделайте ее видимой и включите таймер, который будет использоваться для обновления формы позиции несколько раз (оживить), пока он не попадет в нужную позицию.

MyForm.Show; AniTimer.Enabled;

И запустите анимацию, которая в основном просто обновляет вашу позицию формы, используя простой таймер

//Left to right animation procedure MyForm.AniTimerOnTimer(Sender: TObject); //Constant used to define by how many pixels will the form be moved //on each timer interval const MoveStep: Integer = 5; begin if MyForm.Left < MoveStep then begin MyForm.Left := MyForm.Left + MoveStep; end; else begin MyForm.Left := 0; AniTimer.Enabled := False; end; end;

При необходимости используйте аналогичный подход для других направлений.

Вместо того, чтобы определять MoveStep как константу, вы можете сделать это как переменную, а затем динамически вычислить ее значение, чтобы анимация завершилась с помощью N шагов.

MoveStep := Screen.Width div N;

Если вы хотите иметь диагональную анимацию, вам понадобятся две переменные MoveStep. Один для горизонтального и один для вертикальной оси. И вам нужно убедиться, что оба они рассчитываются для завершения анимации в определенном количестве шагов.

MoveStepX := Screen.Width div N; MoveStepY := Screen.Height div N;

Итак, теперь вы можете контролировать свою скорость анимации, изменяя MoveStep и интервал таймера.

Примечание. Я не рекомендую устанавливать интервал таймера на маленький. Зачем?

Как известно, ypu знает, что компонент TTimer не известен своей acraacy, поэтому он может привести к заметному изменению скорости вашей анимации.

Кроме того, изменение позиции формы несколько раз woulrd требует, чтобы часть ее была переименована, и она попала в визуальный ярость, чтобы она могла генерировать значительную нагрузку на CPU.

Перемещение fomr в несколько меньших времен и с большими приращениями может значительно снизить нагрузку на процессор, все еще сохраняя адекватную насыщенность.

Итак, сделайте некоторое тестирование, чтобы найти наилучшую комбинацию таймера и шаг шага.

Как в delphi сделать форму на весь экран Как в delphi сделать форму на весь экран Как в delphi сделать форму на весь экран Как в delphi сделать форму на весь экран Как в delphi сделать форму на весь экран Как в delphi сделать форму на весь экран Как в delphi сделать форму на весь экран Как в delphi сделать форму на весь экран Как в delphi сделать форму на весь экран Как в delphi сделать форму на весь экран

Тоже читают:



Вязание крючком модели купальников схемы

Поздравление сотрудникам уголовно-исполнительной системы

Как сделать счет на оплату с логотипом

Как сделать расчет процентов по займу

Поздравления двоюродной тете с днем рождения