Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Круглый стол
  
Правила КС
>> Настройки

Фильтр вопросов
>> Новые вопросы
отслеживать по
>> Новые ответы

Избранное

Страница вопросов
Поиск по КС


Специальные проекты:
>> К л ю к в а
>> Г о л о в о л о м к и

Вопрос №

Задать вопрос
Off-topic вопросы

Помощь

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  03:21[Войти] | [Зарегистрироваться]
Ответ на вопрос № 56561

31-10-2007 04:28
Здравствуйте.
Столкнулся с такой проблемой. Как-то показывал сделанную программу на Delphi 7. Разрабатывая её на 17" мониторе. А у начальства 19". т.е. у него программа не на все окно.

Вопрос в том, как развернуть его на все окно, но не так, чтобы форма на все окно, а так чтобы и компоненты тоже разъехались. Grid,Panel и т.д

И если вдруг на 15" запустят,чтобы они норм встала на тот монитор.

Подскажите выход или хоть куда копать то.
Спасибо.

[+] Добавить в избранные вопросы

Отслеживать ответы на этот вопрос по RSS

Ответы:


Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице.
Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.

01-11-2007 23:34
Если физические размеры видимой облести экрана соотносятся как 3:4, то и логичесике размеры должны соотноситься как 3:4. Если же это не так, то либо AspectRatio не равен единице, либо ширина зерна не равна его высоте. Либо все же физические размеры не 3:4.

Никогда особенно не задавался вопросом о соотношении сторон, а тут, понимаешь, назвался груздем... Пришлось разбираться...

Почему для всех LCD-мониторов нормальным разрешением является 1280:1024, то есть размеры соотносятся как 4:5 для меня загадка. Прям хоть бери линейку и замеряй физичесике размеры.

Товарищь Гугль говорит, что 5:4 является тоже вполне "стандартным" соотношением. Также называются 16:10, 16:9 и еще несколько. Так что можно не беспокоиться - пиксел остался квадратным... Не буду приводить ссылок, но я задавал поиск по строке "мониторы список стандартные соотношения сторон 4:3 5:4 16:9". Думаю, результаты выполнения запроса не будут сильно отличаться... Все, кто интересуется мониторами, думаю, смогут найти что-то интересное для себя...

01-11-2007 19:16 | Комментарий к предыдущим ответам
Прям хоть бери линейку и замеряй физичесике размеры.
Можно не мучаться: за редчайшим исключением пиксели квадратные, так что физическое соотношение сторон совпадает с логическим. Если нужно соотношение 4:3 и размер больше чем 1024х768, то надо брать что-то типа 1400x1050. Вот по этой картинке http://en.wikipedia.org/wiki/Image:Vector_Video_Standards2.png видно что 5:4 это скорее исключение чем правило. Если не ошибаюсь причина в видео памяти: такое число пикселей влезало в видеокарты тех времён, а чуть большее (например 1400х1050) уже нет.
Ноуты жаль стали поголовно 16:9(10) делать... фильмы конечно неплохо смотрятся, но вот всё остальное...

01-11-2007 18:04 | Комментарий к предыдущим ответам
to Бел Амор:
Респект за дружескую птктровку. Но один момент я бы хотел уточнить уже без шуток.

Если физические размеры видимой облести экрана соотносятся как 3:4, то и логичесике размеры должны соотноситься как 3:4. Если же это не так, то либо AspectRatio не равен единице, либо ширина зерна не равна его высоте. Либо все же физические размеры не 3:4.

Почему для всех LCD-мониторов нормальным разрешением является 1280:1024, то есть размеры соотносятся как 4:5 для меня загадка. Прям хоть бери линейку и замеряй физичесике размеры.

То, что в килобайте не тысяча байт, здесь явео непричем ;-)

01-11-2007 16:35 | Комментарий к предыдущим ответам
>>> 10 лет работаю на 17-дюймовом ViewSonic в разрешении 1024х768 и дико доволен.

Могу только порадоваться вашим финансовым возможностям в те времена. Надеюсь, они изменялись только в лучшую сторону...

