Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > C++ Builder 2009


Автор: vikaz 7.12.2009, 10:33
Всем привет! 
Сегодня заметил сл. вещь! Создаем приложение, на форму кладем Panel, Устанавливаем для свойства Autosize формы TRUE. запускаем приложение:
http://pixs.ru/?r=372594

после чего сворачиваем приложение в трей и разворачиваем и получаем сл. картину:
http://pixs.ru/?r=372596

Сказать, что я в шоке - ничего не сказать. Кто сталкивался с этим?

Автор: vikaz 7.12.2009, 11:04
нашел я как это избежать, забанил строчку: 
Код

Application->MainFormOnTaskBar = true;

Уже не в первый раз приходится его комментировать. Что это за свойство и за что оно отвечает?

Автор: artsb 7.12.2009, 11:43
vikaz, владельцы dial-up тебя убьют ;)

Цитата(vikaz @  7.12.2009,  11:04 Найти цитируемый пост)
Что это за свойство и за что оно отвечает? 

За видимость кнопки приложения на панели задач ИМХО.

Автор: vikaz 7.12.2009, 11:57
Цитата(artsb @  7.12.2009,  13:43 Найти цитируемый пост)
ikaz, владельцы dial-up тебя убьют ;)

Цитата(vikaz @  7.12.2009,  11:04 Найти цитируемый пост)
Что это за свойство и за что оно отвечает? 

За видимость кнопки приложения на панели задач ИМХО. 


Камрад, разъясни почему убьют?

А ее и так видно, хоть и закоментировал......  smile 

Автор: Usper 7.12.2009, 12:00
Ну я с этим столкнулся, после вышеописанных действий, и что?  smile 
Если не получается подогнать форму под размер панели, можно панель подогнать под размер формы  smile , установив свойство Align панели равным alClient.

Автор: vikaz 7.12.2009, 12:18
Цитата(Usper @  7.12.2009,  14:00 Найти цитируемый пост)
Ну я с этим столкнулся, после вышеописанных действий, и что?  smile 
Если не получается подогнать форму под размер панели, можно панель подогнать под размер формы  smile , установив свойство Align панели равным alClient. 


Камрад, это не наш выход! на моем мониторе с разрешением 1920х1080, эта форма не полностью помещается, что говорить о простых пользователях, с разрешение мониторов 1024х768. ИМХО так не покатит, все должно быть так как было задумано......

Автор: artsb 7.12.2009, 12:20
Цитата(vikaz @  7.12.2009,  11:57 Найти цитируемый пост)
Камрад, разъясни почему убьют?

Картинки гигантские smile

Цитата(vikaz @  7.12.2009,  11:57 Найти цитируемый пост)
А ее и так видно, хоть и закоментировал...... 

Цитата

Это свойство отвечает за переключение между новым и старым поведением программы.
Старое поведение: на панели задач отображается кнопка от невидимого окна Application, а кнопки от главной формы нет (хотя визуально создаётся другой эффект).
Новое поведение: на панели задач отображается кнопка непосредственно главного окна.

Насколько я понимаю, новое поведение появилось для совместимости с Vista, где в панели задач показывается мини-скриншот окна. Если бы там было окно Application, то показывался бы именно его скриншот, а не главного окна.

Источник: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=68491

Автор: vikaz 7.12.2009, 12:26
Ясно! Спс! Надеюсь модемом уже никто не пользуется! smile Это я так был шокирован, что зазвездил такие скриншоты! Спасибо за разъяснение.... 

Автор: artsb 7.12.2009, 12:29
Цитата(vikaz @  7.12.2009,  12:26 Найти цитируемый пост)
Надеюсь модемом уже никто не пользуется!

Найдутся такие  smile 

Автор: vikaz 7.12.2009, 12:34
Все будет нормально! Они весят копейки!  smile 

Автор: Usper 7.12.2009, 13:47
Цитата(vikaz @ 7.12.2009,  13:18)
Камрад, это не наш выход! на моем мониторе с разрешением 1920х1080, эта форма не полностью помещается, что говорить о простых пользователях, с разрешение мониторов 1024х768. ИМХО так не покатит, все должно быть так как было задумано......

Хм... А как было задумано то? Если установить свойство панели Align равным alClient, то панель подгонится под размеры формы. Если форма была размером 800х600, то панель подгонится под этот размер. Если форма была размером 2000х5000, то это уже вина программиста.  smile Вообще зачем требуется выставлять свойство формы AutoSize=true конкретно в вашей задаче?
З.Ы. с разрешением 1024х768 сейчас сидят совсем уж простые пользователи  smile 

Автор: artsb 7.12.2009, 13:54
Цитата(Usper @  7.12.2009,  13:47 Найти цитируемый пост)
З.Ы. с разрешением 1024х768 сейчас сидят совсем уж простые пользователи

Да уж. Сегодня у геймеров минимум 19 дюймов диагональ. Но вообще, нужно понять для какого круга людей прога. Если она для людей в "офисе", то там зачастую диагональ не превышает 15 дюймов.

