aplicação delphi em computador com 2 monitores
em uma aplicação com 2 monitores como eu posso escolher em que monitor uma form vai abrir?
Vitor Rubio
Curtidas 1
Respostas
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.
Verifique também ´Screen.Monitors´ que contem a relação de monitores instalados.
GOSTEI 0
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?
Screen.monitors me dá um vetor com todos os monitores do windows, mas como eu posso usa-los?
GOSTEI 0
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
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.
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
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
12/12/2008
não conheço essa MakeFullyVisible. Vou tentar.
GOSTEI 0
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
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:
assim ela centraliza no monitor 2 somente se tiver 2 monitores.
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