>>> Так что это все дело вкуса.

Скорее согласен, нежели наоборот...

*пытается разделить 1024 на 3, но почему-то ничего не получается. Плюнул, запустил калькулятор и подсчитал, что 1024/1280 = 0.8, а вовсе не 3/4. "Это ж-ж-ж-ж неспроста"

Сэр... Но ведь и килобайт - это не тысяча байт... :)

>>> >>> Естественно, речь идет об LCD - мониторах...
>>> Успел, редиска :-D

Да я знаю, какие здесь есть зануды... :P

01-11-2007 14:38 | Комментарий к предыдущим ответам
>>> Естественно, речь идет об LCD - мониторах...
Успел, редиска :-D

01-11-2007 14:37 | Комментарий к предыдущим ответам
to Бел Амор:
10 лет работаю на 17-дюймовом ViewSonic в разрешении 1024х768 и дико доволен. Так что это все дело вкуса.

>>> Если говорить о мониторах с классическим соотношением сторон (3:4), то родное разрешение мониторов 17" и 19" - одинаковое: 1280x1024.
*пытается разделить 1024 на 3, но почему-то ничего не получается. Плюнул, запустил калькулятор и подсчитал, что 1024/1280 = 0.8, а вовсе не 3/4. "Это ж-ж-ж-ж неспроста"

01-11-2007 14:35 | Комментарий к предыдущим ответам
>>> Если говорить о мониторах с классическим соотношением сторон (3:4), то родное разрешение мониторов 17" и 19" - одинаковое: 1280x1024.

Естественно, речь идет об LCD - мониторах... Если мониторы - с ЭЛТ, то первую половину моего предыдущего сообщения можно пропустить...

01-11-2007 14:29
Жаль, что никто не обратил внимания на один факт. Если говорить о мониторах с классическим соотношением сторон (3:4), то родное разрешение мониторов 17" и 19" - одинаковое: 1280x1024. И если на экране вашего шефа окна занимают меньше места, чем у вас, то это значит, что вы работаете не на родном разрешении монитора, а на более низком, быстрее всего 1024x768. А вот это вызывает искреннее сочувствие, ибо происходит размытие изображения, что очень неприятно для глаз. Лично я предпочел бы работать с этим разрешением на 15", т.к. это родное разрешение для него. Вообще считаю 17" мониторы неким недоразумением, т.к. размер пикселя у 15" и 19" примерно одинаков и вполне комфортен для работы на родном разрешении, а у 17" - заметно меньше, что вынуждает работать либо на неродном разрешении с размытием, либо на родном, но с мелкими буквами.
Теперь что касается "раздвигания"... Раздвигать имеет смысл только те окна, на которых имеются элементы вроде грида, мемо и т.п. Зачем раздвигать диалоговые окна, в которых только эдиты и кнопки?
Чаще всего в окне, которое предполагается раздвигать, имеется один, "основной" элемент вроде грида и несколько кнопок. Допустим, имеется форма с гридом, тремя кнопками редактирования справа и кнопкой OK в правом нижнем углу. Тогда имеет смысл назначить Anchors грида на все четыре стороны, кнопок редактирования - верх и право, кнопки OK - низ и право. И при открытии развернуть форму на весь экран. При этих настройках грид будет раздвигаться, сохраняя одинаковое расстояние до границ формы по всем сторонам, кнопки редактирования будут сдвигаться , сохраняя свое положение относительно верхнего правого угла, а кнопка OK - относительно нижнего правого. Чтобы форму нельзя было уменьшить слишким сильно, когда элементы начнут наезжать друг на друга, можно проставить для формы Constraints на уменьшение по текущим размерам формы (которые заданы при разработке) и только потом разворачивать.

31-10-2007 15:44 | Комментарий к предыдущим ответам
>>> Можно ещё с методом ScaleBy поиграться
Я бы не стал, если честно ;-)

31-10-2007 12:24
Можно ещё с методом ScaleBy поиграться, но результаты вас могут немного удивить.

31-10-2007 09:47
Зато если разобраться саомстоятельно с хелпом, то надольше остается ;-)
Согласен. Так и есть.

Только каждому свое :) Кто-то любит сидеть и искать. А кто-то может спросить и узнать помимо своего вопроса, ряд возможных проблем.
Это сообщение тоже носит общий характер :))

Ещё раз спасибо)

31-10-2007 09:32 | Комментарий к предыдущим ответам
Во избежание неверноего понимания:
Мое последнее сообщение носит общий характер, а не относится в полной мере к обсуждаемому вопросу.

31-10-2007 09:30
to Космач:
Давайте все же различать такие моменты, как:
1. Абстрактный спор о такой характерситиске ресурса, как "посещаемость".
2. Сравнительное обсуждение поиска в хелпе и задавания вопросов на КС.

Иначе получается белиберда. Мой предыдущий ответ относился исключительно к первому пункту. По моим наблюдениям, рейтинги по посещаемости, цитируемости и т.п. приводят к тому, что владельцы ресурсво больше внимания уделяют раскрутке, а не наполнению. Соответственно, "самый посещаемый ресурс" -- это не то же самое, что "самый лучший ресурс".

По пункту второму, если Вам интересно.
>>> <...> быстрее доходит нежели читать help
Зато если разобраться саомстоятельно с хелпом, то надольше остается ;-)

>>> Есть кайф ответь, помоги, чем можешь
Дык я так и делаю. Но вот только довольно зачастую ответ состоит в копировании текста из хелпа (или рекомендации прочитать хелп по определнной функции/методу/свойству если копировать лень). Просто потому, что лучше, чем написано в хелпе, объяснить не получится. Вот и думаешь, а зачем автор задавал вопрос, если он мог получить нужную информацию намного быстрее, просто прочитав хелп?

31-10-2007 07:45 | Сообщение от автора вопроса
Я ведь не заставляю тут никого отвечать.
Есть кайф ответь, помоги, чем можешь - даже если для тебя это пустяковый вопрос или вообще не вопрос. Не все такие профи, как вы уважаемый Geo.
А когда мне ответят тут, да ещё и с примером, быстрее доходит нежели читать help. Я не говорю, что я им вообще не пользуюсь, но все же мне проще найти ответ тут.

Когда спрашиваешь - то обучаешься.

А разве посещаемость -- это важный критерий? Если да, то можно резко повысить посещаемость, размещая на сайте материалы эротического характера. Но зачем такая посещаемость нужна?

Не надо переворачивать с ног на голову. Я имел ввиду посещаемость по направленности сайта. Т.е. из сайтов такой тематики DK один из известных.

31-10-2007 06:41
>>> если бы все читали справку, то у сайта не было бы такой посещаемости))))
А разве посещаемость -- это важный критерий? Если да, то можно резко повысить посещаемость, размещая на сайте материалы эротического характера. Но зачем такая посещаемость нужна?

Есть много интересных вопросов программирования, ответов на которые нет в хелпе. Вот их и интересно обсуждать.

31-10-2007 06:31 | Сообщение от автора вопроса
Ну справку то можно почитать.
Только мне проще спросить, если бы все читали справку, то у сайта не было бы такой посещаемости))))

Буду разбираться "методом тыка" :)
Всем спасибо за разъяснение.

31-10-2007 06:05
И еще: проблема не в физическом размере экрана, а в его разрешении: если установить одинаковое разрешение у 15" и 19" мониторов, окно займет одинаковую часть экрана. Это, конечно не выход - просто для более точной формулировки вопроса.
Для проверки решений не обязательно бегать от компьютера к компьютеру, можно просто менять разрешение монитора в определенных пределах и смотреть на результат.

31-10-2007 05:29
Только не могу понять алгоритм его LEFT TOP RIGHT BOTTOM
Как насчет того, чтобы справку почитать?
Выставленный якорь означает, что при изменении размеров формы контроль будет сохранять расстояние по указанному направлению (left, top, right, bottom) до края своего родителя. Сделайте тестовое приложение и разбирайтесь на нем сколько угодно ;-)

31-10-2007 05:28
to Космач:

У Вас неверное понимание того, как нужно использовать Align. Если Вы хотите воспользоваться этим механизмом, то свойство Align должно быть выставлено у ВСЕХ контолов, принадлежащих одному родителю (parent). Иначе это не имеет смысла.

Пример. Бросаете на форму 4 панели. Первой задаете alTop. Это будет область панели инструментов. Второй -- alBottom. Это будет область статуса. Третьей -- alLeft. Область параметров. Четвертой -- alClient. Это рабочая область. При любом изменении размеров формы панели переразмещаются автоматически, чтобы заполнить всю клиентскую область.

Теперь на верхнюю панель (а не на форму) кидаем несколько панелей с заданным alLeft. На этих панелях размещаем кнопки. Получаем тулбары в нужных количествах. На левую панель кидаем группы параметров с alTop, чтобы они выравнивались по верхнему краю. Ну, и так далее. Смысл именно в том, что происходит постоянное разбиение родителя на области, а каждая область, в совю очередь, снова разбивается на области. Примерно так же, как используются таблицы в HTML (вложенные друг в друга) для создания сложной структуры HTML-страницы.

31-10-2007 05:26
Проблема не в размерах мониторов, а в настройке размеров форм. Т.е. при разработке надо делать BorderStyle=bsSizeable и добиваться того, чтобы форма при любом растягивании/сжатии выглядела хорошо.
Если не использовать якоря, то проще всего замостить всю форму панелями и контроли выкладывать уже на них. Тогда у каждой панели должно быть Align не равное alNone (и alCustom).

31-10-2007 05:24 | Сообщение от автора вопроса
Евгений Круглов

Да используя Anchors что-то похожее уже получается. Только не могу понять алгоритм его LEFT TOP RIGHT BOTTOM. Перевел)) проде как Anchors - якоря. А как это понять?

И ещё как использовать сплиттер, чтобы он двигался. а то кинул его а он не может двигаться. Хотя курсор меняется.Т.е. как с ним работать.
Огромное спасибо, что помогаете.

31-10-2007 05:08 | Сообщение от автора вопроса
Вовсе не обязательно, чтобы форма занимала весь экран.
Полностью с вами согласен. Только, как говорится начальству виднее. Мне сказали следующие: "Зачем мы тогда тратим деньги на мониторы большие, давайте купим все 15" и будем работать"

Обычно ставлю: BorderStyle=bsSingle
Для контролов Align не использую. Т.е. получается, я должен кодом указывать, куда компонент ставить, если окно работает на 15" и 17"??

И ещё вот у Panel есть сво-во ALIGN (alBottom, alClient,alCustom,alLeft,alNone,alRight,alTop).
Так вот. Все понятно, влево, вправо. Вот клиент, вроде работает норм. Расстягивается, а если надо две PANEL, то один накладывается на второй. Возможно это обойти?

Я так понял, это гемор(((
Может проще попробывать отмазаться)))
Спасибо.

31-10-2007 05:06 | Комментарий к предыдущим ответам
Вообще-то (в качестве дополнения), этой же цели у любого контрола служит свойство Anchors. Логично использовать различные сплиттеры между смежными панелями...

31-10-2007 04:44
А Вы вообще как форму проектируете? Допускаете изменение ее размеров? Используете для контролов, например, свойство Align?

Если да, то выводите форму Maximaize. Если нет, то это нужно сделать.

Если у Вас не получается использовать Align (например, есть толкьо кнопки которым в зависимости от размеров области нужно менять положение и/или размеры), то пересчитывайте все вручную, ориентируясь на ClientWidth и ClientHeight формы.

Если же у вас форма, в которой размеры тщательно подогнаны и менять их не хочется, то делайте размеры формы неизменными. Вовсе не обязательно, чтобы форма занимала весь экран.

Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Кто съел Красную шапочку?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
Тип сообщения:
Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве

    Страница избранных вопросов Круглого стола.
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования