![]() |
![]() ![]() ![]() ![]() |
|
Вылет окна 2Delphi , Программа и Интерфейс , Размеры и ПоложениеВылет окна 2
Оформил: DeeCo
{
A lot of Windows applications show a nice zooming animation when they
minimize/maximize their windows. Ofcourse you can do this too!
Microsoft provides the DrawAnimatedRects() function for this purpose and I'll
show you how to use it.
As an example I'll show how to show an animation that you can use to minimize
your application to the system tray area. This example doesn't actually minimize
the application, it only shows the animation.
First create a new application and put a button on the form. Use the following
OnClick-handler for the button:
}
procedure TForm1.Button1Click(Sender: TObject);
var
FormRect, TrayRect: TRect;
hTray: THandle;
begin
// Get handle of tray window
hTray := FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0,'TrayNotifyWnd', nil);
if hTray <> 0 then
begin
// This is the source rect for the animation.
FormRect := BoundsRect;
// Get tray window's coordinates as a TRect. This will be the animation's destination rect.
GetWindowRect(hTray, TrayRect);
{
Now perform the actual animation. Note that this code only shows the
animation. It does NOT minimize this application to the tray. I leave
that up to yourself ;-)
Also notice that the Delphi Help documents are very wrong about this
function! Use the official MSDN docs located Microsoft's website.
Instead of IDANI_CAPTION you can also use IDANI_OPEN and IDANI_CLOSE, but
they don't seem to do anything... Maybe they are for future use?
}
if not DrawAnimatedRects(Handle, IDANI_CAPTION, FormRect, TrayRect) then
begin
MessageDlg('DrawAnimatedRects() failed!', mtError, [mbOK], 0);
end;
end
else
begin
MessageDlg('Can''t get tray window handle!', mtError, [mbOK], 0);
end;
end;
Пример кода на Delphi!
Этот код демонстрирует использование функции Давайте разберемся, что делает код:
Обратите внимание, что этот код не действительно минимальизирует приложение в трей; он только демонстрирует анимацию. Автор оставляет реализацию минимальизации на усмотрение пользователя. Также worth mentioning, что документы по справке Delphi содержат неправильную информацию о функции В целом, этот код предоставляет основное пример использования В статье описывается, как использовать функцию DrawAnimatedRects() для создания анимации выезда окна в системную область трея. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Размеры и Положение ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||