Completando a resposta:

  SetWindowPos Function

------------------------------------------------------------------------

The *SetWindowPos* function changes the size, position, and Z order of a 
child, pop-up, or top-level window. Child, pop-up, and top-level windows 
are ordered according to their appearance on the screen. The topmost 
window receives the highest rank and is the first window in the Z order.

Syntax

    BOOL SetWindowPos(      

        HWND /hWnd/,
        HWND /hWndInsertAfter/,
        int /X/,
        int /Y/,
        int /cx/,
        int /cy/,
        UINT /uFlags/
    );

Parameters

    /hWnd/
        [in] Handle to the window. 
    /hWndInsertAfter/
        [in] Handle to the window to precede the positioned window in
        the Z order. This parameter must be a window handle or one of
        the following values.


            HWND_BOTTOM
                Places the window at the bottom of the Z order. If the
                /hWnd/ parameter identifies a topmost window, the window
                loses its topmost status and is placed at the bottom of
                all other windows. 
            HWND_NOTOPMOST
                Places the window above all non-topmost windows (that
                is, behind all topmost windows). This flag has no effect
                if the window is already a non-topmost window. 
            HWND_TOP
                Places the window at the top of the Z order. 
            HWND_TOPMOST
                Places the window above all non-topmost windows. The
                window maintains its topmost position even when it is
                deactivated.


            For more information about how this parameter is used, see
            the following Remarks section.

    /X/
        [in] Specifies the new position of the left side of the window,
        in client coordinates. 
    /Y/
        [in] Specifies the new position of the top of the window, in
        client coordinates. 
    /cx/
        [in] Specifies the new width of the window, in pixels. 
    /cy/
        [in] Specifies the new height of the window, in pixels. 
    /uFlags/
        [in] Specifies the window sizing and positioning flags. This
        parameter can be a combination of the following values.

        SWP_ASYNCWINDOWPOS
            If the calling thread and the thread that owns the window
            are attached to different input queues, the system posts the
            request to the thread that owns the window. This prevents
            the calling thread from blocking its execution while other
            threads process the request. 
        SWP_DEFERERASE
            Prevents generation of the WM_SYNCPAINT message. 
        SWP_DRAWFRAME
            Draws a frame (defined in the window's class description)
            around the window. 
        SWP_FRAMECHANGED
            Applies new frame styles set using the SetWindowLong
            function. Sends a WM_NCCALCSIZE message to the window, even
            if the window's size is not being changed. If this flag is
            not specified, *WM_NCCALCSIZE* is sent only when the
            window's size is being changed. 
        SWP_HIDEWINDOW
            Hides the window. 
        SWP_NOACTIVATE
            Does not activate the window. If this flag is not set, the
            window is activated and moved to the top of either the
            topmost or non-topmost group (depending on the setting of
            the /hWndInsertAfter/ parameter). 
        SWP_NOCOPYBITS
            Discards the entire contents of the client area. If this
            flag is not specified, the valid contents of the client area
            are saved and copied back into the client area after the
            window is sized or repositioned. 
        SWP_NOMOVE
            Retains the current position (ignores /X/ and /Y/ parameters). 
        SWP_NOOWNERZORDER
            Does not change the owner window's position in the Z order. 
        SWP_NOREDRAW
            Does not redraw changes. If this flag is set, no repainting
            of any kind occurs. This applies to the client area, the
            nonclient area (including the title bar and scroll bars),
            and any part of the parent window uncovered as a result of
            the window being moved. When this flag is set, the
            application must explicitly invalidate or redraw any parts
            of the window and parent window that need redrawing. 
        SWP_NOREPOSITION
            Same as the SWP_NOOWNERZORDER flag. 
        SWP_NOSENDCHANGING
            Prevents the window from receiving the WM_WINDOWPOSCHANGING
            message. 
        SWP_NOSIZE
            Retains the current size (ignores the /cx/ and /cy/
            parameters). 
        SWP_NOZORDER
            Retains the current Z order (ignores the /hWndInsertAfter/
            parameter). 
        SWP_SHOWWINDOW
            Displays the window.

Return Value

    If the function succeeds, the return value is nonzero.

    If the function fails, the return value is zero. To get extended
    error information, call GetLastError.



Remarks

    If the SWP_SHOWWINDOW or SWP_HIDEWINDOW flag is set, the window
    cannot be moved or sized.

    If you have changed certain window data using *SetWindowLong*, you
    must call *SetWindowPos* to have the changes take effect. Use the
    following combination for /uFlags/: SWP_NOMOVE | SWP_NOSIZE |
    SWP_NOZORDER | SWP_FRAMECHANGED.

    A window can be made a topmost window either by setting the
    /hWndInsertAfter/ parameter to HWND_TOPMOST and ensuring that the
    SWP_NOZORDER flag is not set, or by setting a window's position in
    the Z order so that it is above any existing topmost windows. When a
    non-topmost window is made topmost, its owned windows are also made
    topmost. Its owners, however, are not changed.

    If neither the SWP_NOACTIVATE nor SWP_NOZORDER flag is specified
    (that is, when the application requests that a window be
    simultaneously activated and its position in the Z order changed),
    the value specified in /hWndInsertAfter/ is used only in the
    following circumstances:

        * Neither the HWND_TOPMOST nor HWND_NOTOPMOST flag is specified
          in /hWndInsertAfter/.
        * The window identified by /hWnd/ is not the active window.

    An application cannot activate an inactive window without also
    bringing it to the top of the Z order. Applications can change an
    activated window's position in the Z order without restrictions, or
    it can activate a window and then move it to the top of the topmost
    or non-topmost windows.

    If a topmost window is repositioned to the bottom (HWND_BOTTOM) of
    the Z order or after any non-topmost window, it is no longer
    topmost. When a topmost window is made non-topmost, its owners and
    its owned windows are also made non-topmost windows.

    A non-topmost window can own a topmost window, but the reverse
    cannot occur. Any window (for example, a dialog box) owned by a
    topmost window is itself made a topmost window, to ensure that all
    owned windows stay above their owner.

    If an application is not in the foreground, and should be in the
    foreground, it must call the SetForegroundWindow function.

Example

    For an example, see Initializing a Dialog Box.

Function Information

    Header      Declared in Winuser.h, include Windows.h
    Import library      User32.lib
    Minimum operating systems   Windows 95, Windows NT 3.1

See Also

    Windows Overview, MoveWindow, SetActiveWindow, SetForegroundWindow



william.designer escreveu:
>
> Olá a todos, estou com uma dúvida cruel...
> estou criando um aplicativo que o usuário tem logar para ter acesso
> a área de trabalho. quando o usuário loga na parte superior da tela
> fica um pequeno formulario mostrando o nome do usuário, o relogio e
> um contatador de tempo.
>
> criei uma váriavel global
> Fechar:Boolean=False
> Coloquei no evento OnCloseQuery
> CanClose:=Fechar;
> Criei um botão Fechar e coloquei o seguinte codigo no Onclick
> Fechar:=True;
> Close;
> fiz isso para evitar que a tela fosse fechada com ALT+F4
>
> Nas propriedades do formulario retirei as bordas da janela;
> até ai tudo bem...
>
> porém também alterei o FormStyle para fsStayOnTop;
> fiz isso para que esta janelinha fique aparecendo o tempo todo sobre
> qualquer aplicativo que o usuario abrir no windows...
> porém não está funcionando...alguem sabe me dizer se fiz algo errado
> ou se deixei de fazer alguma coisa...
>
> estou precisando muito desta informação,,, deste já agradeço a
> todos...
>
>  



[As partes desta mensagem que não continham texto foram removidas]

Responder a