Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TheMaker

Applicação sempre por cima

Recommended Posts

Inclua o seguinte no evento OnCreate do seu form principal:

SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colegas,

 

Só para constar para uso futuro que, a resposta minha é do colega Massuda estão corretas. Quando se altera o valor da propriedade FormStyle para fsStayOnTop, no momento da criação do form é verificado o valor dessa propriedade e se estiver fsStayOnTop é utilizada a chamada postada pelo Massuda.

 

Vejam a implementação:

 

   case FormStyle of      fsMDIForm:        begin          with ClientCreateStruct do          begin            idFirstChild := $FF00;            hWindowMenu := 0;            if FWindowMenu <> nil then hWindowMenu := FWindowMenu.Handle;          end;          FClientHandle := Windows.CreateWindowEx(WS_EX_CLIENTEDGE, 'MDICLIENT',            nil, WS_CHILD or WS_VISIBLE or WS_GROUP or WS_TABSTOP or            WS_CLIPCHILDREN or WS_HSCROLL or WS_VSCROLL or WS_CLIPSIBLINGS or            MDIS_ALLCHILDSTYLES, 0, 0, ClientWidth, ClientHeight, Handle, 0,            HInstance, @ClientCreateStruct);          FClientInstance := Classes.MakeObjectInstance(ClientWndProc);          FDefClientProc := Pointer(GetWindowLong(FClientHandle, GWL_WNDPROC));          SetWindowLong(FClientHandle, GWL_WNDPROC, Longint(FClientInstance));        end;      fsStayOnTop: // aqui        SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or          SWP_NOSIZE or SWP_NOACTIVATE);    end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.