|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Расположени формы на экране (Delphi) |
|
Delphi - Расположени формы на экране (Delphi)
|
Ветеран Сообщения: 637 |
Профиль | Сайт | Отправить PM | Цитировать
Привет! Я хочу чтобы моя форма всегда висела над трее и прилипала к нему. Как сделать так чтобы при разных разрешениях экрана форма оставалась на том же месте? (Разработчики Delphi предусмотрели только по дефолту и по центру, вот сволочи ). В инете ничего подобного не нашел.
|
|
Отправлено: 19:13, 18-12-2004 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать То есть как? Отлавливаешь WM_DISPLAYCHANGE, в зависимости от разрешения меняешь положение...
Простой пример: ... type TForm1 = ... procedure DisplayResChange(var Message : TMessage); message WM_DISPLAYCHANGE; ... implementation procedure TForm1.FormCreate(Sender: TObject); begin Left := Screen.Width - Width - 1; Top := 0; end; procedure TForm1.DisplayResChange(var Message : TMessage); var NewWidth, NewHeight : Word; begin NewWidth := Message.LParamLo; NewHeight := Message.LParamHi; Left := NewWidth - Width - 1; Top := 0; inherited; end; |
Отправлено: 00:12, 19-12-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 637
|
Профиль | Сайт | Отправить PM | Цитировать Netscaper
Хм... спасибо конечно, но хотелось бы другой вариант... Мне бы лучше подошел вариант когда прога определяет расширение, и в зависимости от расширения создает форму... А еще лучше чтобы сама автоматически висела в правом нижнем углу |
Отправлено: 16:21, 19-12-2004 | #3 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать Не очень понимаю, что значит
Цитата:
При изменении разрешения экрана система посылает всем окнам сообщение с новыми размерами экрана. Если для каких-то диапазонов надо использовать разные формы, можно сделать основное окно невидимым (MainForm.Visible := False), причем не забыть указать, что Application.ShowMainForm := False в проекте. Невидимое окно все равно будет получать сообщения WM_DISPLAYCHANGE и в обработчике создавать нужную форму LowResForm := TLowResForm.Create(nil). |
|
Отправлено: 18:47, 19-12-2004 | #4 |
Старожил Сообщения: 300
|
Профиль | Сайт | Отправить PM | Цитировать fossil
В отличие от тебя, Netscaper все делает грамотно (правильно) и обоснованно. Не поленись объяснить, что значит "сама автоматически висела"... Если ты хочешь такое свойство окну приписать, то тебе его все равно придется реализовать через код, предложенный Netscaper |
|
Отправлено: 18:55, 19-12-2004 | #5 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать Savant
Спасибо за поддержку. Действительно, надо объяснять свои потребности. |
Отправлено: 19:10, 19-12-2004 | #6 |
Ветеран Сообщения: 637
|
Профиль | Сайт | Отправить PM | Цитировать Netscaper
Ясно. Спасибо. Но я бы хотел чтобы моя одна форма при активации определяла разрешение экрана, задавала параметры Top и Left и после этого появлялась уже в нужном месте. |
Последний раз редактировалось fossil, 19-12-2004 в 21:08. Отправлено: 21:01, 19-12-2004 | #7 |
Пользователь Сообщения: 84
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:39, 19-12-2004 | #8 |
Ветеран Сообщения: 637
|
Профиль | Сайт | Отправить PM | Цитировать Netscaper
То что надо. Спасибо! |
Отправлено: 10:17, 20-12-2004 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Формы | Scorpion666 | Вебмастеру | 9 | 13-04-2006 10:33 | |
Delphi - Delphi | События при создании формы | riddler | Программирование и базы данных | 1 | 05-03-2005 13:16 | |
Элементы формы | Guest | Вебмастеру | 7 | 15-10-2004 11:28 | |
Скины формы | unreliable | Программирование и базы данных | 3 | 18-04-2004 08:41 | |
HTML, Формы... | Dafi | Вебмастеру | 26 | 23-01-2004 08:06 |
|