Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как программно изменить стиль окон и кнопок в XP [D5, Win95/98]


Страницы:   1 2 3

AndreyProg ©   (2005-05-25 21:57:00) 

Помогите!
Мне нужно, чтобы окна программы, написанной под Windows98 в Delphi5, при запуске в WindowsXP отображались тоже в классическом стиле.
Как это сделать программно? С помощью API или манифестов? Способ?
Заранее спасибо.


GrayFace   (2005-06-14 23:52:00) [1]

Abessalom   (14.06.05 21:36) [47]
Какие ваши доказательства?)))

Я смотрел.
У тебя есть пример этого?


Abessalom   (2005-06-14 21:36:00) [2]


> GrayFace ©   (09.06.05 09:24) [45]

Какие ваши доказательства?)))


AndreyProg   (2005-06-14 17:36:00) [3]

Решение найдено!

http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_21411736.html

Всем спасибо! (Особенно Gero)


GrayFace   (2005-06-09 09:24:00) [4]

Abessalom   (07.06.05 22:54) [44]
Так же как и классической теме)))

Нет. GetSystemMetrics продолжает возвражать размеры кнопок без темы, а надо узнать размеры тематических.


Abessalom   (2005-06-07 22:54:00) [5]


> GrayFace ©   (07.06.05 11:00) [41]

> В классической теме, действительно, нет проблем, но как
> в XP получить размер кнопок в заголовке?

Так же как и классической теме)))


AndreyProg   (2005-06-07 17:15:00) [6]

Эй, кто-нибудь, проверит код
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_21172764.html ?
Мне надо узнать, как запустить этот менеджер.


alpet   (2005-06-07 11:48:00) [7]

GrayFace ©   (07.06.05 11:00) [41]
Ну иначе некрасиво было бы: половина окон серебристая, половина - классическая.

Почему тогда у меня все отображается нормально, вроде все апдейты есть (Windows XP Prof.Edition, сборка 2600.xpsp_sp2_grd.050301-1519: Service Pack 2). Или это относится только к отдельным компам?


GrayFace   (2005-06-07 11:00:00) [8]

Еще можно так:
procedure TForm1.FormResize(Sender: TObject);
begin
 SetWindowRgn(Handle,CreateRectRgn(0, 0, Width, Height),true);
end;


alpet ©   (26.05.05 18:05) [12]
Это странное поведение ОС, она не должна применять визуальный стиль к приложению не использующему манифест.

Ну иначе некрасиво было бы: половина окон серебристая, половина - классическая.

Abessalom   (06.06.05 23:42) [40]
Кнопки в заголовке, если нужны, рисуй и обрабатывай сам, ничего сложного, а также можно найти компоненты.

В классической теме, действительно, нет проблем, но как в XP получить размер кнопок в заголовке?


Abessalom   (2005-06-06 23:42:00) [9]

BorderStyle := bsSizeToolWin;
 SetWindowTheme(Handle, '', '');
 
 Очень похоже на старый стиль.
 Кнопки в заголовке, если нужны, рисуй и обрабатывай сам, ничего сложного, а также можно найти компоненты.


MacroDenS   (2005-06-06 20:33:00) [10]

Маркером дорисуй


NikotiN   (2005-06-06 20:30:00) [11]

Как программно изменить стиль окон и кнопок в XP
а как аппаратно?


MacroDenS   (2005-06-06 19:13:00) [12]

Вот дела... Раньше люди искали компоненты, манифесты и прочее для того, чтобы оформить прогу win98+ как под XP. Росли значит, стремились к современности, а теперь вот полюбуйтесь! Дегродация начинается. ИМХО не к добру все это!


AndreyProg   (2005-06-06 16:42:00) [13]

Господа, обратите, пожалуйста, внимание на предыдущий вопрос.


AndreyProg   (2005-06-02 09:04:00) [14]

Просьба!
Кто-нибудь проверял этот код?
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_21172764.html
У меня он не работает. Затыкается на первом же обрашении в методу ole-объекта Manager.

Проверьте, пожалуйста!


Gero   (2005-05-29 23:04:00) [15]


> AndreyProg   (29.05.05 20:49)

Я к тому, что высокий заголовок может быть и без тем.
Поэтому тебе нужно ориентироваться на то, что юзер может выставить любой размер заголовка.


AndreyProg   (2005-05-29 20:49:00) [16]


> Gero ©   (29.05.05 17:30) [32]

Как это не имеет отнощения!
Запусти приложение сначала в классической теме, а затем в теме "стиль XP", и увижишь - заголоки становятся выше! Значит это определено в  теме.


Gero   (2005-05-29 17:30:00) [17]


> AndreyProg   (28.05.05 13:42)

Высота заголовка окна никакого отношения к темам не имеет.

> vidiv ©   (28.05.05 16:48)
> Можно применить свой индивидуальный стиль для своего приложения?

Нет.
UxTheme служит исключительно для работы с текущей темой.


vidiv   (2005-05-28 16:48:00) [18]

А что еще полезного можно вытянуть из модуля UxTheme ? Можно применить свой индивидуальный стиль для своего приложения?


AndreyProg   (2005-05-28 13:42:00) [19]


> Gero ©   (26.05.05 22:38) [25]

Спасибо за ссылку!


> gdaujk ©   (28.05.05 06:27) [29]

Напрягают потому что хочется сохранить стиль! Из эстетических соображениий и ещё:
у меня несколько приложений, работающих одновременно. Они с окнами одного размера, центрированными по середине экрана, но не занимают всю область экрана. Их окна расположены одно поверх другого. У одного("нижнего") приложения есть заголовоки окон, а у других  - нету (borderstyle=bsnone). В Windows98 у меня все точно выверено и "на поверхности" видно только активное приложение. А в XP  позади торчит полоска заголовка "нижнего"  приложения.
Осюда весь сыр-бор.


gdaujk   (2005-05-28 06:27:00) [20]

А почему тебя напрягают размеры заголовков? Если у тебя в зависимости от них меняются размеры "клиентской" области окна (обычно при написанни на чистом API), просто измени их с учётом высоты заголовка окна = GetSystemMetrics(SM_CYCAPTION).


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо