Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2011, 13:28   #1
DenProx
Форумчанин
 
Аватар для DenProx
 
Регистрация: 23.11.2009
Сообщений: 191
По умолчанию Команда "Определить мониторы"

Доброго времени суток. Не подскажите, как можно выполнить команду "Определить" когда нужно узнать номер монитора ?
Изображения
Тип файла: jpg qwe.JPG (42.5 Кб, 160 просмотров)
Чаще всего, у большенства людей, поиск Истины заканчивается набором слова в Гугле
DenProx вне форума Ответить с цитированием
Старый 22.04.2011, 14:51   #2
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Смысла в этом не вижу никакого... Как сделать это не знаю, но есть идея насчет искусственного воплощения этой задумки.
Прикрепляю.
Вложения
Тип файла: rar 1.rar (166.3 Кб, 22 просмотров)
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 22.04.2011, 14:55   #3
DenProx
Форумчанин
 
Аватар для DenProx
 
Регистрация: 23.11.2009
Сообщений: 191
По умолчанию

Цитата:
Смысла в этом не вижу никакого...
Зато я вижу

За пример Спасибо!! ))
Чаще всего, у большенства людей, поиск Истины заканчивается набором слова в Гугле
DenProx вне форума Ответить с цитированием
Старый 22.04.2011, 15:00   #4
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Ну идея такая:
У тебя есть
Код:
Screen.Width=screen.monitors[0].width+screen.monitors[1].width+screen.monitors[2].width+...
Т.е. у первого монитора длина в промежутке: 0->screen.monitors[0].width;
у второго screen.monitors[0].width->screen.monitors[1].width;
и так далее

Центры у них я думаю ты сможешь найти сам)
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 22.04.2011 в 15:02.
MyLastHit вне форума Ответить с цитированием
Старый 22.04.2011, 15:04   #5
DenProx
Форумчанин
 
Аватар для DenProx
 
Регистрация: 23.11.2009
Сообщений: 191
По умолчанию

MyLastHit

Суть понятна) но как я понял Номера, это заранее созданные формы, а если заранее не известно сколько мониторов будет?
Чаще всего, у большенства людей, поиск Истины заканчивается набором слова в Гугле
DenProx вне форума Ответить с цитированием
Старый 22.04.2011, 15:13   #6
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Известно!
i:=screen.MonitorCount - поместить в переменную i число мониторов.

Формы создавать динамически, либо можно взять, одну растянуть на все и раскидать на ней цифры. Все просто. Кстати так даже еще лучше
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 22.04.2011 в 15:18.
MyLastHit вне форума Ответить с цитированием
Старый 22.04.2011, 17:19   #7
DenProx
Форумчанин
 
Аватар для DenProx
 
Регистрация: 23.11.2009
Сообщений: 191
По умолчанию

Цитата:
Формы создавать динамически
Это мне больше нравится) Легче отцентровать будет.
Чаще всего, у большенства людей, поиск Истины заканчивается набором слова в Гугле
DenProx вне форума Ответить с цитированием
Старый 22.04.2011, 17:36   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Первичный монитор опр. вот этим свойством:
Цитата:
Сообщение от Delphi HELP
Indicates whether this is the primary monitor.

Delphi syntax:

property Primary: Boolean;

C++ syntax:

__property bool Primary = {read=GetPrimary, nodefault};

Description

Read Primary to determine whether a monitor is the primary monitor in a multi-monitor application. When Primary is true, the monitor is the primary monitor. The coordinates of other monitors are given in terms of the primary monitor.
Код:
var
 i:smallInt;
begin
For i:=0 to Screen.MonitorCount {-1?} do
begin
If Screen.Monitors[i].Primary then
{тралала}
end;
end;
ЗюЫю Суровые Челябинские программисты...... :D //Не воспринимать в серьёз, я просто шучу

Последний раз редактировалось Человек_Борща; 22.04.2011 в 17:39.
Человек_Борща вне форума Ответить с цитированием
Старый 25.04.2011, 10:28   #9
DenProx
Форумчанин
 
Аватар для DenProx
 
Регистрация: 23.11.2009
Сообщений: 191
По умолчанию

Кстати, вот с определением номера монитора это вы в точку)

я сначала поторопился, написал так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
    FormCount: integer;
    NextMon : Integer;
begin
FormCount := StrToInt(Edit1.Text);
for I := 0 to FormCount - 1 do
begin
Form2:= TForm2.Create(Application);
Form2.Label1.Caption := IntToStr(i+1);
Form2.Show;
if i>0 then
  begin
    Form2.Left:= screen.Monitors[i-1].Width+trunc(screen.Monitors[i].Width/2);
  end;
Form2.Timer1.Enabled := True;
end;
но при этом выявил Два недостатка, 1-й работает почему то только для двух мониторов, 2-й то что выводит просто по порядку на каждый монитор цыфру из цыкла i+1 ... даже если порядок мониторов будет изменен всеравно будет начинать от первого... по этому начал копать в другую сторону...

идея такая, узнать сколько мониторов, и на каждый монитор выводить динамически созданную форму с номером этого монитора, тогда думаю все норм должно быть.
Буду пока что пробывать, если есть предложения, буду рад
Чаще всего, у большенства людей, поиск Истины заканчивается набором слова в Гугле
DenProx вне форума Ответить с цитированием
Старый 25.04.2011, 12:40   #10
DenProx
Форумчанин
 
Аватар для DenProx
 
Регистрация: 23.11.2009
Сообщений: 191
По умолчанию

вот по предыдущему примеру, набрасал такое:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
 i:smallInt;
begin
For i:=0 to Screen.MonitorCount -1 do
  begin
  If Screen.Monitors[i].Primary then
    begin
      Form2:= TForm2.Create(Application);
      Form2.Label1.Caption := IntToStr(i+1);
      Form2.Show;
    Form2.Timer1.Enabled := True;
    end;
  end;
end;
выводит на мониторе его реальный номер... не понятно, как на оставшиеся мониторы отослать формы, с нужными номерами...
Чаще всего, у большенства людей, поиск Истины заканчивается набором слова в Гугле
DenProx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
Подскажите где в Word-2007 находится команда "Изменить связи"? VistaSV30 Microsoft Office Word 7 13.05.2010 11:05
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04