Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.29;
Скачать: CL | DM;

Вниз

Как под WinXP поставить на форму стандартные контролы?   Найти похожие ветки 

 
REaliSt ©   (2002-06-23 05:09) [0]

Привет. Вот вопросик тут есть.
Как мне поместить на форму (можно в RunTime) кнопки и прогрессбар в стиле
Windows XP. Знаю, что в VCL такого нет. А есть ли в WinApi ф-ция для создания контролла на окне?
Заранее спасибо.


 
Gandalf   (2002-06-23 11:53) [1]

Давай по порядку.
1. Что-бы страндартные контролы VCL выглядели ново - надо просто добавить XP-манифест (такой ресурс файл - если нужно пиши).
2. Причем это только в run-time для design-time надо саму прогу манифестить (т.е. Delphi) это тоже возможно при помощи PExplorer (вроде так - могу дать линк).
3. Для создания контрола есть функции (CreateWindowEx), но для XP вид без манифеста это утопия (толь если ты сам его не рисуешь - но это тяжко, если грамотно)

Удачи


 
Юрий Зотов ©   (2002-06-23 11:56) [2]

> Как мне поместить на форму (можно в RunTime) кнопки и
> прогрессбар в стиле Windows XP.

Очень просто - поставить Windows XP. Сразу все в ее стиле и станет.


> Знаю, что в VCL такого нет.

А в VCL вообще нет ни одного оконного контрола, она их все из системных библиотек берет. Поэтому какая система - такие и контролы.


> А есть ли в WinApi ф-ция для создания контролла на окне?

Есть, даже две. CreateWindow и CreateWindowEx называются. Не поверите, но VCL именно их и использует.


 
rhf ©   (2002-06-23 13:18) [3]

2 Юрий Зотов

например диалоги открытия, сохранения и.т. при компиляции в d3 получаються совссем не такими как в системе ...

а если сделать их самому на апи, то все нормально.....


 
Юрий Зотов ©   (2002-06-23 14:29) [4]

Естественно. Старушка D3 просто ничего не знает о новых наворотах, поэтому их и не использует. И плоские скроллбары, наверное, ей тоже недоступны - а в D5 включена их поддержка. И т. д. - таких примеров можно привести целую кучу. А если посмотреть CommCtrl, то даже и в D5 там нет новых стилей и прочих констант, которые появились, например, в СommCtrl32.dll v5.81 и позже. Ну и что? Ничего. Я тут тулбар писал, взял эти константы из документации, объявил их у себя - и все OK. Это естественно. Но суть-то не меняется - все равно все эти контролы берутся из системных библиотек, и если они старые, то хоть лопни, но новых стилей не добьешься. Скажем, под NT ну никак стиль XP не получишь, что ни делай. Только библиотеки обновлять - если MS дает такой SP.


 
Proton ©   (2002-06-23 15:08) [5]

Откомпиль вот этот фыайл

---- cut - xp_style.rc -----


/****************************************************************************


xp_style.rc

produced by Borland Resource Workshop


*****************************************************************************/

LANGUAGE LANG_RUSSIAN,1


1 24 LOADONCALL MOVEABLE
{
"3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31"
"2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54"
"46 2D 38 22 20 73 74 61 6E 64 61 6C 6F 6E 65 3D"
"22 79 65 73 22 3F 3E 0D 0A 3C 61 73 73 65 6D 62"
"6C 79 20 78 6D 6C 6E 73 3D 22 75 72 6E 3A 73 63"
"68 65 6D 61 73 2D 6D 69 63 72 6F 73 6F 66 74 2D"
"63 6F 6D 3A 61 73 6D 2E 76 31 22 20 6D 61 6E 69"
"66 65 73 74 56 65 72 73 69 6F 6E 3D 22 31 2E 30"
"22 3E 0D 0A 3C 61 73 73 65 6D 62 6C 79 49 64 65"
"6E 74 69 74 79 0D 0A 20 20 20 20 6E 61 6D 65 3D"
"22 53 4B 2E 53 74 61 66 66 2E 43 6C 69 65 6E 74"
"22 0D 0A 20 20 20 20 70 72 6F 63 65 73 73 6F 72"
"41 72 63 68 69 74 65 63 74 75 72 65 3D 22 78 38"
"36 22 0D 0A 20 20 20 20 76 65 72 73 69 6F 6E 3D"
"22 35 2E 31 2E 30 2E 30 22 0D 0A 20 20 20 20 74"
"79 70 65 3D 22 77 69 6E 33 32 22 2F 3E 0D 0A 3C"
"64 65 73 63 72 69 70 74 69 6F 6E 3E 53 74 61 66"
"66 3C 2F 64 65 73 63 72 69 70 74 69 6F 6E 3E 0D"
"0A 3C 64 65 70 65 6E 64 65 6E 63 79 3E 0D 0A 20"
"20 20 20 3C 64 65 70 65 6E 64 65 6E 74 41 73 73"
"65 6D 62 6C 79 3E 0D 0A 20 20 20 20 20 20 20 20"
"3C 61 73 73 65 6D 62 6C 79 49 64 65 6E 74 69 74"
"79 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 74"
"79 70 65 3D 22 77 69 6E 33 32 22 0D 0A 20 20 20"
"20 20 20 20 20 20 20 20 20 6E 61 6D 65 3D 22 4D"
"69 63 72 6F 73 6F 66 74 2E 57 69 6E 64 6F 77 73"
"2E 43 6F 6D 6D 6F 6E 2D 43 6F 6E 74 72 6F 6C 73"
"22 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 76"
"65 72 73 69 6F 6E 3D 22 36 2E 30 2E 30 2E 30 22"
"0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 70 72"
"6F 63 65 73 73 6F 72 41 72 63 68 69 74 65 63 74"
"75 72 65 3D 22 78 38 36 22 0D 0A 20 20 20 20 20"
"20 20 20 20 20 20 20 70 75 62 6C 69 63 4B 65 79"
"54 6F 6B 65 6E 3D 22 36 35 39 35 62 36 34 31 34"
"34 63 63 66 31 64 66 22 0D 0A 20 20 20 20 20 20"
"20 20 20 20 20 20 6C 61 6E 67 75 61 67 65 3D 22"
"2A 22 0D 0A 20 20 20 20 20 20 20 20 2F 3E 0D 0A"
"20 20 20 20 3C 2F 64 65 70 65 6E 64 65 6E 74 41"
"73 73 65 6D 62 6C 79 3E 0D 0A 3C 2F 64 65 70 65"
"6E 64 65 6E 63 79 3E 0D 0A 3C 2F 61 73 73 65 6D"
"62 6C 79 3E 0D 0A"
}


-- и в проге допиши ----
{$R XP_STYLE.RES}


 
REaliSt ©   (2002-06-24 05:23) [6]

2 Юрий Зотов
Дело в том, что у меня итак стоят WinXP Home и Professional
Так вот, что я в Delphi не делал, не могу такой стиль получить.
Помещаем на форму кнопку TButton. Это получится кнопка как в 98.
А хотелось бы кнопку как в стандартных XP-диалогах.

2 rhf
Да, думаю только на АПИ

2 Proton
Спасибо, попробую.


 
REaliSt ©   (2002-06-24 05:43) [7]

2 Proton
thank you
Все работает ОК!!!!!
Благодарю


 
v0id ©   (2002-06-24 08:28) [8]

Или вот так:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="Program"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>Description</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>


Только надо будет это сохранить как res файл (в VC++).


 
Proton ©   (2002-06-24 10:27) [9]

А с ListView пробывал - у меня ошибка в ядре выскакивает если мышкой наводиш. (да у меня там чек боксы включены)
Я как понял что не судьба делфям 5м с новыми стилями работать.
Плюнул и все убрал.

> REaliSt © (24.06.02 05:43)
> 2 Proton
> thank you
> Все работает ОК!!!!!
> Благодарю

Очень рад что помог.

> v0id © (24.06.02 08:28)
> Или вот так:

Вообщем это то же самое .
Главно правильно это в рес запихнуть.
А по скольку он такое уже пробывал и у него не вышло кинул этот RC


 
Gandalf   (2002-06-24 12:05) [10]

Еще компонент есть XPDesign (просто подключает res файл).

Да у меня с ListView таже трабла - причем при использовании ReportView. Кто нибудь знает как вылечить?


 
REaliSt ©   (2002-06-24 17:31) [11]

>Да у меня с ListView таже трабла - причем при использовании >ReportView. Кто нибудь знает как вылечить?

Думаю дело именно в Delphi 5. У меня в 6-х все вроде б работает.



Страницы: 1 вся ветка

Текущий архив: 2002.08.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
14-95943
Самборский
2002-08-03 16:10
2002.08.29
Переход на Delphi6


1-95834
_Alex_
2002-08-17 11:47
2002.08.29
Простая программа


1-95862
^Sanya
2002-08-16 23:02
2002.08.29
Little Question: Правда, что в ini больше 64Кб не похранишь?


1-95772
Дмитрий Иванов
2002-08-19 03:14
2002.08.29
рисуем меню


1-95896
Flasher
2002-08-18 13:31
2002.08.29
Pop up