Fórum aplicação delphi em computador com 2 monitores #367102

12/12/2008

0

em uma aplicação com 2 monitores como eu posso escolher em que monitor uma form vai abrir?


Vitor Rubio

Vitor Rubio

Responder

Posts

15/12/2008

Rodc

Use a propriedade ´Monitor´ do formulário. Dê uma verifica no help do Delphi para conhecer como usá-la.
Verifique também ´Screen.Monitors´ que contem a relação de monitores instalados.


Responder

Gostei + 0

15/12/2008

Vitor Rubio

a propriedade monitors do formulario é read-only, não posso atribuir um valor a ela.

Screen.monitors me dá um vetor com todos os monitores do windows, mas como eu posso usa-los?


Responder

Gostei + 0

15/12/2008

Rodc

[quote:cc63d91162=´vitor^_^´]... como eu posso usa-los?[/quote:cc63d91162]Daí eu já não sei... tem que pesquisar na internet e fazer testes....


Responder

Gostei + 0

15/12/2008

Vitor Rubio

eu to dando uma fuçada aki. mas me ocorreu a seguinte ideia:

Se meu monitor da esquerda está na resolução 1024 x 768 é porque ele tem 1024 de width, certo?

se eu colocar o left da minha form como 1124 talvez ela abra na posição 100 do monitor da direita, que é o segundo, pois 1124-1024=100

vou testar isso assim que o monitor novo chegar.


Responder

Gostei + 0

15/12/2008

Rodc

Já tentou a função MakeFullyVisible()? Do contrário, acho que setando o Width ou o BoundRect dele também irá funcionar.


Responder

Gostei + 0

15/12/2008

Vitor Rubio

não conheço essa MakeFullyVisible. Vou tentar.


Responder

Gostei + 0

15/12/2008

Rodc

[quote:8dfe627e83=´vitor^_^´]não conheço essa MakeFullyVisible.[/quote:8dfe627e83]Nem eu. Mas dá uma lida no help do Delphi.


Responder

Gostei + 0

15/12/2008

Vitor Rubio

se o monitor da direita for o segundo, da pra fazer assim, estou tirando as medidas e centralizando a form no monitor 2:

procedure TfrmOle.FormActivate(Sender: TObject);
begin
    if Screen.MonitorCount > 1 then
    begin
      Self.Left := Screen.Monitors[0].Width + (Screen.Monitors[1].Width div 2 -
      (Self.Width div 2));
      Self.Top := (Screen.Monitors[1].Height div 2) - (Self.Height div 2);
    end;
end;




assim ela centraliza no monitor 2 somente se tiver 2 monitores.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar