Я хочу, чтобы мое приложение всегда начиналось с левого монитора (в случае, если есть более 1 подключенного).Delphi - открытая форма на левом мониторе
Как это можно сделать? Как определить номер левого монитора?
Спасибо за помощь!
Я хочу, чтобы мое приложение всегда начиналось с левого монитора (в случае, если есть более 1 подключенного).Delphi - открытая форма на левом мониторе
Как это можно сделать? Как определить номер левого монитора?
Спасибо за помощь!
Мы используем этот фрагмент кода:
if Screen.MonitorCount > 1 then
begin
MonList := TList<TMonitor>.Create;
for I := 0 to Screen.MonitorCount - 1 do
MonList.Add(Screen.Monitors[I]);
// sort by screen.monitor.left coordinate
MonList.Sort(TComparer<TMonitor>.Construct(
function(const L, R: TMonitor): Integer
begin
Result := L.Left - R.Left;
end));
_MonitorNum := TMonitor(MonList[0]).MonitorNum;
// free the list
MonList.Destroy;
end;
Тогда _MonitorNum держит число левого большинства монитора.
Не нужно создавать экземпляры классов списка, методы anon, сортировать и т. Д. Просто запускайте мониторы и идентифицировать самый левый самый. 'var MinValue, MinIndex: Integer; ... MinValue: = Screen.Monitors [0] .Left; MinIndex: = 0; для i: = 1 для Screen.MonitorCount - 1, если Screen.Monitors [i] .Left
@ Давид Это правда. – penarthur66
Звучит неплохо, я попробую это завтра. – Chris
Вы должны искать в Интернете перед тем, как задать вопрос - http://docwiki.embarcadero.com/RADStudio/Seattle/en/Handling_the_Screen – RBA
Любая конкретная причина, по которой вы не хотите позволять пользователю самостоятельно выбирать монитор и положение предпочтительнее? –
Я надеюсь, что ваша программа удаления хорошо протестирована –