Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.049 c
14-1101183994
VMcL
2004-11-23 07:26
2004.12.12
Tech. support


1-1101475987
Dmitry_04
2004-11-26 16:33
2004.12.12
Что значит $ в объявлении констант типа integer?


1-1101806975
Skyhawk
2004-11-30 12:29
2004.12.12
Изменение размеров формы без заголовка


1-1101887751
RDen
2004-12-01 10:55
2004.12.12
Опять про второй экземпляр приложения...


14-1100796664
matt
2004-11-18 19:51
2004.12.12
InterBase 6





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский