Главная страница
    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.87 MB
Время: 0.068 c
3-1100080159
diabolik_krsk
2004-11-10 12:49
2004.12.12
Удаление файла *.ldb


3-1100436082
metallic
2004-11-14 15:41
2004.12.12
Ексель и делфи


1-1101646595
Vitiy
2004-11-28 15:56
2004.12.12
Глюк с перегруженными операторами !!!


3-1100510736
Брат
2004-11-15 12:25
2004.12.12
Создание кросс-отчета


3-1100515146
denis24
2004-11-15 13:39
2004.12.12
dbimage





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский