aplicação delphi em computador com 2 monitores

Delphi

12/12/2008

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


Vitor Rubio

Vitor Rubio

Curtidas 1

Respostas

Rodc

Rodc

12/12/2008

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.


GOSTEI 0
Vitor Rubio

Vitor Rubio

12/12/2008

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?


GOSTEI 0
Rodc

Rodc

12/12/2008

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


GOSTEI 0
Vitor Rubio

Vitor Rubio

12/12/2008

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.


GOSTEI 0
Rodc

Rodc

12/12/2008

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


GOSTEI 0
Vitor Rubio

Vitor Rubio

12/12/2008

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


GOSTEI 0
Rodc

Rodc

12/12/2008

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


GOSTEI 0
Vitor Rubio

Vitor Rubio

12/12/2008

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.


GOSTEI 0
POSTAR