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

Вниз

SpeedButton + темы WinXP   Найти похожие ветки 

 
f00rd   (2004-11-21 16:42) [0]

Собственно говоря, мне не обязательно нужен SpeedButton... Мне нужна кнопка, на которую можно посадить картинку, но так, чтобы эта кнопка поддерживала темы WinXP. Может кто знает, как это сделать?


 
Gero ©   (2004-11-21 21:33) [1]

Ищи UxTheme.pas.


 
f00rd   (2004-11-24 14:33) [2]

А поконкретнее можно? Что с ним делать-то?


 
Gero ©   (2004-11-24 14:58) [3]

http://www.rtfm.4hack.com/show.php?rs=1&sb=2&st=11


 
ламер ©   (2004-11-24 16:47) [4]

const
 BTN_ALIGN_LEFT = 0;
 BTN_ALIGN_RIGHT = 1;
 BTN_ALIGN_TOP = 2;
 BTN_ALIGN_BOTTOM = 3;

type
 TButtonImageList = packed record
   himl: HIMAGELIST;
   margin: TRect;
   uAlign: Cardinal;
 end;

{ ABtn - кнопка, на которую "вешаем" картинки
 AList - ImageList с картинками (по индексу):
   0 - обычное состояние,
   1 - Hot (курсор над кнопкой),
   2 - Pushed (кнопка нажата),
   3 - Disabled,
   4 - Focused (кнопка получила фокус клавиатуры) }
procedure SetButtonImage(ABtn: TButton; AList: TImageList);
var
 bi: TButtonImageList;
begin
 bi.himl := AList.Handle;
 { картинка будет располагаться слева }
 bi.uAlign := BTN_ALIGN_LEFT;
 { здесь нужно поиграться с полями для получения желаемого положения картинки }
 bi.margin := Rect(1, 1, 1, 1);

 { посылаем кнопке сообщение BCM_SETIMAGELIST (обрабывается только под XP) }
 SendMessage(ABtn.Handle, $1600{BCM_FIRST} + $0002{BCM_SETIMAGELIST}, 0, Cardinal(@bi));
end;


 
OneFragLeft ©   (2004-11-24 17:24) [5]

SpeedButton вроде поддерживает темы XP. Только кинь на форму XPManifest.


 
Gero ©   (2004-11-24 17:33) [6]


> SpeedButton вроде поддерживает темы XP.

Уверен?
Я - нет.

> Только кинь на форму XPManifest.

Ага, в Delphi 6.


 
OneFragLeft ©   (2004-11-24 17:36) [7]

>Ага, в Delphi 6.
Об этом в сабже ни слова:)
А в D7 работает.


 
OneFragLeft ©   (2004-11-24 17:38) [8]

Проверил: Работает на все 100.


 
OneFragLeft ©   (2004-11-24 17:41) [9]

Можно попробовать SkinEngine. Там есть SpeedButton. Темы поддерживает и без самого Engine. + Темы от SkinEngine можно подключать.


 
Gero ©   (2004-11-24 17:53) [10]


> Об этом в сабже ни слова:)

> [D6, WinXP]

> Проверил: Работает на все 100.

Хм, мне казалось что это не так.
Если не тяжело, скинь мне твой Buttons.pas на мыло с анкеты.


 
OneFragLeft ©   (2004-11-24 17:55) [11]

D6 - не заметил:)


 
OneFragLeft ©   (2004-11-24 17:58) [12]

Вообще-то это KsSkinSpeedbuttons.pas . У меня Д6 нет, поэтому не могу ручаться что будет работать на нём. А SkinEngine - обычный. http://www.ksdev.com


 
Gero ©   (2004-11-24 18:08) [13]


> OneFragLeft ©   (24.11.04 17:58)

Не SkinEngine, а именно Buttons.pas (если конечно имеются исходники VCL).


 
OneFragLeft ©   (2004-11-24 18:37) [14]

А он то при чём?


 
Gero ©   (2004-11-24 19:46) [15]


> OneFragLeft ©   (24.11.04 18:37)
> А он то при чём?

При [8].


 
OneFragLeft ©   (2004-11-24 19:49) [16]

А чем мой Button.pas может отличаться?



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

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

Наверх




Память: 0.5 MB
Время: 0.029 c
3-1100264349
Wolffgang
2004-11-12 15:59
2004.12.12
Запятые и float


14-1101033590
ms
2004-11-21 13:39
2004.12.12
Как в VB6 вызвать функцию из библиотеки C++


1-1101888371
Yurij-7
2004-12-01 11:06
2004.12.12
Логин в сети


1-1101646116
Tazik
2004-11-28 15:48
2004.12.12
Динамические массивы.


14-1101062985
ArMellon
2004-11-21 21:49
2004.12.12
Кому нечего делать....выскажите мнение о моем чате