Автор: vikaz 7.12.2009, 13:54
Цитата(Usper @  7.12.2009,  15:47 Найти цитируемый пост)
Хм... А как было задумано то? Если установить свойство панели Align равным alClient, то панель подгонится под размеры формы. Если форма была размером 800х600, то панель подгонится под этот размер. Если форма была размером 2000х5000, то это уже вина программиста.  smile Вообще зачем требуется выставлять свойство формы AutoSize=true конкретно в вашей задаче?
З.Ы. с разрешением 1024х768 сейчас сидят совсем уж простые пользователи  smile  


Я подогнал форму под размер окна для того, чтобы при попытке растянуть форму на весь экран, оно не растягивалось, а пропорции сохранялись такими, какими я задал их с самого начала! Да, я знаю что есть такое свойство Align и как им пользоваться я тоже в курсе, но на данный момент нужно именно так! smile Вот научу DBGridEh, что бы он еще и поля растягивал по размер окна с учетом пропорций, которые я задам, вот тогда и уйду от фиксированного размера формы. smile

Автор: artsb 7.12.2009, 13:56
Цитата(vikaz @  7.12.2009,  13:54 Найти цитируемый пост)
а пропорция сохранялась такой, какой я задал её с самого начала!

А Constraints не подходит? Там есть MaxWidth и MaxHeight.

Автор: vikaz 7.12.2009, 13:59
Цитата(artsb @  7.12.2009,  15:56 Найти цитируемый пост)
А Constraint не подходит? 

Конечно подходит, но ИМХО тоже самое, только через AutoSize быстрее, значения не нужно забивать. smile

Добавлено через 3 минуты и 38 секунд
ЗЫ. Зато прикол с самостоятельным растягивание пропал при  Application->MainFormOnTaskBar = true;
 smile 
Век живи, век учись! smile

Автор: Usper 7.12.2009, 14:12
Цитата(vikaz @  7.12.2009,  14:54 Найти цитируемый пост)
Я подогнал форму под размер окна для того, чтобы при попытке растянуть форму на весь экран, оно не растягивалось

Каким образом? Через размер панели на форме smile ? У формы тоже есть свойство Align.

Автор: artsb 7.12.2009, 14:30
vikaz, но Constraints ИМХО надёжнее и гемора потом меньше будет...

Автор: vikaz 7.12.2009, 14:36
Цитата(Usper @  7.12.2009,  16:12 Найти цитируемый пост)
Каким образом? Через размер панели на форме smile ? У формы тоже есть свойство Align.

Как ты думаешь, если выставить свойство Align для формы, то по отношению к чему он будет применять данные настройки??? Правильно непосредственно к рабочему столу, так если выставить Align = alClient, то вся форма замостит собой рабочий стол. А зачем мне это? smile
Я понял, почему ты это спросил, я там написан не верно. Не под размер окна, а размер который я сформировал сам, вот его пропорции и должны остаться неизменными. smile

Добавлено @ 14:36
Цитата(artsb @  7.12.2009,  16:30 Найти цитируемый пост)
vikaz, но Constraints ИМХО надёжнее и гемора потом меньше будет... 

Это я уже понял! СПС

Автор: vikaz 7.12.2009, 19:14
Цитата(artsb @  7.12.2009,  14:20 Найти цитируемый пост)
Цитата

Это свойство отвечает за переключение между новым и старым поведением программы.
Старое поведение: на панели задач отображается кнопка от невидимого окна Application, а кнопки от главной формы нет (хотя визуально создаётся другой эффект).
Новое поведение: на панели задач отображается кнопка непосредственно главного окна.

Насколько я понимаю, новое поведение появилось для совместимости с Vista, где в панели задач показывается мини-скриншот окна. Если бы там было окно Application, то показывался бы именно его скриншот, а не главного окна.

Источник: delphikingdom 


Камрад, если я правильно понял, то имелось ввиду это?
http://ipicture.ru/
Если да, то эта получилось при закоментированной строчке Application->MainFormOnTaskBar = true;  smile 

Автор: vikaz 7.12.2009, 20:01
 smile 

Автор: artsb 7.12.2009, 21:45
Цитата(vikaz @  7.12.2009,  19:14 Найти цитируемый пост)
эта получилось при закоментированной строчке

А если её оставить?

Автор: vikaz 7.12.2009, 22:20
Все остается так же! Имхо, я разницы не заметил, а гемора без этой строчки меньше и AC, лучше отрабатывается..... Надо завтра глянуть, а есть ли эта строчка в 2010....

Добавлено через 1 минуту и 9 секунд
но это Windows 7, может какие-то изменения были сделаны в этом направлении, вот и нет теперь особой разницы!  smile 

Автор: artsb 7.12.2009, 22:43
Цитата(vikaz @  7.12.2009,  22:20 Найти цитируемый пост)
но это Windows 7, может какие-то изменения были сделаны в этом направлении, вот и нет теперь особой разницы!

Я, кстати, тоже так подумал. Тот отрывок, что я привёл выше - это предположение человека. Так что, либо он ошибся, либо Борландовцы сами не поняли, что сделали. smile

Цитата(vikaz @  7.12.2009,  22:20 Найти цитируемый пост)
Надо завтра глянуть, а есть ли эта строчка в 2010....

Уже. Она есть.

Автор: vikaz 8.12.2009, 04:50
Странно, ну и ладно, пусть это остается на их совести! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)