Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

неверная установка позиции окна   Найти похожие ветки 

 
toropoff   (2012-09-12 13:09) [0]

DelphiXE2
два монитора 1920x1080
устанавливаю позицию формы:
left:= 1920;
top:= 0;

окно на втором мониторе, но позиция не в самом верху, а примерно на пикслей 15 ниже.
разворачиваю окно на полный экран через кнопку окна - разворачивается правильно.

есть какие идеи?


 
Дмитрий С ©   (2012-09-12 14:31) [1]

У тебя в настройках мониторов случайно один монитор не стоит выше другого?


 
Дмитрий С ©   (2012-09-12 14:37) [2]

Я так понимаю то что тебе нужно делается примерно так:


var
 I, SelectedMonitor: Integer;
begin
 SelectedMonitor := 0;
 for I := 1{!} to Screen.MonitorCount - 1 do
   if Screen.Monitors[SelectedMonitor].Left < Screen.Monitors[I].Left then
     SelectedMonitor := I;

 with Screen.Monitors[SelectedMonitor] do
   Self.SetBounds(Left, Top, Self.Width, Self.Height);
end;



 
[quote]DelphiXE2   (2012-09-12 15:11) [3]

[quote]DelphiXE2
два монитора 1920x1080
устанавливаю позицию формы:
left:= 1920;
top:= 0;

окно на втором мониторе, но позиция не в самом верху, а примерно на пикслей 15 ниже.
разворачиваю окно на полный экран через кнопку окна - разворачивается правильно.

есть какие идеи?[/quote]


 
toropoff   (2012-09-12 15:23) [4]

Дмитрий С, спасибо!
интересный код, никогда бы не подумал..
вечером буду копать...


 
kilkennycat ©   (2012-09-13 06:47) [5]

да уж, код интересный. особенно интересно будет работать, если другие мониторы добавляются или отключаются после инициализации приложения (есть очень хороший шанс, что Screen.MonitorCount не изменится.)
https://forums.embarcadero.com/thread.jspa?threadID=72201&tstart=60


 
Sha ©   (2012-09-13 20:55) [6]


 Rect: TRect;
 Rect:=Monitor.WorkareaRect;
 with Rect do Self.SetBounds(Left, Top, Right-Left, Bottom-Top);


кроме того, никто не мешает вызывать EnumDisplayMonitors, как это сделано в Forms


 
Sha ©   (2012-09-13 21:12) [7]

вот так проще

BoundsRect:=Monitor.WorkareaRect;



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.06 c
15-1352782910
AV
2012-11-13 09:01
2013.03.22
Стиль письма запроса SQL. Плохо?


15-1341094198
COMMODORE-128
2012-07-01 02:09
2013.03.22
Прием символов по СОМ


4-1259681083
kanibal
2009-12-01 18:24
2013.03.22
Как программно определить какие библиотеки использует приложение?


2-1332844142
TSubject
2012-03-27 14:29
2013.03.22
Delphi ODAC и Русские имена полей


15-1349875481
Jeer
2012-10-10 17:24
2013.03.22
Занятный такой PascalABC.Net