Oi Pessoal
estou fazendo uma aplicação cujo form principal é pequeno e é executado no tray, quando eu dou clique duplo o form pirncipal é mostrado só que no centro da tela e eu gostaria que ele fosse mostrado sempre no canto da tela!!
ObrigadoVisitante, primeiramente, altere a propriedade Position do form para poDesigned; depois para garantir que seu form seja mostrado sempre no canto inferior-direito obdecendo a visibilidade ou não da barra de tarefas (taskbar - aquela do botão Iniciar) ou qualquer outra barra de tarefas personalizada que possa ser configurada para manter-se visível ou auto-ocultar, utilize o seguinte código no evento OnShow do form:
CODE
procedure TForm1.FormShow(Sender: TObject);
var
R :TRect;
begin
if SystemParametersInfo(SPI_GETWORKAREA, 0, @R, 0) then
SetBounds(R.Right -Width,
R.Bottom -Height,
Width, Height);
end;
Já se você quizer que a janela fique bem no canto da tela, sem levar em conta a visibilidade da barra de tarefas (taskbar):
CODE
procedure TForm1.FormShow(Sender: TObject);
begin
SetBounds(GetSystemMetrics(SM_CXSCREEN) -Width,
GetSystemMetrics(SM_CYSCREEN) -Height,
Width, Height);
end;
Obs: Ambos funcionarão bem quando você utilizar o Show e Hide (parece ser seu caso pelo post). Já se a aplicação for minimizada para a barra de tarefas, ao clicar no icone dela para torná-la visível, e neste meio tempo tiver sido modificada a visibilidade da barra de tarefas este método pode não funcionar corretamente. Tentei, com OnActivate, WM_SYSMESSAGE com SC_RESTORE e nada de passar por um desses eventos e posicionar corretamente a janela para esta situação.
Abraços