![]() |
|
|
![]()
|
|
| Бегемот |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 26.1.2005 Где: На границе Европы и Азии Репутация: 1 Всего: 3 |
Здравствуйте!
Такая вот у меня проблемма: Приложение работает в полноэкранном режиме. Мне необходимо, чтобы визуальные размеры компонентов оставались неизменными при любом разрешении экрана. Спасибо. Это сообщение отредактировал(а) rewerew - 24.3.2005, 22:28 |
|||
|
||||
| JAnty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 6.12.2004 Где: Москва Репутация: 1 Всего: 2 |
Никак (кажись).
Или вычисляй разрешение(разширение) зкрана и меняй размеры компонентов по процйнтному соотнашению размеров по высоте и ширине(замучеешся), а лучше запускай прогу в определённом режиме экрана и не меняй его во время выполнения проги, так проще Это сообщение отредактировал(а) JAnty - 24.3.2005, 21:20 -------------------- |
|||
|
||||
| Бегемот |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 26.1.2005 Где: На границе Европы и Азии Репутация: 1 Всего: 3 |
После двух километров кода таким способом
...именно эта мысль меня ударила первой...так только программно не могу реальзовать При запуске приложения, для начала, получаем текущее разрешение экрана
...далее проверяем соответствует ли разрешение экрана пользователя нашему разрешению, т.е тому под которое писали прогу.
...ну и при выходе из приложения востанавливаем чего мы там наменяли ...вероятно так же как и меняли |
||||||||
|
|||||||||
| JAnty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 6.12.2004 Где: Москва Репутация: 1 Всего: 2 |
Изменение параметров экрана:
// Для изменения параметров экрана используйте следующий // код: DEVMODE DM; DM.dmSize = sizeof(DEVMODE); DM.dmBitsPerPel = 16; // глубина цвета, бит на пиксель DM.dmPelsWidth = 1024; // разрешение по горизонтали DM.dmPelsHeight = 768; // разрешение по вертикали DM.dmFields = DM_BITSPERPEL + DM_PELSWIDTH + DM_PELSHEIGHT + DM_DISPLAYFREQUENCY; DM.dmDisplayFrequency = 75; // частота обновления экрана ChangeDisplaySettings(&DM, 0); // ЗАМЕЧАНИЕ: при изменении параметров смотрите чтобы монитор поддерживал это режим Как узнать частоту обновления экрана: // Для получения частоты обновления экрана напишите следующий код: HDC hDCScreen = GetDC(NULL); int Refresh = GetDeviceCaps(hDCScreen, VREFRESH); ReleaseDC(NULL, hDCScreen); // в Refresh содержится частота обновления экрана по горизонтали Как узнать разрешение экрана (VCL вариант): // Разрешение экрана можно узнать, прочитав значения // свойств Screen->Width и Screen->Height: int HorzRes = Screen->Width; int VertRes = Screen->Height; Как узнать разрешение экрана (WinAPI вариант): // Для получения разрешения экрана напишите следующий код: HDC hDCScreen = GetDC(NULL); int Horres = GetDeviceCaps(hDCScreen, HORZRES); int Vertres = GetDeviceCaps(hDCScreen, VERTRES); ReleaseDC(NULL, hDCScreen); // в Horres содержится разрешение экрана по горизонтали, // в Vertres содержится разрешение экрана по вертикали. Как узнать разрешение экрана: // Для получения разрешения экрана напишите следующий код: int screenW=GetSystemMetrics(SM_CXSCREEN);//Получить ширину экрана int screenH=GetSystemMetrics(SM_CYSCREEN);//Получить высоту экрана // в screenW содержится разрешение экрана по горизонтали, // в screenH содержится разрешение экрана по вертикали. -------------------- |
|||
|
||||
| Бегемот |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 26.1.2005 Где: На границе Европы и Азии Репутация: 1 Всего: 3 |
Я вот никак не могу найти на форуме инфу по поводу того КТО МОЖЕТ? и КАК? повысить репутацию собеседнику. Кто-нибудь подскажите.
Ну а если я, нисколь не отметившийся гражданин, могу это сделать, то прошу руководство наградить JAnty плюсом. JAnty, СПАСИБО, за подробный ответ на вопрос! Здорово помог! |
|||
|
||||
| JAnty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 6.12.2004 Где: Москва Репутация: 1 Всего: 2 |
Пожалусто
-------------------- |
|||
|
||||
| Perun |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.8.2007 Где: Краснодар Репутация: нет Всего: нет |
ДОбрый день, не подскажите, а размеры компоннтов при этом изменятся пропорционально?
|
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 97 |
некрофил....
|
|||
|
||||
| Perun |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.8.2007 Где: Краснодар Репутация: нет Всего: нет |
Вы на что намекаете?
С этого места поподробнее...и по уважительней пожайлуста
Приложение написано для разрешения 1280x1024 На форме используется AdvColumnGrid(без scrollbar'ов) У меня проблема заключается в том, что при уменьшении разрешения сам Grid не уменьшается, некоторые записи не видно и перемещаться по нему приходится при помощи стрелок. Необходимо, чтобы просто Grid целиком отображался на форме, без искажений. |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
эт он шутит про поднятие тем 2005 года) благо человек поискал прежде чем задать вопрос, что есть гуд.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Perun |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.8.2007 Где: Краснодар Репутация: нет Всего: нет |
Понятно...шутит.
А может Grid к размеру формы. Т.е. изменить размеры шрифта, формы, всех компонентов... А короче, через масштабирование путь есть? |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 97 |
Perun,
Если обидел - извини... В общем, чтобы твой грид менялся подстать форме, то в его свойствах Anchors поставь все значение в true. Тогда грид будет меняться в размерах настолько же, насколько меняется форма. Если ты хочеш при этом менять размеры ячеек (я так понял это какая то таблица) и размеры шрифта, то в событии OnResize формы сделай проверку размеров формы. Ну скажем например - если размеры формы лежат в пределах 600-800 пикселей, то размер шрифта мы установим равным 10ппт, а размеры ячейки 25х25. А если размеры лежат в пределах 800-1024 пикселей, то размер шрифта - 12ппт, а ячейки - 30х30. И т.д. Я надеюсь правильно понял проблему...... |
|||
|
||||
| Perun |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 15.8.2007 Где: Краснодар Репутация: нет Всего: нет |
Ничего всё нормально!
Благодарю за помощь - разобрался, получилось. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |